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
00010 #include <it_wsdl/api_defines.h>
00011
00012 #include <it_bus/qname.h>
00013 #include <it_bus/xml_output_stream.h>
00014 #include <it_bus/io_exception.h>
00015
00016 #include <it_wsdl/wsdl_binding.h>
00017 #include <it_wsdl/wsdl_node.h>
00018 #include <it_wsdl/wsdl_message.h>
00019 #include <it_wsdl/wsdl_service.h>
00020 #include <it_wsdl/wsdl_port_type.h>
00021 #include <it_wsdl/wsdl_extension_element.h>
00022 #include <it_wsdl/wsdl_exception.h>
00023
00024 #include <it_schema_model/model_reader.h>
00025
00026 namespace IT_WSDL
00027 {
00031 typedef IT_Vector<WSDLService *> WSDLServiceVector;
00032
00036 typedef IT_Vector<WSDLBinding *> WSDLBindingVector;
00037
00038 class IT_WSDL_API WSDLDefinitions;
00039
00043 typedef WSDLDefinitions * WSDLDefinitions_ptr;
00044
00048 typedef IT_Bus::Var<WSDLDefinitions> WSDLDefinitions_var;
00049
00054 class IT_WSDL_API WSDLDefinitions : virtual public WSDLExtensibleNode, public IT_Bus::RefCountedBase
00055 {
00056 public:
00057
00066 virtual const WSDLMessage *
00067 get_message(
00068 const IT_Bus::QName & message_qname
00069 ) const = 0;
00070
00079 virtual const WSDLService *
00080 get_service(
00081 const IT_Bus::QName & service_name
00082 ) const = 0;
00083
00092 virtual WSDLService *
00093 get_service(
00094 const IT_Bus::QName & service_name
00095 ) = 0;
00096
00106 virtual const WSDLServiceVector &
00107 get_services() const = 0;
00108
00118 virtual WSDLServiceVector &
00119 get_services() = 0;
00120
00129 virtual const WSDLPortType *
00130 get_port_type(
00131 const IT_Bus::QName & port_type_qname
00132 ) const = 0;
00133
00142 virtual const WSDLBinding *
00143 get_binding(
00144 const IT_Bus::QName & binding_qname
00145 ) const = 0;
00146
00156 virtual const WSDLBindingVector &
00157 get_bindings() const = 0;
00158
00168 virtual WSDLBindingVector &
00169 get_bindings() = 0;
00170
00181 virtual const IT_Bus::QName &
00182 get_name() const = 0;
00183
00184 virtual const IT_XML_Model::ModelReader *
00185 get_model_reader() const = 0;
00186
00192 virtual const IT_Bus::String&
00193 get_url() const = 0;
00194
00195 virtual WSDLService *
00196 create_service(
00197 const IT_Bus::QName & service_name
00198 ) throw((WSDLException)) = 0;
00199
00209 static
00210 WSDLDefinitions_ptr
00211 _duplicate(
00212 WSDLDefinitions_ptr definitions
00213 )
00214 {
00215 definitions->_add_ref();
00216 return definitions;
00217 }
00218
00219 protected:
00220 WSDLDefinitions() {}
00221
00222 private:
00223
00224 WSDLDefinitions(const WSDLDefinitions&);
00225 void operator=(const WSDLDefinitions&);
00226 };
00227 }
00228
00229 #endif