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