1 #ifndef _ots_TableBase_h_
2 #define _ots_TableBase_h_
8 #include "otsdaq-core/TableCore/TableVersion.h"
9 #include "otsdaq-core/TableCore/TableView.h"
13 class ConfigurationManager;
16 #define __SELF_NODE__ getNode(getTableName())
21 const unsigned int MAX_VIEWS_IN_CACHE;
25 TableBase(std::string tableName, std::string* accumulatedExceptions = 0);
32 void destroy(
void) { ; }
33 void reset(
bool keepTemporaryVersions =
false);
34 void deactivate(
void);
37 void print(std::ostream& out = std::cout)
const;
39 std::string getTypeId(
void);
42 void changeVersionAndActivateView(
TableVersion temporaryVersion,
46 void trimCache(
unsigned int trimSize = -1);
52 const std::string& getTableName(
void)
const;
53 const std::string& getTableDescription(
void)
const;
54 std::set<TableVersion> getStoredVersions(
void)
const;
66 void setTableName(
const std::string& tableName);
67 void setTableDescription(
const std::string& tableDescription);
71 const std::string& author);
76 const std::string& author,
77 const std::string& mergeApproach ,
78 std::map<std::pair<std::string /*original table*/, std::string /*original uidB*/>,
79 std::string >& uidConversionMap,
80 std::map<std::pair<std::string ,
81 std::pair<std::string ,
83 std::string >& groupidConversionMap,
84 bool fillRecordConversionMaps,
85 bool applyRecordConversionMaps,
86 bool generateUniqueDataColumns =
false);
91 TableVersion::getNextTemporaryVersion());
94 static std::string convertToCaps(std::string& str,
bool isConfigName =
false);
96 bool latestAndMockupColumnNumberMismatch(
void)
const;
98 unsigned int getNumberOfStoredViews(
void)
const;
101 std::string tableName_;
102 std::string tableDescription_;
111 std::map<TableVersion, TableView> tableViews_;
TableVersion mergeViews(const TableView &sourceViewA, const TableView &sourceViewB, TableVersion destinationVersion, const std::string &author, const std::string &mergeApproach, std::map< std::pair< std::string, std::string >, std::string > &uidConversionMap, std::map< std::pair< std::string, std::pair< std::string, std::string > >, std::string > &groupidConversionMap, bool fillRecordConversionMaps, bool applyRecordConversionMaps, bool generateUniqueDataColumns=false)