00001 // Copyright CERN 2012 - Developed in collaboration with GSI 00002 #ifndef DEVICELOGICALEVENTELEMENT_H_ 00003 #define DEVICELOGICALEVENTELEMENT_H_ 00004 00005 #include <boost/shared_ptr.hpp> 00006 #include <string> 00007 00008 namespace fesa 00009 { 00010 00011 class ElementXML; 00012 class AbstractDevice; 00013 class ClassElement; 00014 class EventConfigurationElement; 00015 00020 class DeviceLogicalEventElement 00021 { 00022 public: 00023 00024 DeviceLogicalEventElement(); 00025 00026 virtual ~DeviceLogicalEventElement(); 00027 00031 virtual void initialize(const std::string& xpath,ElementXML* deviceLogicalEventElement); 00032 00036 virtual void connectEventConfigRef(AbstractDevice* device,boost::shared_ptr<ClassElement> classElement); 00037 00038 private: 00039 00043 void loadEventConfigurationNameRef(const std::string& xpath,ElementXML* deviceLogicalEventElement ); 00044 00048 std::string eventConfigurationRefName_; 00049 00053 std::string logicalEventName_; 00054 00058 boost::shared_ptr<EventConfigurationElement> eventConfigurationElementRef_; 00059 00063 bool isInitialized_; 00064 }; 00065 00066 } //end namespace 00067 00068 #endif /* DEVICELOGICALEVENTELEMENT_H_ */