Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members

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

Generated on Wed Mar 22 12:23:03 2006 for Artix by  doxygen 1.3.9.1