it_bus/choice_complex_type.h

00001 #ifndef _IT_BUS_CHOICE_COMPLEX_TYPE_H_
00002 #define _IT_BUS_CHOICE_COMPLEX_TYPE_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 
00007 #include <it_bus/any_type.h>
00008 #include <it_bus/complex_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 ChoiceComplexType : public virtual ComplexType, public virtual AnyType
00021     {
00022       public:
00026         virtual void
00027         read(
00028             const QName& name,
00029             ComplexTypeReader& reader
00030         ) throw((IT_Bus::DeserializationException));
00031 
00035         virtual void
00036         write(
00037             const QName& name,
00038             ComplexTypeWriter& writer
00039         ) const throw((IT_Bus::SerializationException));
00040 
00045         virtual AnyType::Kind
00046         get_kind() const;
00047 
00052         virtual void
00053         read_member(
00054             const QName & member,
00055             ComplexTypeReader & os
00056         ) throw((DeserializationException)) = 0;
00057 
00062         virtual void
00063         read_contents(
00064             ComplexTypeReader & os
00065         ) throw((DeserializationException)) = 0;
00066 
00071         virtual void
00072         write_contents(
00073             ComplexTypeWriter & os
00074         ) const throw((SerializationException)) = 0;
00075 
00081         virtual IT_Bus::UInt
00082         get_discriminator_as_uint() const = 0;
00083 
00088         ChoiceComplexType &
00089         operator=(
00090             const ChoiceComplexType & rhs
00091         );
00092 
00093       protected:
00094         ChoiceComplexType() {}
00095 
00096       private:
00097         // Not Implemented
00098         ChoiceComplexType(const ChoiceComplexType & rhs);
00099     };
00100 }
00101 
00102 #endif  

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