it_wsdl/wsdl_extension_factory.h

00001 #ifndef _IT_WSDL_WSDL_EXTENSION_FACTORY_H_
00002 #define _IT_WSDL_WSDL_EXTENSION_FACTORY_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 
00007 #include <it_wsdl/api_defines.h>
00008 #include <it_bus/type_factory.h>
00009 #ifndef IT_MINIMISE_INCLUDES
00010 #include <it_wsdl/wsdl_extension_element.h>
00011 #endif
00012 
00013 namespace IT_WSDL
00014 {
00015     class WSDLExtensionElement;
00016     class WSDLExtensibleNode;
00017     class IT_WSDL_API WSDLExtensionFactory : public IT_Bus::TypeFactory
00018     {
00019       public:
00020         virtual WSDLExtensionElement*
00021         create_extension_element(
00022             WSDLExtensibleNode&  parent,
00023             const IT_Bus::QName& extension_element
00024         ) const = 0;
00025 
00026         virtual IT_Bus::AnyType*
00027         create_type(
00028             const IT_Bus::QName& extension_element
00029         ) const = 0;
00030 
00031         virtual void
00032         destroy_type(
00033             IT_Bus::AnyType* element
00034         ) const = 0;
00035 
00036         virtual IT_Bus::AnyType*
00037         create_type_for_element(
00038             const IT_Bus::QName& element_name
00039         ) const;
00040 
00041         virtual IT_Bus::UserFaultException* 
00042         create_exception(
00043             const IT_Bus::QName& type_name
00044         ) const;
00045 
00046         virtual void 
00047         destroy_exception(
00048             IT_Bus::UserFaultException* ex_type
00049         ) const;
00050 
00051       protected:
00052         WSDLExtensionFactory() {}
00053 
00054       private:
00055         // private and unimplemented to prevent copying
00056         WSDLExtensionFactory(const WSDLExtensionFactory&);
00057         void operator=(const WSDLExtensionFactory&);
00058     };
00059 }
00060 
00061 #endif  

Generated on Thu Sep 7 11:39:09 2006 for Artix by  doxygen 1.4.7