00001 #ifndef _IT_WSDL_WSDL_SERVICE_H_
00002 #define _IT_WSDL_WSDL_SERVICE_H_
00003
00004
00005
00006
00007 #include <it_dsa/vector.h>
00008 #include <it_wsdl/wsdl_exception.h>
00009 #include <it_wsdl/api_defines.h>
00010 #include <it_wsdl/wsdl_extension_element.h>
00011
00012 #ifndef IT_MINIMISE_INCLUDES
00013 #include <it_wsdl/wsdl_port.h>
00014 #include <it_wsdl/wsdl_node.h>
00015 #include <it_bus/qname.h>
00016 #include <it_wsdl/wsdl_port.h>
00017 #endif
00018
00019 namespace IT_WSDL
00020 {
00021 class WSDLDefinitions;
00022 class WSDLPort;
00026 typedef IT_Vector<WSDLPort *> WSDLPortVector;
00027
00032 class IT_WSDL_API WSDLService : virtual public WSDLExtensibleNode
00033 {
00034 public:
00042 virtual WSDLDefinitions &
00043 get_definitions() = 0;
00044
00052 virtual const WSDLDefinitions &
00053 get_definitions() const = 0;
00054
00063 virtual const WSDLPort *
00064 get_port(
00065 const IT_Bus::String & port_name
00066 ) const = 0;
00067
00076 virtual WSDLPort *
00077 get_port(
00078 const IT_Bus::String & port_name
00079 ) = 0;
00080
00089 virtual WSDLPortVector &
00090 get_ports() = 0;
00091
00100 virtual const WSDLPortVector &
00101 get_ports() const = 0;
00102
00108 virtual const IT_Bus::QName &
00109 get_name() const = 0;
00110
00111 virtual WSDLPort *
00112 create_port(
00113 const IT_Bus::String & port_name,
00114 const IT_Bus::QName & binding_qname
00115 ) throw((WSDLException)) = 0;
00116
00117 protected:
00118 WSDLService() {}
00119
00120 private:
00121 WSDLService &
00122 operator = (
00123 const WSDLService& rhs
00124 );
00125
00126 WSDLService(
00127 const WSDLService& rhs
00128 );
00129 };
00130 }
00131
00132 #endif