00001 #ifndef _IT_WSDL_WSDL_DEFINITIONS_H_
00002 #define _IT_WSDL_WSDL_DEFINITIONS_H_
00003
00004
00005
00006
00007 #include <it_bus/ref_counted_base.h>
00008 #include <it_bus/var.h>
00009 #include <it_wsdl/wsdl_type_alias.h>
00010 #include <it_wsdl/wsdl_extension_element.h>
00011 #include <it_wsdl/wsdl_exception.h>
00012 #include <it_schema_model/model_reader.h>
00013
00014 #ifndef IT_MINIMISE_INCLUDES
00015 #include <it_wsdl/api_defines.h>
00016 #include <it_bus/qname.h>
00017 #include <it_bus/xml_output_stream.h>
00018 #include <it_bus/io_exception.h>
00019 #include <it_wsdl/wsdl_binding.h>
00020 #include <it_wsdl/wsdl_node.h>
00021 #include <it_wsdl/wsdl_message.h>
00022 #include <it_wsdl/wsdl_service.h>
00023 #include <it_wsdl/wsdl_port_type.h>
00024 #endif
00025
00026
00027 namespace IT_WSDL
00028 {
00029 class WSDLBinding;
00030 class WSDLMessage;
00031 class WSDLService;
00032 class WSDLPortType;
00033 class WSDLOperation;
00034
00035 class IT_WSDL_API WSDLDefinitions : virtual public WSDLExtensibleNode, public IT_Bus::RefCountedBase
00036 {
00037 public:
00038
00047 virtual const WSDLMessage *
00048 get_message(
00049 const IT_Bus::QName & message_qname
00050 ) const = 0;
00051
00060 virtual const WSDLService *
00061 get_service(
00062 const IT_Bus::QName & service_name
00063 ) const = 0;
00064
00073 virtual WSDLService *
00074 get_service(
00075 const IT_Bus::QName & service_name
00076 ) = 0;
00077
00087 virtual const WSDLServiceVector &
00088 get_services() const = 0;
00089
00099 virtual WSDLServiceVector &
00100 get_services() = 0;
00101
00110 virtual const WSDLPortType *
00111 get_port_type(
00112 const IT_Bus::QName & port_type_qname
00113 ) const = 0;
00114
00123 virtual const WSDLBinding *
00124 get_binding(
00125 const IT_Bus::QName & binding_qname
00126 ) const = 0;
00127
00137 virtual const WSDLBindingVector &
00138 get_bindings() const = 0;
00139
00149 virtual WSDLBindingVector &
00150 get_bindings() = 0;
00151
00162 virtual const IT_Bus::QName &
00163 get_name() const = 0;
00164
00165 virtual const IT_XML_Model::ModelReader *
00166 get_model_reader() const = 0;
00167
00173 virtual const IT_Bus::String&
00174 get_url() const = 0;
00175
00176 virtual WSDLService *
00177 create_service(
00178 const IT_Bus::QName & service_name
00179 ) IT_THROW_DECL((WSDLException)) = 0;
00180
00190 static
00191 WSDLDefinitions_ptr
00192 _duplicate(
00193 WSDLDefinitions_ptr definitions
00194 )
00195 {
00196 definitions->_add_ref();
00197 return definitions;
00198 }
00199
00200 protected:
00201 WSDLDefinitions() {}
00202
00203 private:
00204
00205 WSDLDefinitions(const WSDLDefinitions&);
00206 void operator=(const WSDLDefinitions&);
00207 };
00208 }
00209
00210 #endif