it_bus_config/soap12_wsdl_address.h

00001 #ifndef _IT_BUS_CONFIG_SOAP12_WSDL_ADDRESS_H_
00002 #define _IT_BUS_CONFIG_SOAP12_WSDL_ADDRESS_H_
00003 
00004 // @Copyright 2006 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/soap12_wsdl_extension_element.h>
00013 #include <it_bus_config/endpoint_address.h>
00014 
00015 namespace IT_WSDL
00016 {
00017     class WSDLPort;
00018 }
00019 
00020 namespace IT_Bus
00021 {
00026     class IT_SOAP12_API Soap12WSDLAddress :
00027         public Soap12WSDLExtensionElement,
00028         public IT_Bus::SequenceComplexType,
00029         public EndpointAddress
00030     {
00031       public:
00032 
00033         Soap12WSDLAddress();
00034 
00035         Soap12WSDLAddress(
00036             IT_WSDL::WSDLExtensibleNode* parent
00037         );
00038 
00039         virtual ~Soap12WSDLAddress();
00040 
00041         Soap12WSDLAddress& 
00042         operator=(
00043             const Soap12WSDLAddress& rhs
00044         );
00045 
00054         const String&
00055         get_location() const;
00056 
00063         void
00064         set_location(
00065             const String& location
00066         );
00067 
00068         bool
00069         parse(
00070             const XMLIterator&          element_iterator,
00071             const IT_Bus::XMLNode&      element,
00072             IT_WSDL::WSDLErrorHandler&  error_handler
00073         );
00074 
00075         virtual bool
00076         export_to_client() const;
00077 
00085         static const Soap12WSDLAddress* 
00086         get_from_port(
00087             const IT_WSDL::WSDLPort& wsdl_port
00088         );
00089 
00095         virtual void
00096         write_attributes(
00097             IT_Bus::XMLOutputStream& stream
00098         ) const throw((IT_Bus::IOException));
00099 
00100 
00107         virtual void
00108         read(
00109             const IT_Bus::QName&  element_name,
00110             ComplexTypeReader&    reader
00111         ) throw((IT_Bus::DeserializationException));
00112 
00119         virtual void
00120         write(
00121             const IT_Bus::QName&        element_name,
00122             IT_Bus::ComplexTypeWriter&  writer
00123         ) const throw((IT_Bus::SerializationException));
00124 
00138         virtual IT_WSDL::WSDLExtensionElement*
00139         clone() const;
00140 
00156         virtual IT_WSDL::WSDLExtensionElement*
00157         clone_unique(
00158             const IT_Bus::QName& name
00159         ) const;
00160 
00161 
00162         virtual void
00163         write(
00164             IT_Bus::XMLOutputStream& stream
00165         ) const throw((IT_Bus::IOException));
00166 
00167         /*
00168          * SequenceComplexType virtual methods.
00169          */
00170         virtual void
00171         read_contents(
00172             ComplexTypeReader& os
00173         ) throw((IT_Bus::DeserializationException));
00174 
00175         virtual void
00176         write_contents(
00177             ComplexTypeWriter& os
00178         ) const throw((IT_Bus::SerializationException));
00179 
00180         virtual void
00181         write_attributes(
00182             ComplexTypeWriter& writer
00183         ) const throw((IT_Bus::SerializationException));
00184 
00185         virtual void
00186         read_attributes(
00187             ComplexTypeReader& reader
00188         ) throw((IT_Bus::DeserializationException));
00189 
00190 
00191         virtual const IT_Bus::QName&
00192         get_type() const;
00193 
00194         virtual AnyType&
00195         copy(
00196             const AnyType& rhs
00197         );
00198 
00199         void
00200         set_default_port(
00201             unsigned long default_port
00202         );
00203 
00204         unsigned long
00205         get_default_port() const;
00206 
00207       protected:
00208 
00209         void
00210         replace_zero_port_in_url();
00211 
00212       private:
00213         Soap12WSDLAddress (
00214             const Soap12WSDLAddress& rhs
00215         );
00216 
00217         String                  m_location;
00218         unsigned long           m_default_port;
00219         IT_Mutex                m_lock;
00220     };
00221 }
00222 
00223 #endif  

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