it_bus_config/soap_wsdl_address.h

00001 #ifndef _IT_BUS_CONFIG_SOAP_WSDL_ADDRESS_H_
00002 #define _IT_BUS_CONFIG_SOAP_WSDL_ADDRESS_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 
00007 #ifndef IT_MINIMISE_INCLUDES
00008 #include <it_bus_pdk/messaging_transport.h>
00009 #endif
00010 #include <it_ts/mutex.h>
00011 #include <it_bus/sequence_complex_type.h>
00012 #include <it_bus_config/soap_wsdl_extension_element.h>
00013 #include <it_bus_config/endpoint_address.h>
00014 
00015 namespace IT_WSDL
00016 {
00017     class WSDLPort;
00018 }
00019 namespace IT_Bus
00020 {
00025     class IT_SOAP_API SoapWSDLAddress :
00026         public SoapWSDLExtensionElement,
00027         public IT_Bus::SequenceComplexType,
00028                 public EndpointAddress
00029     {
00030       public:
00031 
00032         SoapWSDLAddress();
00033 
00034         SoapWSDLAddress(
00035             IT_WSDL::WSDLExtensibleNode * parent
00036         );
00037 
00038         virtual ~SoapWSDLAddress();
00039 
00048         const String &
00049         get_location() const;
00050 
00057         void
00058         set_location(
00059             const String& location
00060         );
00061 
00062         bool
00063         parse(
00064             const XMLIterator & element_iterator,
00065             const IT_Bus::XMLNode & element,
00066             IT_WSDL::WSDLErrorHandler & error_handler
00067         );
00068 
00069         virtual bool
00070         export_to_client() const
00071         {
00072             return true;
00073         }
00074 
00082         static const SoapWSDLAddress* 
00083         get_from_port(
00084             const IT_WSDL::WSDLPort& wsdl_port
00085         );
00086 
00092         virtual void
00093         write_attributes(
00094             IT_Bus::XMLOutputStream & stream
00095         ) const throw((IT_Bus::IOException));
00096 
00097 
00104         virtual void
00105         read(
00106             const IT_Bus::QName& element_name,
00107             ComplexTypeReader & reader
00108         ) throw((IT_Bus::DeserializationException));
00109 
00116         virtual void
00117         write(
00118             const IT_Bus::QName& element_name,
00119             IT_Bus::ComplexTypeWriter & writer
00120         ) const throw((IT_Bus::SerializationException));
00121 
00135         virtual
00136         IT_WSDL::WSDLExtensionElement*
00137         clone() const;
00138 
00154         virtual
00155         IT_WSDL::WSDLExtensionElement*
00156         clone_unique(
00157             const IT_Bus::QName& name
00158         ) const;
00159 
00160 
00161         virtual void
00162         write(
00163             IT_Bus::XMLOutputStream & stream
00164         ) const throw((IT_Bus::IOException));
00165 
00166 
00167         /*
00168          * SequenceComplexType virtual methods.
00169          */
00170 
00171         virtual void
00172         read_contents(
00173             ComplexTypeReader & os
00174         ) throw((IT_Bus::DeserializationException));
00175 
00176         virtual void
00177         write_contents(
00178             ComplexTypeWriter & os
00179         ) const throw((IT_Bus::SerializationException));
00180 
00181         virtual void
00182         write_attributes(
00183             ComplexTypeWriter & writer
00184         ) const throw((IT_Bus::SerializationException));
00185 
00186         virtual void
00187         read_attributes(
00188             ComplexTypeReader & reader
00189         ) throw((IT_Bus::DeserializationException));
00190 
00191 
00192         virtual const IT_Bus::QName &
00193         get_type() const;
00194 
00195         virtual
00196         AnyType&
00197         copy(
00198             const AnyType & rhs
00199         );
00200 
00201         SoapWSDLAddress& operator=(
00202             const SoapWSDLAddress & rhs
00203         );
00204 
00205         void
00206         set_default_port(
00207             unsigned long default_port
00208         );
00209 
00210         unsigned long
00211         get_default_port() const;
00212 
00213       protected:
00214 
00215         void
00216         replace_zero_port_in_url();
00217 
00218       private:
00219 
00220 
00221         SoapWSDLAddress (
00222             const SoapWSDLAddress& rhs
00223         );
00224 
00225         String m_location;
00226         unsigned long m_default_port;
00227 
00228         IT_Mutex                m_lock;
00229     };
00230 }
00231 
00232 #endif  

Generated on Tue Mar 20 15:27:45 2007 for Artix by  doxygen 1.5.1-p1