EventAnalysis  1.0.0
PersistenceService.h
Go to the documentation of this file.
1 /*
2  * PersistenceService.h
3  *
4  * Created on: 12 May 2017
5  * Author: Nicola Mori
6  */
7 
8 #ifndef PERSISTENCESERVICE_H_
9 #define PERSISTENCESERVICE_H_
10 
11 #include "core/ObserverPtr.h"
12 #include "data/DataStoreUser.h"
13 #include "data/ObjectConsumer.h"
14 
15 #include <memory>
16 #include <string>
17 
18 namespace EA {
19 
20 class PersistenceService : public Info, public Configurable, public DataStoreUser, public ObjectConsumer {
21 
22 public:
23  PersistenceService(const std::string &name, const std::string &output) : Info(name), _output(output) {}
24  virtual ~PersistenceService() {}
25 
26  const std::string &GetOutput() { return _output; }
27 
28  virtual bool Connect() { return true; }
29  virtual bool Disconnect() { return true; }
30 
44  virtual bool BookEventObject(const std::string &objName, const std::string &objStore) { return true; }
45  virtual bool BookPassObject(const std::string &objName, const std::string &objStore) { return true; }
46  virtual bool BookGlobalObject(const std::string &objName, const std::string &objStore) { return true; }
47 
48  virtual bool BeginOfEvent() { return true; }
49 
58  virtual bool EndOfEvent() { return true; }
59 
60  virtual bool BeginOfPass() { return true; }
61  virtual bool EndOfPass() { return true; }
62 
63  virtual bool BeginOfProcessing() { return true; }
64  virtual bool EndOfProcessing() { return true; }
65 
82  virtual std::unique_ptr<PersistenceService> Copy(const std::string &name, const std::string &output) {
83  throw CopyNotOverridden();
84  }
85 
86  // Exception classes
88  struct CopyNotOverridden {};
89 
90 private:
91  std::string _output;
92 };
93 
94 } // namespace EA
95 
96 #include "plugin/FactoryMacros.h"
97 #define RegisterPersistence(className) \
98  RegisterClass(EA::PersistenceService, className, const std::string &, const std::string &)
99 
100 #endif /* PERSISTENCESERVICE_H_ */
virtual bool EndOfEvent()
Save event objects on persistence medium.
Definition: PersistenceService.h:58
virtual bool BookGlobalObject(const std::string &objName, const std::string &objStore)
Definition: PersistenceService.h:46
virtual bool BookEventObject(const std::string &objName, const std::string &objStore)
Books an event object for persistence.
Definition: PersistenceService.h:44
virtual bool BeginOfEvent()
Definition: PersistenceService.h:48
virtual bool EndOfPass()
Definition: PersistenceService.h:61
Definition: PersistenceService.h:20
Interface for retrieving informations about an object.
Definition: Info.h:18
virtual bool BookPassObject(const std::string &objName, const std::string &objStore)
Definition: PersistenceService.h:45
IncludeFileExc.h IncludeFileExc class declaration.
Definition: Algorithm.h:21
virtual bool Connect()
Definition: PersistenceService.h:28
virtual std::unique_ptr< PersistenceService > Copy(const std::string &name, const std::string &output)
Creates a copy of the persistence service.
Definition: PersistenceService.h:82
virtual bool BeginOfProcessing()
Definition: PersistenceService.h:63
virtual bool Disconnect()
Definition: PersistenceService.h:29
virtual bool EndOfProcessing()
Definition: PersistenceService.h:64
Interface for classes needing access to the data stores.
Definition: DataStoreUser.h:17
const std::string & GetOutput()
Definition: PersistenceService.h:26
std::string _output
Definition: PersistenceService.h:91
Exception class for missing override of Copy.
Definition: PersistenceService.h:88
PersistenceService(const std::string &name, const std::string &output)
Definition: PersistenceService.h:23
virtual ~PersistenceService()
Definition: PersistenceService.h:24
Interface for a configurable class.
Definition: Configurable.h:25
Interface for a class which consumes data objects.
Definition: ObjectConsumer.h:27
virtual bool BeginOfPass()
Definition: PersistenceService.h:60