00001 #ifndef _IT_WSDL_FACTORY_H_
00002 #define _IT_WSDL_FACTORY_H_
00003
00004
00005
00006
00007
00008 #include <it_bus/types.h>
00009 #include <it_wsdl/api_defines.h>
00010
00011 #ifndef IT_MINIMISE_INCLUDES
00012 #include <it_wsdl/wsdl_extension_factory.h>
00013 #include <it_wsdl/wsdl_node.h>
00014 #endif
00015
00016 namespace IT_WSDL
00017 {
00018 class WSDLExtensionFactory;
00019
00020 class IT_WSDL_API WSDLFactory
00021 {
00022 public:
00023 virtual void
00024 register_extension_factory(
00025 const IT_Bus::String& extension_namespace,
00026 const WSDLExtensionFactory& factory
00027 ) = 0;
00028
00029 virtual void
00030 deregister_extension_factory(
00031 const IT_Bus::String& extension_namespace
00032 ) = 0;
00033
00034 virtual const WSDLExtensionFactory*
00035 get_extension_factory(
00036 const IT_Bus::String& extension_namespace
00037 ) = 0;
00038
00039 protected:
00040 WSDLFactory();
00041
00042 virtual
00043 ~WSDLFactory();
00044
00045 private:
00046 WSDLFactory(
00047 const WSDLFactory& rhs
00048 );
00049
00050 WSDLFactory&
00051 operator= (
00052 const WSDLFactory& rhs
00053 );
00054 };
00055 }
00056
00057 #endif
00058