51#ifndef DOXYGEN_SHOULD_SKIP_THIS
64 bool fileContainsNames,
65 const std::string delimiter,
66 const char commentmarker,
67 const char quoteMarker) :
69 _delimiter_(delimiter), _comment_marker_(commentmarker), _quote_marker_(quoteMarker),
70 _first_row_has_names_(fileContainsNames), _input_stream_(_filename_, std::ifstream::in),
71 _parser_(_input_stream_, filename, delimiter, commentmarker, quoteMarker) {
73 if ((_input_stream_.rdstate() & std::ifstream::failbit) != 0) {
74 GUM_ERROR(IOError,
"File " << filename <<
" not found")
78 if (fileContainsNames) {
80 _var_names_ = _parser_.current();
83 GUM_CONSTRUCTOR(DBInitializerFromCSV);
87 DBInitializerFromCSV::DBInitializerFromCSV(
const DBInitializerFromCSV& from) :
88 DBInitializerFromCSV(from._filename_,
89 from._first_row_has_names_,
92 from._comment_marker_) {}
95 DBInitializerFromCSV::DBInitializerFromCSV(DBInitializerFromCSV&& from) :
96 DBInitializerFromCSV(from._filename_,
97 from._first_row_has_names_,
100 from._comment_marker_) {}
103 DBInitializerFromCSV* DBInitializerFromCSV::clone()
const {
104 return new DBInitializerFromCSV(*
this);
108 DBInitializerFromCSV::~DBInitializerFromCSV() { GUM_DESTRUCTOR(DBInitializerFromCSV); }
111 DBInitializerFromCSV& DBInitializerFromCSV::operator=(
const DBInitializerFromCSV& from) {
113 IDBInitializer::operator=(from);
114 _filename_ = from._filename_;
115 _delimiter_ = from._delimiter_;
116 _comment_marker_ = from._comment_marker_;
117 _quote_marker_ = from._quote_marker_;
118 _first_row_has_names_ = from._first_row_has_names_;
121 _input_stream_.close();
122 _input_stream_.open(_filename_, std::ifstream::in);
125 if ((_input_stream_.rdstate() & std::ifstream::failbit) != 0) {
130 _parser_.useNewStream(_input_stream_, _delimiter_, _comment_marker_, _quote_marker_);
133 if (_first_row_has_names_) {
135 _var_names_ = _parser_.current();
143 DBInitializerFromCSV& DBInitializerFromCSV::operator=(DBInitializerFromCSV&& from) {
144 return operator=(from);
The class for initializing DatabaseTable and RawDatabaseTable instances from CSV files.
The class for initializing DatabaseTables and RawDatabaseTables from CSV files.
Exception : input/output problem.
DBInitializerFromCSV(const std::string filename, bool fileContainsNames=true, const std::string delimiter=",", const char commentmarker='#', const char quoteMarker='"')
default constructor
The base class for initializing DatabaseTable and RawDatabaseTable instances from CSV files or SQL da...
#define GUM_ERROR(type, msg)
include the inlined functions if necessary
gum is the global namespace for all aGrUM entities