it_bus/client_proxy_base.h

00001 #ifndef _IT_BUS_CLIENT_PROXY_BASE_H_
00002 #define _IT_BUS_CLIENT_PROXY_BASE_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
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         ) IT_THROW_DECL((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         // private and unimplemented to prevent copying
00228         ClientProxyBase(const ClientProxyBase&);
00229         void operator=(const ClientProxyBase&);
00230     };
00231 }
00232 
00233 #endif  

Generated on Thu Sep 7 11:38:52 2006 for Artix by  doxygen 1.4.7