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