00001 // Copyright CERN 2012 - Developed in collaboration with GSI 00002 00003 #ifndef _PERSISTENCY_UNIT_H_ 00004 #define _PERSISTENCY_UNIT_H_ 00005 00006 #include <fesa-core/DataStore/DataStore.h> 00007 00008 #include <vector> 00009 #include <string> 00010 00011 namespace fesa 00012 { 00013 00014 class AbstractDevice; 00015 class DomainStore; 00016 class GlobalDevice; 00017 00018 class PersistencyUnit 00019 { 00020 public: 00021 00031 PersistencyUnit(GlobalDevice& globalDevice, std::vector<AbstractDevice*> deviceCol, 00032 std::vector<DomainStore*> domainStoreCol, const std::string& persistencyFileName); 00033 00038 const std::vector<AbstractDevice*>& getDeviceCollection(); 00039 00044 const std::vector<DomainStore*>& getDomainStoreCollection(); 00045 00051 GlobalDevice& getGlobalDevice(); 00056 const std::string& getPersistencyFileName(); 00057 00058 private: 00059 00063 GlobalDevice& pGlobalDevice_; 00064 00068 std::vector<AbstractDevice*> deviceCol_; 00069 00073 std::vector<DomainStore*> domainStoreCol_; 00074 00078 std::string persistencyFileName_; 00079 00080 }; 00081 00082 inline const std::vector<AbstractDevice*>& PersistencyUnit::getDeviceCollection() 00083 { 00084 return deviceCol_; 00085 } 00086 00087 inline const std::vector<DomainStore*>& PersistencyUnit::getDomainStoreCollection() 00088 { 00089 return domainStoreCol_; 00090 } 00091 00092 inline GlobalDevice& PersistencyUnit::getGlobalDevice() 00093 { 00094 return pGlobalDevice_; 00095 } 00096 00097 inline const std::string& PersistencyUnit::getPersistencyFileName() 00098 { 00099 return persistencyFileName_; 00100 } 00101 00102 } // fesa 00103 00104 #endif // _PERSISTENCY_UNIT_H_