00001 #ifndef _IT_BUS_MESSAGE_WRITER_H_
00002 #define _IT_BUS_MESSAGE_WRITER_H_
00003
00004
00005
00006
00007 #include <it_bus/api_defines.h>
00008 #include <it_bus/types.h>
00009 #include <it_bus/qname.h>
00010 #include <it_bus/complex_type_writer.h>
00011 #include <it_bus/user_fault_exception.h>
00012 #include <it_bus/serialization_exception.h>
00013 #include <it_bus/binary_buffer.h>
00014 #include <it_bus/fault_exception.h>
00015
00016 namespace IT_Bus {
00017 class ContextContainer;
00018
00019 class MessageWriter : public ComplexTypeWriter
00020 {
00021 public:
00022 MessageWriter() {}
00023
00024 virtual void
00025 write_fault(
00026 const UserFaultException& fault
00027 ) throw((
00028 SerializationException,
00029 UserFaultException,
00030 FaultException,
00031 DeserializationException,
00032 Exception
00033 )) = 0;
00034
00035 virtual void
00036 start_input_message(
00037 const String & operation_name
00038 ) throw((SerializationException)) = 0;
00039
00040 virtual void
00041 start_output_message(
00042 const String & operation_name
00043 ) throw((SerializationException)) = 0;
00044
00045 virtual void
00046 end_message(
00047 ) throw((SerializationException)) = 0;
00048
00049 virtual void write_fault(
00050 const FaultException & ex
00051 ) throw((
00052 SerializationException,
00053 UserFaultException,
00054 FaultException,
00055 DeserializationException,
00056 Exception
00057 )) = 0;
00058
00059 virtual const BinaryBuffer&
00060 get_data() = 0;
00061
00062 virtual void
00063 destroy_data() = 0;
00064
00065 virtual void
00066 set_wrapper_element_qname(
00067 const QName& name
00068 ) = 0;
00069
00070 virtual const QName &
00071 get_wrapper_element_qname() = 0;
00072
00073 virtual void
00074 initialize(
00075 ContextContainer* out_context_container,
00076 ContextContainer* in_context_container
00077 ) = 0;
00078 };
00079 }
00080
00081 #endif