it_bus/type_factory.h

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

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