00001 #ifndef _IT_BUS_MESSAGE_READER_WRITER_FACTORY_H_
00002 #define _IT_BUS_MESSAGE_READER_WRITER_FACTORY_H_
00003
00004
00005
00006
00007 #include <it_bus/api_defines.h>
00008 #include <it_wsdl/wsdl_port.h>
00009
00010 namespace IT_Bus
00011 {
00012 class SendMessageContext;
00013 class ReceiveMessageContext;
00014 class IT_BUS_API BindingHeaderProcessor
00015 {
00016 public:
00017
00018 virtual void
00019 add_headers(
00020 SendMessageContext* outgoing_data,
00021 const IT_WSDL::WSDLPort& wsdl_port
00022 ) = 0;
00023
00024 virtual void
00025 extract_headers(
00026 ReceiveMessageContext* incoming_data,
00027 const IT_WSDL::WSDLPort& wsdl_port
00028 ) = 0;
00029 };
00030
00031 class MessageReader;
00032 class MessageWriter;
00033
00034 class IT_BUS_API MessageReaderWriterFactory
00035 {
00036 public:
00037
00038 virtual MessageReader*
00039 create_message_reader(
00040 const IT_WSDL::WSDLPort& wsdl_port
00041 ) = 0;
00042
00043 virtual MessageWriter*
00044 create_message_writer(
00045 const IT_WSDL::WSDLPort& wsdl_port
00046 ) = 0;
00047
00048 virtual BindingHeaderProcessor*
00049 get_binding_header_processor();
00050
00051 MessageReaderWriterFactory();
00052
00053 virtual
00054 ~MessageReaderWriterFactory();
00055 };
00056 }
00057
00058 #endif