it_bus/readable_message.h

00001 #ifndef _IT_BUS_READABLE_MESSAGE_H_
00002 #define _IT_BUS_READABLE_MESSAGE_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 
00007 #include <it_bus/types.h>
00008 #include <it_bus/no_data_exception.h>
00009 #include <it_bus/deserialization_exception.h>
00010 #include <it_bus/part_list.h>
00011 
00012 namespace IT_Bus
00013 {
00014     class AnyType;
00015     class DateTime;
00016     class BinaryOutParam;
00017     class BinaryBuffer;
00018     class MessageReader;
00019     class UserFaultException;
00020     class QName;
00021     class PartList;
00022 
00034     class IT_BUS_API ReadableMessage
00035     {
00036       public:
00037         ReadableMessage(
00038             size_t part_count = 0
00039         );
00040 
00041         virtual ~ReadableMessage();
00042 
00048         virtual PartList&
00049         get_parts();
00050 
00056         virtual const PartList&
00057         get_parts() const;
00058 
00059         virtual void
00060         add_part(
00061             const QName& name,
00062             AnyType& part
00063         );
00064 
00065         virtual void
00066         add_part(
00067             const QName& name,
00068             Boolean & part
00069         );
00070 
00071         virtual void
00072         add_part(
00073             const QName& name,
00074             Float & part
00075         );
00076 
00077         virtual void
00078         add_part(
00079             const QName& name,
00080             Double & part
00081         );
00082 
00083         virtual void
00084         add_part(
00085             const QName& name,
00086             Int & part
00087         );
00088 
00089         virtual void
00090         add_part(
00091             const QName& name,
00092             Long & part
00093         );
00094 
00095         virtual void
00096         add_part(
00097             const QName& name,
00098             Short & part
00099         );
00100 
00101         virtual void
00102         add_part(
00103             const QName& name,
00104             UInt & part
00105         );
00106 
00107         virtual void
00108         add_part(
00109             const QName& name,
00110             ULong & part
00111         );
00112 
00113         virtual void
00114         add_part(
00115             const QName& name,
00116             UShort & part
00117         );
00118 
00119         virtual void
00120         add_part(
00121             const QName& name,
00122             Byte & part
00123         );
00124 
00125         virtual void
00126         add_part(
00127             const QName& name,
00128             UByte & part
00129         );
00130 
00131         virtual void
00132         add_part(
00133             const QName& name,
00134             DateTime & part
00135         );
00136 
00137         virtual void
00138         add_part(
00139             const QName& name,
00140             String & part
00141         );
00142 
00143         virtual void
00144         add_part(
00145             const QName& name,
00146             Decimal & part
00147         );
00148 
00149         virtual void
00150         add_part(
00151             const QName& name,
00152             BinaryOutParam & part
00153         );
00154 
00155         virtual void
00156         add_part(
00157             const QName& name,
00158             QName & part
00159         );
00160 
00161         virtual bool
00162         has_fault() = 0;
00163 
00164         virtual const QName &
00165         get_message_name() = 0;
00166 
00167         virtual void 
00168         set_wrapper_element_qname(
00169             const QName& name
00170         ) = 0;
00171 
00172         virtual const QName &
00173         get_wrapper_element_qname() = 0;
00174 
00175         virtual void
00176         read_fault(
00177             UserFaultException& fault
00178         ) throw((DeserializationException)) = 0;
00179 
00180         virtual const BinaryBuffer&
00181         get_data() throw((NoDataException)) = 0; 
00182 
00183         virtual MessageReader*
00184         get_reader() = 0; 
00185 
00186       protected:
00187         PartList m_parts;
00188 
00189       private:
00190         // private and unimplemented to prevent copying
00191         ReadableMessage(const ReadableMessage&);
00192         void operator=(const ReadableMessage&);
00193     };
00194 }
00195 
00196 #endif  

Generated on Tue Mar 20 15:27:42 2007 for Artix by  doxygen 1.5.1-p1