it_bus/simpletype_union.h

00001 #ifndef _IT_BUS_SIMPLETYPE_UNION_H_
00002 #define _IT_BUS_SIMPLETYPE_UNION_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 
00007 #include <it_bus/any_type.h>
00008 
00009 namespace IT_Bus
00010 {
00011     class QName;
00012     class AnySimpleTypeReader;
00013     class AnySimpleTypeWriter;
00014 
00019     class IT_AFC_API SimpleTypeUnion : public virtual AnyType
00020     {
00021       public:
00030         virtual void
00031         read(
00032             const QName& name,
00033             ComplexTypeReader& reader
00034         ) IT_THROW_DECL((DeserializationException));
00035 
00044         virtual void
00045         write(
00046             const QName& name,
00047             ComplexTypeWriter& writer
00048         ) const IT_THROW_DECL((SerializationException));
00049 
00055         virtual AnyType::Kind
00056         get_kind() const;
00057 
00066         virtual void
00067         read_value(
00068             AnySimpleTypeReader& reader
00069         ) IT_THROW_DECL((DeserializationException)) = 0;
00070 
00081         virtual void
00082         read_value(
00083             UInt discriminator,
00084             AnySimpleTypeReader& reader
00085         ) IT_THROW_DECL((DeserializationException)) = 0;
00086 
00095         virtual void
00096         write_value(
00097             AnySimpleTypeWriter& writer
00098         ) const IT_THROW_DECL((SerializationException)) = 0;
00099 
00108         virtual UInt
00109         get_discriminator_as_uint() const IT_THROW_DECL((Exception)) = 0;
00110 
00119         virtual QName
00120         get_selected_member_type() const IT_THROW_DECL((Exception)) = 0;
00121 
00122       protected:
00126         SimpleTypeUnion();
00127 
00128       private:
00129         // private and unimplemented to prevent copying
00130         SimpleTypeUnion(const SimpleTypeUnion&);
00131         void operator=(const SimpleTypeUnion&);
00132     };
00133 }
00134 
00135 #endif  

Generated on Thu Sep 7 11:39:04 2006 for Artix by  doxygen 1.4.7