00001 #ifndef _IT_BUS_CLIENT_PROXY_BASE_H_
00002 #define _IT_BUS_CLIENT_PROXY_BASE_H_
00003
00004
00005
00006
00007 #ifndef IT_MINIMISE_INCLUDES
00008 #include <it_bus/bus.h>
00009 #include <it_wsdl/wsdl_definitions.h>
00010 #endif
00011 #include <it_bus/api_defines.h>
00012 #include <it_bus/bus_type_alias.h>
00013 #include <it_bus/types.h>
00014 #include <it_bus/logging_defs.h>
00015 #include <it_bus/endpoint_reference.h>
00016 #include <it_cal/auto_ptr.h>
00017
00018 namespace WS_Addressing
00019 {
00020 class EndpointReferenceType;
00021 }
00022 namespace IT_Bus
00023 {
00024 class Port;
00025 class ClientProxyDelegate;
00026 class Reference;
00027 class ClientService;
00028 class ClientOperation;
00029 class QName;
00030 class String;
00031
00038 class IT_BUS_API ClientProxyBase
00039 {
00040 public:
00041
00052 ClientProxyBase(
00053 const IT_Bus::String& wsdl,
00054 const IT_Bus::QName& service_name,
00055 const IT_Bus::String& port_name = String::EMPTY,
00056 IT_Bus::Bus* bus = 0
00057 );
00058
00071 ClientProxyBase(
00072 const WS_Addressing::EndpointReferenceType& epr_ref,
00073 IT_Bus::Bus_ptr bus = 0
00074 );
00075
00099 ClientProxyBase(
00100 const WS_Addressing::EndpointReferenceType& epr_ref,
00101 const IT_Bus::String& wsdl_location,
00102 const IT_Bus::QName& service_name,
00103 const IT_Bus::String& port_name,
00104 IT_Bus::Bus_ptr bus = 0
00105 );
00106
00125 ClientProxyBase(
00126 const IT_Bus::QName& service_name,
00127 const IT_Bus::String& port_name = String::EMPTY,
00128 IT_Bus::Bus_ptr bus = 0
00129 );
00130
00145 ClientProxyBase(
00146 const IT_Bus::Reference& reference,
00147 const IT_Bus::String& port_name = String::EMPTY,
00148 IT_Bus::Bus_ptr bus = 0
00149 );
00150
00159 ClientProxyBase(
00160 const IT_Bus::EndpointReference& epr,
00161 IT_Bus::Bus_ptr bus = 0
00162 );
00163
00167 virtual
00168 ~ClientProxyBase();
00169
00175 virtual Bus_ptr
00176 get_bus();
00177
00184 virtual Port&
00185 get_port();
00186
00193 virtual ClientService&
00194 _get_service();
00195
00204 virtual ClientOperation*
00205 create_operation(
00206 const String & operation_name
00207 ) throw((Exception));
00208
00215 IT_Bus::String
00216 get_wsdl_location();
00217
00218 protected:
00219 IT_DECLARE_BUS_LOGGER_MEM
00220
00221 private:
00222
00223 ClientProxyDelegate* m_delegate;
00224
00225 ClientProxyBase();
00226
00227
00228 ClientProxyBase(const ClientProxyBase&);
00229 void operator=(const ClientProxyBase&);
00230 };
00231 }
00232
00233 #endif