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,
168 const allocator_type& alloc);
171 DBInitializerFromCSV(DBInitializerFromCSV< ALLOC >&& from);
174 DBInitializerFromCSV(DBInitializerFromCSV< ALLOC >&& from,
175 const allocator_type& alloc);
178 virtual DBInitializerFromCSV< ALLOC >* clone()
const;
181 virtual DBInitializerFromCSV< ALLOC >*
182 clone(
const allocator_type& alloc)
const;
185 virtual ~DBInitializerFromCSV();
199 DBInitializerFromCSV< ALLOC >&
200 operator=(
const DBInitializerFromCSV< ALLOC >& from);
205 DBInitializerFromCSV< ALLOC >&
206 operator=(DBInitializerFromCSV< ALLOC >&& from);
213 virtual std::vector< std::string, ALLOC< std::string > >
214 variableNames_() final;
217 virtual const std::vector< std::string, ALLOC< std::string > >&
218 currentStringRow_() final;
221 virtual bool nextRow_() final;
224 #ifndef DOXYGEN_SHOULD_SKIP_THIS 228 std::string filename__;
231 std::string delimiter__;
234 char comment_marker__;
240 bool first_row_has_names__;
243 std::ifstream input_stream__;
246 CSVParser< ALLOC > parser__;
249 std::vector< std::string, ALLOC< std::string > > var_names__;
259 #include <agrum/tools/database/DBInitializerFromCSV_tpl.h>