StoreManager.h

Go to the documentation of this file.
00001 // Copyright CERN 2012 - Developed in collaboration with GSI
00002 
00003 #ifndef _STORE_MANAGER_H_
00004 #define _STORE_MANAGER_H_
00005 
00006 #include <vector>
00007 #include <string>
00008 
00009 namespace fesa
00010 {
00011 
00012 class GlobalDevice;
00013 class AbstractDevice;
00014 class DomainStore;
00015 class PersistencyUnit;
00016 class XMLParser;
00017 class AbstractField;
00018 class DeviceElement;
00019 class GlobalDeviceElement;
00020 class DomainStoreElement;
00021 class DataStoreElement;
00022 class ElementXML;
00023 
00029 class StoreManager
00030 {
00031   public:
00032 
00036     StoreManager();
00037 
00041     ~StoreManager();
00042 
00051     void restore(GlobalDevice& globalDevice, std::vector<AbstractDevice*>& deviceCol,
00052                  std::vector<DomainStore*>& domainStoreCol, const std::string& className);
00053 
00059     void store(PersistencyUnit& pu);
00060 
00061   private:
00062 
00068     void storeFields(XMLParser& parser, const std::vector<AbstractField*>& fields, std::string dataStore);
00069 
00073     GlobalDeviceElement* retrieveGlobalDeviceElement(XMLParser& parser);
00074 
00078     std::vector<DeviceElement*>* retrieveDeviceElements(XMLParser& parser);
00079 
00083     std::vector<DomainStoreElement*>* retrieveDomainStoreElements(XMLParser& parser);
00084 
00085     void fillElements(ElementXML* dataStoreXML, DataStoreElement* dataStoreElement);
00086 
00087     static const std::string GLOBAL_DEVICE_TAG;
00088     static const std::string DEVICE_INSTANCE_TAG;
00089     static const std::string DOMAIN_STORE_TAG;
00090 };
00091 
00092 } // fesa
00093 
00094 #endif // _STORE_MANAGER_H_

Generated on 18 Jan 2013 for Fesa by  doxygen 1.6.1