AbstractServiceLocator.h

Go to the documentation of this file.
00001 // Copyright CERN 2012 - Developed in collaboration with GSI
00002 #ifndef ABSTRACT_SERVICE_LOCATOR_H_
00003 #define ABSTRACT_SERVICE_LOCATOR_H_
00004 
00005 #include <string>
00006 #include <vector>
00007 
00008 namespace fesa
00009 {
00010 
00011     class MultiplexingContext;
00012     class AbstractDevice;
00013     class AbstractServiceLocatorImplementation;
00014 
00019     class AbstractServiceLocator
00020     {
00021         public:
00022             explicit AbstractServiceLocator(AbstractServiceLocatorImplementation* abstractImplementation);
00023             virtual ~AbstractServiceLocator();
00024 
00029             void runClassSpecificInitRT() const;
00030 
00035             void runClassSpecificInitServer() const;
00036 
00041             void runDeployUnitSpecificInitRT() const;
00042 
00047             void runDeployUnitSpecificInitServer() const;
00048 
00056             void enableEventSource(const std::string& eventSourceName) const;
00057 
00065             void disableEventSource(const std::string& eventSourceName) const;
00066 
00074             void enableRTEvent(const std::string& logicalEventName, const std::string& eventSourceName) const;
00075 
00083             void disableRTEvent(const std::string& logicalEventName, const std::string& eventSourceName) const;
00084 
00093             bool isEventEnabled(const std::string& logicalEventName, const std::string& eventSourceName) const;
00094 
00100             void synchronizeSettingFields(const MultiplexingContext& context) const;
00101 
00106             void triggerPersistency() const;
00107 
00113             virtual const std::vector<AbstractDevice*>& getDeviceCollection() const;
00114 
00121             virtual AbstractDevice* getDevice(const std::string& deviceName) const;
00122 
00128             virtual AbstractDevice* getGlobalDevice() const;
00129 
00130         protected:
00131             std::string className_;
00132             AbstractServiceLocatorImplementation* pImplementation_;
00133            };
00134 
00135 
00136 } // fesa
00137 
00138 #endif //ABSTRACT_SERVICE_LOCATOR_H_

Generated on 18 Jan 2013 for Fesa by  doxygen 1.6.1