it_bus/port_factory.h

00001 #ifndef _IT_BUS_PORT_FACTORY_H_
00002 #define _IT_BUS_PORT_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/types.h>
00009 #include <it_bus/qname.h>
00010 #ifndef IT_MINIMISE_INCLUDES
00011 #include <it_wsdl/wsdl_definitions.h>
00012 #include <it_wsdl/wsdl_extension_factory.h>
00013 #endif
00014 
00015 namespace IT_WSDL
00016 {
00017     class WSDLPort;
00018     class WSDLExtensionFactory;
00019 }
00020 
00021 namespace IT_Bus
00022 {
00023     class Port;
00024     class MessageReaderWriterFactory;
00025     class ServiceBase;
00026 
00027     class IT_BUS_API PortFactory
00028     {
00029       public:
00030         virtual Port *
00031         create_port(
00032             const IT_WSDL::WSDLPort & wsdl_port,
00033             ServiceBase *             service = 0
00034         ) const = 0;
00035 
00036         virtual void
00037         destroy_port(
00038             Port * binding_port
00039         ) const = 0;
00040 
00041         virtual const IT_WSDL::WSDLExtensionFactory*
00042         get_wsdl_extension_factory(
00043             const IT_Bus::String& binding_namespace
00044         ) const = 0;
00045 
00046         virtual void
00047         register_message_reader_writer_factory(
00048             const String&               binding_namespace,
00049             MessageReaderWriterFactory* factory
00050         );
00051 
00052         virtual void
00053         deregister_message_reader_writer_factory(
00054             const String& binding_namespace
00055         );
00056 
00057         virtual MessageReaderWriterFactory*
00058         get_message_reader_writer_factory(
00059             const String& binding_namespace
00060         );
00061 
00062       protected:
00063         PortFactory() {}
00064         virtual ~PortFactory();
00065 
00066       private:
00067         // private and unimplemented to prevent copying
00068         PortFactory(const PortFactory&);
00069         void operator=(const PortFactory&);
00070     };
00071 }
00072 
00073 #endif  

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