00001 // Copyright CERN 2012 - Developed in collaboration with GSI 00002 00003 #ifndef SERVICE_LOCATOR_SERVER_SPLIT_IMPLEMENTATION_H_ 00004 #define SERVICE_LOCATOR_SERVER_SPLIT_IMPLEMENTATION_H_ 00005 00006 #include <fesa-core/Core/AbstractServiceLocatorImplementation.h> 00007 00008 #include <string> 00009 #include <vector> 00010 00011 namespace fesa 00012 { 00013 00014 00015 class MultiplexingContext; 00016 class AbstractDevice; 00021 class ServiceLocatorServerSplitImplementation : public AbstractServiceLocatorImplementation 00022 { 00023 public: 00024 ServiceLocatorServerSplitImplementation(const std::string& className); 00025 virtual ~ServiceLocatorServerSplitImplementation(); 00026 void runClassSpecificInitRT() const; 00027 void runClassSpecificInitServer() const; 00028 void runDeployUnitSpecificInitRT() const; 00029 void runDeployUnitSpecificInitServer() const; 00030 void enableEventSource(const std::string& eventSourceName) const; 00031 void disableEventSource(const std::string& eventSourceName) const; 00032 void enableRTEvent(const std::string& eventName, const std::string& eventSourceName) const; 00033 void disableRTEvent(const std::string& eventName, const std::string& eventSourceName) const; 00034 bool isEventEnabled(const std::string& eventName, const std::string& eventSourceName) const; 00035 void synchronizeSettingFields(const MultiplexingContext& pContext) const; 00036 void triggerPersistency() const; 00037 AbstractDevice* getDevice(const std::string& deviceName) const; 00038 const std::vector<AbstractDevice*>& getDeviceCollection() const; 00039 AbstractDevice* getGlobalDevice() const; 00040 }; 00041 00042 } // namespace end 00043 00044 #endif //SERVICE_LOCATOR_SERVER_SPLIT_IMPLEMENTATION_H_