TCPSPSuite
dbmerger.hpp
1 #ifndef TCPSPSUITE_DBMERGER_H
2 #define TCPSPSUITE_DBMERGER_H
3 
4 #include "../db/storage.hpp" // for Storage
5 #include "../util/log.hpp" // for Log
6 #include <memory> // IWYU pragma: keep
7 #include <string> // for string
8 class DBConfig;
9 class DBError;
10 class DBExtendedMeasure;
11 class DBIntermediate;
12 class DBPapiMeasurement;
13 class DBResourcesInfo;
14 class DBResult;
15 class DBSolution;
16 class DBInvocation;
17 
18 class DBMerger {
19 public:
20  DBMerger(std::string dest_filename);
21 
22  void merge(std::string src_filename);
23 
24 private:
25  std::shared_ptr<DBResult> copy_result(std::shared_ptr<DBResult> src);
26  std::shared_ptr<DBConfig> copy_config(std::shared_ptr<DBConfig> src);
27  std::shared_ptr<DBResourcesInfo>
28  copy_resinfo(std::shared_ptr<DBResourcesInfo> src,
29  std::shared_ptr<DBResult> result);
30  std::shared_ptr<DBPapiMeasurement>
31  copy_papi_measurement(std::shared_ptr<DBPapiMeasurement> src,
32  std::shared_ptr<DBResult> result);
33  std::shared_ptr<DBSolution> copy_solution(std::shared_ptr<DBSolution> src,
34  std::shared_ptr<DBResult> result);
35  std::shared_ptr<DBIntermediate>
36  copy_intermediate(std::shared_ptr<DBIntermediate> src,
37  std::shared_ptr<DBResult> result,
38  std::shared_ptr<DBSolution> sol);
39  std::shared_ptr<DBError> copy_error(std::shared_ptr<DBError> src);
40  std::shared_ptr<DBExtendedMeasure>
41  copy_extended_measure(std::shared_ptr<DBExtendedMeasure> src,
42  std::shared_ptr<DBResult> result);
43 
44  void copy_from(Storage & src);
45 
46  std::unordered_map<unsigned long, std::shared_ptr<DBInvocation>> invocations;
47 
48  Storage dest;
49  Log l;
50 };
51 
52 #endif