it_bus/binary_any_simple_type.h

00001 #ifndef _IT_BUS_SYS_BINARY_ANY_SIMPLE_TYPE_CXX_
00002 #define _IT_BUS_SYS_BINARY_ANY_SIMPLE_TYPE_CXX_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 
00007 #include <assert.h>
00008 #include <it_bus/any_type.h>
00009 #include <it_bus/any_simple_type.h>
00010 #include <it_bus/reflect/value_ref.h>
00011 
00012 #ifndef IT_MINIMISE_INCLUDES
00013 #include <it_bus/any_simple_type_reader.h>
00014 #include <it_bus/any_simple_type_writer.h>
00015 #include <it_bus/binary_type.h>
00016 #include <it_bus/complex_type_reader.h>
00017 #include <it_bus/complex_type_writer.h>
00018 #include <it_bus/schema_type_traits.h>
00019 #endif
00020 
00021 namespace IT_Bus
00022 {
00023     class BinaryOutParam;
00024     class BinaryInParam;
00031     class IT_AFC_API BinaryAnySimpleType : public AnySimpleType
00032     {
00033       public:
00034         virtual AnyType::Kind
00035         get_kind() const;
00036 
00037         virtual IT_Reflect::Reflection*
00038         get_reflection() throw((IT_Reflect::ReflectException));
00039 
00040         virtual const IT_Reflect::Reflection*
00041         get_reflection() const throw((IT_Reflect::ReflectException));
00042 
00043         virtual const IT_Bus::BinaryBuffer&
00044         get_buffer() const = 0;
00045     };
00046 
00053     class IT_AFC_API BinaryOutParamAnySimpleType : public BinaryAnySimpleType
00054     {
00055       public:
00056         BinaryOutParamAnySimpleType(
00057             IT_Bus::BinaryOutParam& value
00058         ) throw(()) :
00059             m_value(value)
00060         {
00061             // complete
00062         }
00063 
00064         virtual const QName&
00065         get_type() const;
00066 
00067         virtual void 
00068         write(
00069             const QName&,
00070             ComplexTypeWriter&
00071         ) const throw((SerializationException));
00072 
00073         virtual void
00074         write_value(
00075             AnySimpleTypeWriter&
00076         ) const throw((SerializationException));
00077 
00078         virtual void
00079         read(
00080             const QName& name,
00081             ComplexTypeReader& reader
00082         ) throw((DeserializationException));
00083 
00084         virtual void
00085         read_value(
00086             AnySimpleTypeReader& reader
00087         ) throw((DeserializationException));
00088 
00089         virtual AnyType&
00090         copy(
00091             const AnyType & rhs
00092         );
00093 
00094         virtual const IT_Bus::BinaryBuffer&
00095         get_buffer() const;
00096 
00097         virtual IT_Bus::BinaryBuffer&
00098         get_buffer();
00099 
00100       private:
00101         IT_Bus::BinaryOutParam& m_value;
00102     };
00103 
00110     class IT_AFC_API BinaryInParamAnySimpleType : public BinaryAnySimpleType
00111     {
00112       public:
00113         BinaryInParamAnySimpleType(
00114             const IT_Bus::BinaryInParam& value
00115         ) throw(()) :
00116             m_value(value)
00117         {
00118             // complete
00119         }
00120 
00121         virtual const QName&
00122         get_type() const;
00123 
00124         virtual void 
00125         write(
00126             const QName& name,
00127             ComplexTypeWriter& writer
00128         ) const throw((SerializationException));
00129 
00130         virtual void
00131         write_value(
00132             AnySimpleTypeWriter& writer
00133         ) const throw((SerializationException));
00134 
00135         virtual void
00136         read(
00137             const QName&,
00138             ComplexTypeReader&
00139         ) throw((DeserializationException));
00140 
00141         virtual void
00142         read_value(
00143             AnySimpleTypeReader&
00144         ) throw((DeserializationException));
00145 
00146         virtual AnyType&
00147         copy(
00148             const AnyType &
00149         );
00150 
00151         virtual const IT_Bus::BinaryBuffer&
00152         get_buffer() const;
00153 
00154       private:
00155         const IT_Bus::BinaryInParam& m_value;
00156     };
00157 }
00158 
00159 #endif  

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