CheckedCsvReader.hh

00001 #include "csv.hh"
00002 
00003 #include <vector>
00004 
00005 namespace fatalmind {
00006 
00007 class CheckedCsvReader: public csv {
00008     public:
00009         CheckedCsvReader(std::istream& is, int r = 0);
00010         virtual ~CheckedCsvReader() {
00011         }
00012 
00013         virtual void record(int l, std::vector<std::string>& ) = 0;
00014         virtual void missingField(int f, int r, int l) {
00015         }
00016         virtual void extraField(int f, int r, int l) {
00017         }
00018 
00019         int getExtraFields() {
00020             return extra;
00021         }
00022 
00023         int getMissingFields() {
00024             return missing;
00025         }
00026 
00027         int getErrors() {
00028             return missing + extra;
00029         }
00030 
00031 
00032     private:
00033         void field(int f, int l, const std::ostringstream& os); 
00034         void endRecord(int f, int l);
00035 
00036         void missing_(int f, int r, int l) {
00037             ++missing;
00038             missingField(f, r, l);
00039         }
00040 
00041         void extra_(int f, int r, int l) {
00042             ++extra;
00043             extraField(f, r, l);
00044         }
00045     
00046         std::vector<std::string> vec;
00047 
00048         int required;
00049         int missing;
00050         int extra;
00051 };
00052 
00053 } // namespace fatalmind

Generated on Mon Nov 9 16:21:24 2009 for ResourcePool by  doxygen 1.5.3