00001 #ifndef _IT_BUS_PDK_MESSAGING_PORT_H_
00002 #define _IT_BUS_PDK_MESSAGING_PORT_H_
00003
00004
00005
00006
00007 #ifndef IT_MINIMISE_INCLUDES
00008 #include <it_bus/bus.h>
00009 #endif
00010
00011 #include <it_bus/api_defines.h>
00012 #include <it_bus/qname.h>
00013 #include <it_bus/port.h>
00014 #include <it_bus/port_factory.h>
00015 #include <it_bus/binding_manager.h>
00016 #include <it_bus_pdk/registry.h>
00017 #include <it_bus_pdk/messaging_transport.h>
00018 #include <it_wsdl/wsdl_port.h>
00019
00020 namespace IT_Bus
00021 {
00022 const QName MESSAGING_PORT_MESSAGE_NAME("bus", "messaging_port", "http://schemas.iona.com/bus");
00023
00024 class InterceptorFactory;
00025 class EndpointManager;
00026
00027 class IT_BUS_API MessagingPort : public Port
00028 {
00029 public:
00030 MessagingPort() {}
00031
00032 virtual ~MessagingPort();
00033
00034
00035 virtual void
00036 start_invoke(ClientOperation& data) = 0;
00037
00038 virtual void
00039 assemble_client_interceptors() = 0;
00040
00041 virtual const ServerMessageInterceptorChain&
00042 get_server_message_binding_chain() = 0;
00043
00044 virtual void
00045 add_client_message_interceptor_factory(
00046 InterceptorFactory*
00047 ) = 0;
00048
00049 virtual EndpointManager*
00050 get_endpoint_manager() = 0;
00051
00052 private:
00053
00054
00055
00056 MessagingPort &
00057 operator = (
00058 const MessagingPort& rhs
00059 );
00060
00061 MessagingPort(
00062 const MessagingPort& rhs
00063 );
00064 };
00065 }
00066
00067 #endif