00001 // Copyright CERN 2012 - Developed in collaboration with GSI 00002 00003 #ifndef _FESA_PARSER_HPP_ 00004 #define _FESA_PARSER_HPP_ 00005 00006 #include <string> 00007 #include <vector> 00008 #include <map> 00009 #include <boost/shared_ptr.hpp> 00010 #include <fesa-core/Utilities/ParserElements/ClassElement.h> 00011 00012 namespace fesa 00013 { 00014 00015 class XMLParser; 00016 class AbstractRTDeviceClass; 00017 00018 //Path to navigate through the Instantiation-File 00019 const std::string CLASS_BASE_PATH = "/instantiation-unit/classes/"; 00020 00025 class EventsMappingLoader 00026 { 00027 public: 00028 00034 EventsMappingLoader(boost::shared_ptr<ClassElement> classElement,XMLParser* parser); 00035 00036 ~EventsMappingLoader(); 00037 00041 EventMap getEventMap() const; 00042 00046 std::vector< EventElementPointer > getEventElementCol(const std::string& logicalEventName) const; 00047 00048 protected: 00049 00053 void loadEventsMapping(XMLParser* parser); 00054 00055 void deleteXMLElements(std::vector<ElementXML*>* xmlElements) const; 00056 00057 private: 00058 00062 boost::shared_ptr<ClassElement> classElement_; 00063 }; 00064 00065 } // fesa 00066 #endif