1 #include <stdio.h> 2 3 #include <string> 4 #include <vector> 5 6 namespace android { 7 namespace stream_proto { 8 9 using namespace std; 10 11 struct Error 12 { 13 Error(); 14 Error(const Error& that); 15 Error(const string& filename, int lineno, const char* message); 16 17 string filename; 18 int lineno; 19 string message; 20 }; 21 22 class Errors 23 { 24 public: 25 Errors(); 26 ~Errors(); 27 28 // Add an error 29 void Add(const string& filename, int lineno, const char* format, ...); 30 31 // Print the errors to stderr if there are any. 32 void Print() const; 33 34 bool HasErrors() const; 35 36 private: 37 // The errors that have been added 38 vector<Error> m_errors; 39 void AddImpl(const string& filename, int lineno, const char* format, va_list ap); 40 }; 41 42 extern Errors ERRORS; 43 extern const string UNKNOWN_FILE; 44 extern const int UNKNOWN_LINE; 45 46 47 } // namespace stream_proto 48 } // namespace android 49