InitializeDataStoreManager.h

Go to the documentation of this file.
00001 // Copyright CERN 2012 - Developed in collaboration with GSI
00002 
00003 #ifndef _INITIALIZE_DATASTORE_MANAGER_H_
00004 #define _INITIALIZE_DATASTORE_MANAGER_H_
00005 
00006 #include <vector>
00007 #include <string>
00008 
00009 #include <stdint.h>
00010 
00011 namespace fesa
00012 {
00013 
00014 class GlobalDeviceElement;
00015 class DeviceElement;
00016 class DomainStoreElement;
00017 class FieldElement;
00018 class ElementXML;
00019 class XMLParser;
00020 
00026 class InitializeDataStoreManager
00027 {
00028 
00029   public:
00030 
00036     InitializeDataStoreManager(const std::string className);
00037 
00042     ~InitializeDataStoreManager();
00043 
00047     GlobalDeviceElement& retrieveGlobalDeviceElement();
00048 
00052     const std::vector<DeviceElement*>& retrieveDeviceElements();
00053 
00057     const std::vector<DomainStoreElement*>& retrieveDomainStoreElements();
00058 
00062     int32_t getRollingManagerDepth();
00063 
00064   private:
00065 
00066     static const int32_t ROLLING_DEFAULT_SIZE = 3;
00067 
00071     void processDeviceFields(const std::vector<ElementXML*>& fields, DeviceElement* pDeviceElement);
00072 
00077     void fillElement(const ElementXML* pField, FieldElement* pFieldElement);
00078 
00082     void processDeviceRelationField(const ElementXML* pField, FieldElement* pFieldElement);
00083 
00087     void processExtraMuxField(const ElementXML* pField, DeviceElement* pDeviceElement);
00088 
00092     std::string getFieldValue(const ElementXML* pField);
00093 
00097     std::string getAttributeValue(const ElementXML* element);
00098 
00102     uint32_t getAttributeValueAsInt(const ElementXML* element);
00103 
00107     XMLParser* parser_;
00108 
00112     std::string className_;
00113 
00117     GlobalDeviceElement* globalDeviceElement_;
00118 
00122     std::vector<DeviceElement*> pDeviceElementCol_;
00123 
00127     std::vector<DomainStoreElement*> pDomainStoreElementCol_;
00128 
00129 };
00130 
00131 } // fesa
00132 
00133 #endif // _INITIALIZE_DATASTORE_MANAGER_H_

Generated on 18 Jan 2013 for Fesa by  doxygen 1.6.1