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 #include <it_bus/operation.h>
00010
00011 namespace IT_WSDL
00012 {
00013 class WSDLOperation;
00014 class WSDLDefinitions;
00015 }
00016
00017 namespace IT_Bus
00018 {
00019 class MessageWriter;
00020
00021 class IT_BUS_API TransportWritableMessage : public WritableMessage
00022 {
00023 public:
00024
00025 TransportWritableMessage(
00026 MessageType message_type,
00027 MessageWriter * writer,
00028 const IT_WSDL::WSDLOperation& wsdl_operation
00029 );
00030
00031 virtual
00032 ~TransportWritableMessage();
00033
00034 void
00035 write();
00036
00037 void
00038 write_element_type(
00039 IT_Bus::ServerOperation& operation_handler
00040 );
00041
00042 virtual void
00043 set_writer(
00044 MessageWriter * writer
00045 );
00046
00047 virtual void
00048 set_wrapper_element_qname(
00049 const QName& name
00050 );
00051
00052 virtual const QName &
00053 get_wrapper_element_qname();
00054
00055 virtual MessageWriter *
00056 get_writer();
00057
00058 private:
00059 const IT_WSDL::WSDLDefinitions& m_wsdl_definition;
00060 MessageWriter * m_message_writer;
00061 MessageType m_message_type;
00062
00063
00064
00065 TransportWritableMessage(const TransportWritableMessage&);
00066 void operator=(const TransportWritableMessage&);
00067 };
00068 }
00069
00070 #endif