00001 #ifndef _IT_BUS_PDK_TRANSPORT_WRITABLE_MESSAGE_H_
00002 #define _IT_BUS_PDK_TRANSPORT_WRITABLE_MESSAGE_H_
00003
00004
00005
00006
00007 #include <it_dsa/vector.h>
00008 #include <it_bus/writable_message.h>
00009
00010 namespace IT_WSDL
00011 {
00012 class WSDLOperation;
00013 class WSDLDefinitions;
00014 }
00015
00016 namespace IT_Bus
00017 {
00018 class MessageWriter;
00019
00020 class IT_BUS_API TransportWritableMessage : public WritableMessage
00021 {
00022 public:
00023
00024 TransportWritableMessage(
00025 MessageType message_type,
00026 MessageWriter * writer,
00027 const IT_WSDL::WSDLOperation& wsdl_operation
00028 );
00029
00030 virtual
00031 ~TransportWritableMessage();
00032
00033 void
00034 write();
00035
00036 virtual void
00037 set_writer(
00038 MessageWriter * writer
00039 );
00040
00041 virtual void
00042 set_wrapper_element_qname(
00043 const QName& name
00044 );
00045
00046 virtual const QName &
00047 get_wrapper_element_qname();
00048
00049 virtual MessageWriter *
00050 get_writer();
00051
00052 private:
00053 const IT_WSDL::WSDLDefinitions& m_wsdl_definition;
00054 MessageWriter * m_message_writer;
00055 MessageType m_message_type;
00056
00057
00058
00059 TransportWritableMessage(const TransportWritableMessage&);
00060 void operator=(const TransportWritableMessage&);
00061 };
00062 }
00063
00064 #endif