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 #ifndef IT_MINIMISE_INCLUDES
00009 #include <it_wsdl/wsdl_port.h>
00010 #endif
00011
00012 namespace IT_WSDL
00013 {
00014 class WSDLPort;
00015 }
00016 namespace IT_Bus
00017 {
00018 class SendMessageContext;
00019 class ReceiveMessageContext;
00020 class IT_BUS_API BindingHeaderProcessor
00021 {
00022 public:
00023
00024 virtual void
00025 add_headers(
00026 SendMessageContext* outgoing_data,
00027 const IT_WSDL::WSDLPort& wsdl_port
00028 ) = 0;
00029
00030 virtual void
00031 extract_headers(
00032 ReceiveMessageContext* incoming_data,
00033 const IT_WSDL::WSDLPort& wsdl_port
00034 ) = 0;
00035 };
00036
00037 class MessageReader;
00038 class MessageWriter;
00039
00040 class IT_BUS_API MessageReaderWriterFactory
00041 {
00042 public:
00043
00044 virtual MessageReader*
00045 create_message_reader(
00046 const IT_WSDL::WSDLPort& wsdl_port
00047 ) = 0;
00048
00049 virtual MessageWriter*
00050 create_message_writer(
00051 const IT_WSDL::WSDLPort& wsdl_port
00052 ) = 0;
00053
00054 virtual BindingHeaderProcessor*
00055 get_binding_header_processor();
00056
00057 MessageReaderWriterFactory();
00058
00059 virtual
00060 ~MessageReaderWriterFactory();
00061 };
00062 }
00063
00064 #endif