28 #ifndef GUM_LEARNING_DB_INITILIALIZER_FROM_CSV_H 29 #define GUM_LEARNING_DB_INITILIALIZER_FROM_CSV_H 37 #include <agrum/agrum.h> 38 #include <agrum/tools/database/IDBInitializer.h> 39 #include <agrum/tools/database/CSVParser.h> 130 template <
template <
typename >
class ALLOC = std::allocator >
131 class DBInitializerFromCSV:
public IDBInitializer< ALLOC > {
134 using allocator_type = ALLOC< std::string >;
152 DBInitializerFromCSV(
const std::string filename,
153 bool fileContainsNames =
true,
154 const std::string delimiter =
",",
155 const char commentmarker =
'#',
156 const char quoteMarker =
'"',
157 const allocator_type& alloc = allocator_type());
162 DBInitializerFromCSV(
const DBInitializerFromCSV< ALLOC >& from);
167 DBInitializerFromCSV(
const DBInitializerFromCSV< ALLOC >& from,
const allocator_type& alloc);
170 DBInitializerFromCSV(DBInitializerFromCSV< ALLOC >&& from);
173 DBInitializerFromCSV(DBInitializerFromCSV< ALLOC >&& from,
const allocator_type& alloc);
176 virtual DBInitializerFromCSV< ALLOC >* clone()
const;
179 virtual DBInitializerFromCSV< ALLOC >* clone(
const allocator_type& alloc)
const;
182 virtual ~DBInitializerFromCSV();
196 DBInitializerFromCSV< ALLOC >& operator=(
const DBInitializerFromCSV< ALLOC >& from);
201 DBInitializerFromCSV< ALLOC >& operator=(DBInitializerFromCSV< ALLOC >&& from);
208 virtual std::vector< std::string, ALLOC< std::string > > variableNames_() final;
211 virtual const std::vector< std::string, ALLOC< std::string > >& currentStringRow_() final;
214 virtual bool nextRow_() final;
217 #ifndef DOXYGEN_SHOULD_SKIP_THIS 221 std::string _filename_;
224 std::string _delimiter_;
227 char _comment_marker_;
233 bool _first_row_has_names_;
236 std::ifstream _input_stream_;
239 CSVParser< ALLOC > _parser_;
242 std::vector< std::string, ALLOC< std::string > > _var_names_;
252 #include <agrum/tools/database/DBInitializerFromCSV_tpl.h>