it_bus/all_complex_type.h

00001 #ifndef _IT_BUS_ALL_COMPLEX_TYPE_H_
00002 #define _IT_BUS_ALL_COMPLEX_TYPE_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 
00007 #include <it_bus/complex_type.h>
00008 #include <it_bus/any_type.h>
00009 #include <it_bus/deserialization_exception.h>
00010 
00011 namespace IT_Bus
00012 {
00013     class ComplexTypeReader;
00014     class ComplexTypeWriter;
00015 
00020     class IT_AFC_API AllComplexType :
00021         public virtual ComplexType,
00022         public virtual AnyType
00023     {
00024       public:
00025 
00029         virtual void
00030         read(
00031             const QName& name,
00032             ComplexTypeReader& reader
00033         ) IT_THROW_DECL((IT_Bus::DeserializationException));
00034 
00038         virtual void
00039         write(
00040             const QName& name,
00041             ComplexTypeWriter& writer
00042         ) const IT_THROW_DECL((IT_Bus::SerializationException));
00043 
00048         virtual AnyType::Kind
00049         get_kind() const;
00050 
00055         virtual void
00056         read_member(
00057             const QName & member,
00058             ComplexTypeReader & os
00059         ) IT_THROW_DECL((DeserializationException)) = 0;
00060 
00066         virtual UInt
00067         member_count() const = 0;
00068 
00073         virtual void
00074         read_contents(
00075             ComplexTypeReader & os
00076         ) IT_THROW_DECL((DeserializationException)) = 0;
00077 
00078 
00083         virtual void
00084         write_contents(
00085             ComplexTypeWriter & os
00086         ) const IT_THROW_DECL((SerializationException)) = 0;
00087 
00092         AllComplexType &
00093         operator=(
00094             const AllComplexType & rhs
00095         );
00096         
00097       protected:
00101         AllComplexType() {}
00102 
00103       private:
00104         // Not implemented
00105         AllComplexType(const AllComplexType &);
00106     };
00107 }
00108 
00109 #endif  

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