00001
00002
00003
00004
00005 #ifndef ROUTEPLANNINGV2_CSVPARSER_H_
00006 #define ROUTEPLANNINGV2_CSVPARSER_H_
00007
00008 #include <gtest/gtest.h>
00009 #include <fstream>
00010 #include <string>
00011 #include <vector>
00012
00013 using std::string;
00014 using std::vector;
00015
00016
00017 class CsvParser
00018 {
00019 public:
00020
00021 void openFile(string fileName);
00022
00023
00024 bool eof() const { return _fileStream.eof(); }
00025
00026
00027 void readNextLine();
00028 FRIEND_TEST(CsvParserTest, readNextLine);
00029
00030
00031 void readNextNonEmptyLine();
00032
00033
00034 const string getItem(size_t i);
00035
00036
00037
00038 void closeFile();
00039
00040
00041 size_t getNumColumns() const { return _currentItems.size(); }
00042
00043 private:
00044
00045 std::ifstream _fileStream;
00046
00047
00048 string _currentLine;
00049
00050
00051 vector<string> _currentItems;
00052 };
00053
00054 #endif // ROUTEPLANNINGV2_CSVPARSER_H_