otsdaq  v2_04_01
RegisterBase.h
1 /*
2  * RegisterBase.h
3  *
4  * Created on: Jul 29, 2015
5  * Author: parilla
6  */
7 
8 #ifndef _ots_RegisterBase_h_
9 #define _ots_RegisterBase_h_
10 #include "Component.h"
11 #include "otsdaq-core/ConfigurationDataFormats/RegisterView.h"
12 
13 #include <list>
14 #include <map>
15 #include <string>
16 
17 #include "otsdaq-core/TableCore/TableBase.h"
18 
19 namespace ots
20 {
21 class RegisterView;
22 
24 {
25  public:
26  RegisterBase(std::string configurationName, std::string typeName);
27  virtual ~RegisterBase();
28  void init(void);
29 
30  const RegisterView& getRegisterView(void) const;
31  RegisterView* getRegisterViewPointer(void);
32  RegisterView* getMockupRegisterViewPointer(void);
33 
34  RegisterView* getTemporaryRegisterView(int temporaryVersion);
35  std::string getTypeName(void);
36 
37  std::string componentTypeName_;
38  RegisterView* activeRegisterView_;
39  RegisterView mockupRegisterView_;
40  // Version and data associated to make it work like a cache.
41  // It will be very likely just 1 version
42  std::map<int, RegisterView> registerViews_;
43  std::map<std::string, Component> theComponentList_;
44 };
45 
46 } // namespace ots
47 
48 #endif /* REGISTERBASE_H_ */