00001 #ifndef _IT_BUS_PDK_BUS_SERVICE_ACTIVATOR_H_
00002 #define _IT_BUS_PDK_BUS_SERVICE_ACTIVATOR_H_
00003
00004
00005
00006
00007 #ifndef IT_MINIMISE_INCLUDES
00008 #include <it_bus/bus.h>
00009 #endif
00010
00011 #include <it_bus/bus_type_alias.h>
00012 #include <it_bus/types.h>
00013 #include <it_bus/qname.h>
00014 #include <it_bus_pdk/registry.h>
00015
00016 namespace IT_Bus
00017 {
00018 class IT_BUS_API ServiceActivator :
00019 public RegistryBase
00020 {
00021 public:
00022
00023 virtual ~ServiceActivator() throw(());
00024
00025 virtual void
00026 activate_service(
00027 const IT_Bus::QName & service_name
00028 ) throw((Exception)) = 0;
00029
00030 virtual void
00031 deactivate_service(
00032 const IT_Bus::QName & service_name
00033 ) = 0;
00034
00035 static IT_Bus::Boolean
00036 register_sa(
00037 IT_Bus::Bus_ptr bus,
00038 const IT_Bus::QName & service_name,
00039 ServiceActivator * sa
00040 );
00041
00042 static IT_Bus::Boolean
00043 deregister_sa(
00044 IT_Bus::Bus_ptr bus,
00045 const IT_Bus::QName & service_name
00046 );
00047
00048 static ServiceActivator*
00049 get_service_activator(
00050 IT_Bus::Bus_ptr bus,
00051 const IT_Bus::QName & service_name
00052 );
00053
00054 static const String SERVICE_ACTIVATOR_QNAME_REGISTRY_NAME;
00055 };
00056
00057 typedef Registry<QName, ServiceActivator> ServiceActivatorRegistry;
00058 }
00059
00060 #endif