it_bus_pdk/delegating_type_factory.h

00001 #ifndef _IT_BUSIMPL_DELEGATING_TYPE_FACTINGY_H_
00002 #define _IT_BUSIMPL_DELEGATING_TYPE_FACTINGY_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 
00007 #include <it_bus/api_defines.h>
00008 #include <it_bus/type_factory.h>
00009 #include <it_bus/implementation_details.h>
00010 
00011 namespace IT_Bus
00012 {
00013     class QName;
00014     class AnyType;
00015     class UserFaultException;
00016     
00017     class IT_AFC_API DelegatingTypeFactory : public TypeFactory
00018     {
00019       public:
00020 
00021         virtual ~DelegatingTypeFactory();
00022 
00023         virtual AnyType* 
00024         create_type(
00025             const QName& type_name
00026         ) const;
00027 
00028         virtual UserFaultException* 
00029         create_exception(
00030             const QName& type_name
00031         ) const;
00032 
00033         virtual AnyType*
00034         create_type_for_element(
00035             const QName& element_name
00036         ) const;
00037 
00038         virtual void 
00039         destroy_type(
00040             AnyType* any_type
00041         ) const;
00042 
00043         virtual void 
00044         destroy_exception(
00045             UserFaultException* ex_type
00046         ) const;
00047 
00048         virtual void
00049         add_factory(
00050             const TypeFactory* factory
00051         );
00052         
00053         virtual AnyType* 
00054         create_type(
00055             const QName&                               type_name,
00056             ImplementationDetails::ImplementationType  impl_type
00057         );
00058 
00059         virtual AnyType* 
00060         create_type_for_element(
00061             const QName&                               type_name,
00062             ImplementationDetails::ImplementationType  impl_type
00063         );
00064 
00065       private:
00066         typedef IT_Vector<const TypeFactory*> FactoryList;
00067         FactoryList m_factories;
00068     };
00069 }
00070 
00071 #endif  

Generated on Tue Mar 20 15:27:52 2007 for Artix by  doxygen 1.5.1-p1