00001 #ifndef _IT_BUS_CONFIG_SOAP_WSDL_ADDRESS_H_
00002 #define _IT_BUS_CONFIG_SOAP_WSDL_ADDRESS_H_
00003
00004
00005
00006
00007 #include <it_ts/mutex.h>
00008 #include <it_bus_pdk/messaging_transport.h>
00009 #include <it_bus/sequence_complex_type.h>
00010 #include <it_bus_config/soap_wsdl_extension_element.h>
00011 #include <it_bus_config/endpoint_address.h>
00012
00013 namespace IT_Bus
00014 {
00019 class IT_SOAP_API SoapWSDLAddress :
00020 public SoapWSDLExtensionElement,
00021 public IT_Bus::SequenceComplexType,
00022 public EndpointAddress
00023 {
00024 public:
00025
00026 SoapWSDLAddress();
00027
00028 SoapWSDLAddress(
00029 IT_WSDL::WSDLExtensibleNode * parent
00030 );
00031
00032 virtual ~SoapWSDLAddress();
00033
00042 const String &
00043 get_location() const;
00044
00051 void
00052 set_location(
00053 const String& location
00054 );
00055
00056 bool
00057 parse(
00058 const XMLIterator & element_iterator,
00059 const IT_Bus::XMLNode & element,
00060 IT_WSDL::WSDLErrorHandler & error_handler
00061 );
00062
00063 virtual bool
00064 export_to_client() const
00065 {
00066 return true;
00067 }
00068
00076 static const SoapWSDLAddress*
00077 get_from_port(
00078 const IT_WSDL::WSDLPort& wsdl_port
00079 );
00080
00086 virtual void
00087 write_attributes(
00088 IT_Bus::XMLOutputStream & stream
00089 ) const throw((IT_Bus::IOException));
00090
00091
00098 virtual void
00099 read(
00100 const IT_Bus::QName& element_name,
00101 ComplexTypeReader & reader
00102 ) throw((IT_Bus::DeserializationException));
00103
00110 virtual void
00111 write(
00112 const IT_Bus::QName& element_name,
00113 IT_Bus::ComplexTypeWriter & writer
00114 ) const throw((IT_Bus::SerializationException));
00115
00129 virtual
00130 IT_WSDL::WSDLExtensionElement*
00131 clone() const;
00132
00148 virtual
00149 IT_WSDL::WSDLExtensionElement*
00150 clone_unique(
00151 const IT_Bus::QName& name
00152 ) const;
00153
00154
00155 virtual void
00156 write(
00157 IT_Bus::XMLOutputStream & stream
00158 ) const throw((IT_Bus::IOException));
00159
00160
00161
00162
00163
00164
00165 virtual void
00166 read_contents(
00167 ComplexTypeReader & os
00168 ) throw((IT_Bus::DeserializationException));
00169
00170 virtual void
00171 write_contents(
00172 ComplexTypeWriter & os
00173 ) const throw((IT_Bus::SerializationException));
00174
00175 virtual void
00176 write_attributes(
00177 ComplexTypeWriter & writer
00178 ) const throw((IT_Bus::SerializationException));
00179
00180 virtual void
00181 read_attributes(
00182 ComplexTypeReader & reader
00183 ) throw((IT_Bus::DeserializationException));
00184
00185
00186 virtual const IT_Bus::QName &
00187 get_type() const;
00188
00189 virtual
00190 AnyType&
00191 copy(
00192 const AnyType & rhs
00193 );
00194
00195 SoapWSDLAddress& operator=(
00196 const SoapWSDLAddress & 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
00214
00215 SoapWSDLAddress (
00216 const SoapWSDLAddress& rhs
00217 );
00218
00219 String m_location;
00220 unsigned long m_default_port;
00221
00222 IT_Mutex m_lock;
00223 };
00224 }
00225
00226 #endif