00001 #ifndef _IT_BUS_SERVER_SERVICE_H_
00002 #define _IT_BUS_SERVER_SERVICE_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include <it_bus/service_base.h>
00013
00014 #define IT_BUS_ALL_PORTS IT_Bus::String::EMPTY
00015
00016 namespace IT_WorkQueue
00017 {
00018 class WorkQueue;
00019 }
00020
00021 namespace IT_Bus {
00022
00023 class Servant;
00024 class ServantProvider;
00025
00030 class IT_BUS_API ServerService : public ServiceBase
00031 {
00032
00033 public:
00034 virtual void
00035 initialize(
00036 IT_Bool activation
00037 ) = 0;
00038
00050 virtual void
00051 register_servant(
00052 Servant & servant,
00053 const String & port_to_register = IT_BUS_ALL_PORTS
00054 ) = 0;
00055
00069 virtual void
00070 register_default_servant(
00071 Servant & servant,
00072 const String & port_to_register = IT_BUS_ALL_PORTS
00073 ) = 0;
00074
00089 virtual Reference
00090 get_reference_with_id(
00091 const String & instance_id,
00092 const String & port_to_register = IT_BUS_ALL_PORTS
00093 ) = 0;
00094
00095 virtual void
00096 register_servant_manager(
00097 ServantProvider & servant_manager,
00098 const String & port_name = IT_BUS_ALL_PORTS
00099 ) = 0;
00100
00115 virtual WS_Addressing::EndpointReferenceType
00116 get_endpoint_reference_with_id(
00117 const String & instance_id,
00118 const String & port_to_register = IT_BUS_ALL_PORTS
00119 ) = 0;
00120
00121
00128 virtual void
00129 shutdown(
00130 IT_Bool wait_for_completion
00131 ) = 0;
00132
00138 virtual IT_Bool
00139 is_transient() const = 0;
00140
00141 virtual IT_WorkQueue::WorkQueue*
00142 get_workqueue() = 0;
00143
00144 protected:
00145 ServerService() {}
00146
00147 private:
00148 ServerService & operator = (const ServerService& rhs);
00149 ServerService(const ServerService& rhs);
00150 };
00151
00152 }
00153
00154 #endif