00001 // Copyright CERN 2012 - Developed in collaboration with GSI 00002 00003 #ifndef ABSTRACT_DEVICE_H_ 00004 #define ABSTRACT_DEVICE_H_ 00005 00006 #include <fesa-core/DataStore/DataStore.h> 00007 #include <fesa-core/DataStore/ConfigurationField.h> 00008 #include <fesa-core/DataStore/AcquisitionField.h> 00009 #include <fesa-core/DataStore/GenericField.h> 00010 #include <fesa-core/Core/FesaDefs.h> 00011 00012 #include <string> 00013 00014 namespace fesa 00015 { 00022 class AbstractDevice: public DataStore 00023 { 00024 public: 00025 00029 virtual ~AbstractDevice(); 00030 00034 virtual const std::string getName(); 00035 00041 ConfigFieldString name; 00042 00046 ConfigFieldString mainMuxCriterion; 00047 00052 ConfigFieldString timingDomain; 00053 00057 bool* isLoggable_; 00058 00059 00063 virtual bool isMultiplexed(); 00064 00065 protected: 00066 00070 AbstractDevice(); 00071 00076 virtual int32_t getSizeOfAdditionalFields(); 00077 00082 virtual void mapAdditionalFields(char* p); 00083 00088 virtual void initialize(); 00089 }; 00090 00091 } // fesa namespace end 00092 00093 #endif /* ABSTRACT_DEVICE_H_ */