00001 #ifndef _IT_BUS_SIMPLE_CONTENT_COMPLEX_TYPE_H_
00002 #define _IT_BUS_SIMPLE_CONTENT_COMPLEX_TYPE_H_
00003
00004
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 class AnySimpleTypeReader;
00016 class AnySimpleTypeWriter;
00017
00022 class IT_AFC_API SimpleContentComplexType :
00023 public virtual ComplexType,
00024 public virtual AnyType
00025 {
00026 public:
00027
00031 SimpleContentComplexType() {};
00032
00036 virtual void
00037 read(
00038 const QName& name,
00039 ComplexTypeReader& reader
00040 ) IT_THROW_DECL((IT_Bus::DeserializationException));
00041
00045 virtual void
00046 write(
00047 const QName& name,
00048 ComplexTypeWriter& writer
00049 ) const IT_THROW_DECL((IT_Bus::SerializationException));
00050
00055 virtual void
00056 write_value(
00057 AnySimpleTypeWriter & writer
00058 ) const IT_THROW_DECL((SerializationException)) = 0;
00059
00064 virtual void
00065 read_value(
00066 AnySimpleTypeReader & reader
00067 ) IT_THROW_DECL((DeserializationException)) = 0;
00068
00073 SimpleContentComplexType &
00074 operator=(
00075 const SimpleContentComplexType & rhs
00076 );
00077
00082 virtual AnyType::Kind
00083 get_kind() const;
00084
00085 private:
00086 SimpleContentComplexType(
00087 const SimpleContentComplexType & rhs
00088 );
00089 };
00090 }
00091
00092 #endif