// Copyright (C) 2007, Ondra Kamenik // $Id$ #ifndef OGP_CSV_PARSER #define OGP_CSV_PARSER namespace ogp { class CSVParserPeer { public: virtual ~CSVParserPeer() { } virtual void item(int irow, int icol, const char *str, int length) = 0; }; class CSVParser { private: CSVParserPeer &peer; int row; int col; const char *parsed_string; public: CSVParser(CSVParserPeer &p) : peer(p), row(0), col(0), parsed_string(0) { } CSVParser(const CSVParser &csvp) : peer(csvp.peer), row(csvp.row), col(csvp.col), parsed_string(csvp.parsed_string) { } virtual ~CSVParser() { } void csv_error(const char *mes); void csv_parse(int length, const char *str); void nextrow() { row++; col = 0; } void nextcol() { col++; } void item(int off, int length) { peer.item(row, col, parsed_string+off, length); } }; }; #endif // Local Variables: // mode:C++ // End: