it_bus/message_writer.h

00001 #ifndef _IT_BUS_MESSAGE_WRITER_H_
00002 #define _IT_BUS_MESSAGE_WRITER_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
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  

Generated on Thu Sep 7 11:38:55 2006 for Artix by  doxygen 1.4.7