LogicalEventElement.h

Go to the documentation of this file.
00001 // Copyright CERN 2012 - Developed in collaboration with GSI
00002 #ifndef LOGICALEVENTELEMENT_H_
00003 #define LOGICALEVENTELEMENT_H_
00004 
00005 #include <boost/shared_ptr.hpp>
00006 #include <boost/enable_shared_from_this.hpp>
00007 #include <vector>
00008 #include <string>
00009 
00010 namespace fesa
00011 {
00012 
00013 class ClassElement;
00014 class EventElement;
00015 class ElementXML;
00016 class ParserElementFactory;
00017 class EventConfigurationElement;
00018 class AbstractDeviceClass;
00019 
00024 class LogicalEventElement: public boost::enable_shared_from_this<LogicalEventElement>
00025 {
00026         public:
00027 
00031                 LogicalEventElement(boost::shared_ptr<ClassElement> parent);
00032 
00036                 virtual void initialize(const std::string& xpath,ElementXML* logicalEventElement, ParserElementFactory& parserElementFactory);
00037 
00038                 virtual ~LogicalEventElement();
00039 
00043                 virtual boost::shared_ptr<EventConfigurationElement> getEventConfigurationElementRef(const std::string& eventConfigurationName) const;
00044 
00045                 virtual AbstractDeviceClass* getClassRef() const;
00046 
00047                 virtual const std::vector<boost::shared_ptr<EventConfigurationElement> >& getEventConfigurationElementCol() const;
00048 
00052                 virtual std::vector<boost::shared_ptr<EventElement> > getActiveEventElements() const;
00053 
00054                 virtual const std::string& getName() const;
00055 
00056         protected:
00057 
00061                 LogicalEventElement();
00062 
00063         private:
00064 
00068                 void loadEventConfigurationElements(const std::string& xpath, ElementXML *logicalEventElement, ParserElementFactory& parserElementFactory);
00069 
00073                 std::vector<boost::shared_ptr<EventConfigurationElement> > configurationElementCol_;
00074 
00078                 boost::shared_ptr<ClassElement> parentClassElement_;
00079 
00083                 std::string logicalEventName_;
00084 
00088                 bool isInitialized_;
00089 };
00090 
00091 } //end namespace
00092 
00093 #endif /* LOGICALEVENTELEMENT_H_ */

Generated on 18 Jan 2013 for Fesa by  doxygen 1.6.1