otsdaq  v2_01_00
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 "otsdaq-core/ConfigurationDataFormats/RegisterView.h"
11 #include "ConfigurationBase.h"
12 #include "Component.h"
13 
14 #include <string>
15 #include <map>
16 #include <list>
17 
18 namespace ots {
19 
20 class RegisterView;
21 
23 public:
24  RegisterBase(std::string configurationName, std::string typeName);
25  virtual ~RegisterBase();
26  void init (void);
27 
28 
29  const RegisterView& getRegisterView (void ) const;
30  RegisterView* getRegisterViewPointer (void );
31  RegisterView* getMockupRegisterViewPointer (void );
32 
33  RegisterView* getTemporaryRegisterView (int temporaryVersion );
34  std::string getTypeName (void );
35 
36  std::string componentTypeName_;
37  RegisterView* activeRegisterView_;
38  RegisterView mockupRegisterView_;
39  //Version and data associated to make it work like a cache.
40  //It will be very likely just 1 version
41  std::map<int, RegisterView> registerViews_;
42  std::map<std::string, Component> theComponentList_;
43 
44 };
45 
46 }
47 
48 #endif /* REGISTERBASE_H_ */