00001
00002
00003
00004
00005
00006
00007
00008 #ifndef _ots_RegisterBase_h_
00009 #define _ots_RegisterBase_h_
00010 #include "Component.h"
00011 #include "otsdaq-core/ConfigurationDataFormats/RegisterView.h"
00012
00013 #include <list>
00014 #include <map>
00015 #include <string>
00016
00017 #include "otsdaq-core/TableCore/TableBase.h"
00018
00019 namespace ots
00020 {
00021 class RegisterView;
00022
00023 class RegisterBase : public ots::TableBase
00024 {
00025 public:
00026 RegisterBase(std::string configurationName, std::string typeName);
00027 virtual ~RegisterBase();
00028 void init(void);
00029
00030 const RegisterView& getRegisterView(void) const;
00031 RegisterView* getRegisterViewPointer(void);
00032 RegisterView* getMockupRegisterViewPointer(void);
00033
00034 RegisterView* getTemporaryRegisterView(int temporaryVersion);
00035 std::string getTypeName(void);
00036
00037 std::string componentTypeName_;
00038 RegisterView* activeRegisterView_;
00039 RegisterView mockupRegisterView_;
00040
00041
00042 std::map<int, RegisterView> registerViews_;
00043 std::map<std::string, Component> theComponentList_;
00044 };
00045
00046 }
00047
00048 #endif