27 #include <agrum/tools/database/databaseTable.h> 29 #ifndef DOXYGEN_SHOULD_SKIP_THIS 37 template <
template <
typename >
class ALLOC >
38 template <
template <
typename >
class XALLOC >
39 DatabaseTable< ALLOC >::DatabaseTable(
40 const typename DatabaseTable< ALLOC >::
template MissingValType< XALLOC >&
42 const DBTranslatorSet< ALLOC >& translators,
43 const typename DatabaseTable< ALLOC >::allocator_type& alloc) :
44 IDatabaseTable< DBTranslatedValue, ALLOC >(
46 std::vector< std::string, ALLOC< std::string > >(),
48 translators__(translators, alloc) {
49 if (translators.size()) {
51 std::vector< std::string, ALLOC< std::string > > var_names(
53 for (std::size_t i = std::size_t(0), size = translators.size(); i < size;
55 var_names[i] = translators__.translator(i).variable()->name();
57 setVariableNames(var_names,
false);
60 GUM_CONSTRUCTOR(DatabaseTable);
65 template <
template <
typename >
class ALLOC >
90 template <
template <
typename >
class ALLOC >
102 template <
template <
typename >
class ALLOC >
109 template <
template <
typename >
class ALLOC >
121 template <
template <
typename >
class ALLOC >
127 template <
template <
typename >
class ALLOC >
144 template <
template <
typename >
class ALLOC >
151 template <
template <
typename >
class ALLOC >
158 template <
template <
typename >
class ALLOC >
172 template <
template <
typename >
class ALLOC >
186 template <
template <
typename >
class ALLOC >
249 if (
exc !=
nullptr) {
300 template <
template <
typename >
class ALLOC >
311 <<
"So it is forbidden to create a translator for that column.");
353 for (;
i <
end; ++
i) {
379 template <
template <
typename >
class ALLOC >
390 <<
"So it is forbidden to create a translator for that column.");
399 "inserting a new translator into a database creates a new column " 400 <<
"with missing values. However, you did not define any symbol for " 439 template <
template <
typename >
class ALLOC >
440 template <
template <
typename >
class XALLOC >
452 <<
"So it is forbidden to create a translator for that column.");
496 for (;
i <
end; ++
i) {
525 template <
template <
typename >
class ALLOC >
548 template <
template <
typename >
class ALLOC >
592 template <
template <
typename >
class ALLOC >
602 template <
template <
typename >
class ALLOC >
619 template <
template <
typename >
class ALLOC >
632 "there is no translator in the database table that " 633 <<
"parses Column " <<
k);
637 <<
" translators, so Translator #" <<
k 638 <<
" does not exist");
647 template <
template <
typename >
class ALLOC >
660 "there is no variable in the database table that " 661 <<
"corresponds to Column " <<
k);
664 "the database has " <<
nb_trans <<
" variables, so Variable #" 665 <<
k <<
" does not exist");
674 template <
template <
typename >
class ALLOC >
683 "the number of variable's names (i.e., " 685 <<
") does not correspond to the number of columns of the " 686 <<
"database table (i.e.," <<
nb_trans <<
")");
696 "the names vector has " 697 <<
size <<
" elements whereas it should have at least " 699 <<
"elements so that each translator is assigned a name");
719 template <
template <
typename >
class ALLOC >
734 "It is impossible to ignore the column parsed by Translator #" 735 <<
k <<
"because there exist only " <<
nb_trans 746 template <
template <
typename >
class ALLOC >
791 template <
template <
typename >
class ALLOC >
806 template <
template <
typename >
class ALLOC >
818 "there is no variable in the database table that " 819 <<
"corresponds to Column " <<
k);
822 "the database has " <<
nb_trans <<
" variables, so Variable #" 823 <<
k <<
" does not exist");
832 template <
template <
typename >
class ALLOC >
846 template <
template <
typename >
class ALLOC >
857 "there is no translator in the database table that " 858 <<
"parses Column " <<
k);
862 <<
" translators, so Translator #" <<
k 863 <<
" does not exist");
873 template <
template <
typename >
class ALLOC >
884 "there is no translator in the database table that " 885 <<
"parses Column " <<
k);
889 <<
" translators, so Translator #" <<
k 890 <<
" does not exist");
933 template <
template <
typename >
class ALLOC >
942 template <
template <
typename >
class ALLOC >
954 <<
" columns whereas the database requires at least " 976 template <
template <
typename >
class ALLOC >
1006 "Translated value type not supported yet");
1015 template <
template <
typename >
class ALLOC >
1027 <<
" elements whereas the database table has " 1031 "the new row is not compatible with the current translators");
1041 template <
template <
typename >
class ALLOC >
1053 <<
" elements whereas the database table has " 1057 "the new row is not compatible with the current translators");
1067 template <
template <
typename >
class ALLOC >
1074 template <
template <
typename >
class ALLOC >
1082 template <
template <
typename >
class ALLOC >
1096 <<
" elements whereas the database table has " 1101 "the new row is not compatible with the current translators");
1113 template <
template <
typename >
class ALLOC >
1127 <<
" elements whereas the database table has " 1132 "the new row is not compatible with the current translators");
1144 template <
template <
typename >
class ALLOC >
1152 template <
template <
typename >
class ALLOC >
1161 template <
template <
typename >
class ALLOC >
INLINE void emplace(Args &&... args)
Database(const std::string &filename, const BayesNet< GUM_SCALAR > &bn, const std::vector< std::string > &missing_symbols)