00001 #ifndef _IT_BUS_SERVICE_BASE_H_
00002 #define _IT_BUS_SERVICE_BASE_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include <it_bus/api_defines.h>
00013 #include <it_bus/service_exception.h>
00014 #include <it_bus/qname.h>
00015 #include <it_wsdl/wsdl_definitions.h>
00016 #include <it_wsdl/wsdl_port.h>
00017 #include <it_bus/port.h>
00018 #include <it_bus/reference.h>
00019 #include <it_bus/ref_counted_base.h>
00020
00021 namespace IT_Bus {
00022
00023 namespace Logging
00024 {
00025 class ServiceNameRetriever;
00026 }
00027
00032 class IT_BUS_API ServiceBase :public RefCountedBase
00033 {
00034 public:
00044 virtual Reference &
00045 get_reference() = 0;
00046
00057 virtual void
00058 get_endpoint_reference(
00059 WS_Addressing::EndpointReferenceType &
00060 ) = 0;
00061
00071 virtual const Reference &
00072 get_reference() const = 0;
00073
00082 virtual Port *
00083 get_port(
00084 const IT_WSDL::WSDLPort & wsdl_port
00085 ) throw((ServiceException)) = 0;
00086
00093 virtual const IT_WSDL::WSDLDefinitions &
00094 get_wsdl_definitions() const = 0;
00095
00101 virtual const QName &
00102 get_name() const = 0;
00103
00110 virtual const IT_WSDL::WSDLService &
00111 get_wsdl_service() const = 0;
00112
00113 virtual void
00114 activate() = 0;
00115
00116 virtual void
00117 deactivate() = 0;
00118
00119 virtual void
00120 wait() = 0;
00121
00122 virtual Logging::ServiceNameRetriever*
00123 get_snr() = 0;
00124
00125 protected :
00126
00127 ServiceBase()
00128 {
00129 };
00130
00131 private:
00132 ServiceBase & operator = (const ServiceBase& rhs);
00133 ServiceBase(const ServiceBase& rhs);
00134 };
00135
00136 }
00137
00138 #endif