00001 #ifndef _IT_BUS_MESSAGE_READER_H_
00002 #define _IT_BUS_MESSAGE_READER_H_
00003
00004
00005
00006
00007 #include <it_bus/types.h>
00008 #include <it_bus/complex_type_reader.h>
00009 #include <it_bus/deserialization_exception.h>
00010
00011 namespace IT_Bus
00012 {
00013 class FaultException;
00014 class BinaryBuffer;
00015 class UserFaultException;
00016 class ContextContainer;
00017
00018 class MessageReader : public ComplexTypeReader
00019 {
00020 public:
00021 MessageReader() {}
00022
00023 virtual bool
00024 has_fault() = 0;
00025
00026 virtual void
00027 read_fault(
00028 FaultException& fault
00029 ) IT_THROW_DECL((DeserializationException)) = 0;
00030
00031 virtual void
00032 read_fault(
00033 UserFaultException& fault
00034 ) IT_THROW_DECL((DeserializationException)) = 0;
00035
00036 virtual const QName &
00037 get_message_name() = 0;
00038
00039 virtual void
00040 parse(
00041 const BinaryBuffer& buffer
00042 ) = 0;
00043
00044 virtual void
00045 set_data(
00046 const BinaryBuffer& buffer
00047 ) = 0;
00048
00049 virtual void
00050 set_data (
00051 MessageType message_type,
00052 const String & operation_name,
00053 const BinaryBuffer& buffer
00054 ) = 0;
00055
00056 virtual const BinaryBuffer&
00057 get_data() = 0;
00058
00059 virtual void
00060 destroy_data() = 0;
00061
00062 virtual const String
00063 get_operation_name() = 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