00001 #ifndef _IT_BUS_ELEMENT_LIST_H_
00002 #define _IT_BUS_ELEMENT_LIST_H_
00003
00004
00005
00006
00007 #include <it_bus/any_type.h>
00008 #include <it_bus/min_max_list.h>
00009
00010 namespace IT_Bus
00011 {
00012 class QName;
00013
00017 class IT_AFC_API ElementList : public virtual AnyType, public MinMaxList
00018 {
00019 public:
00020
00021 virtual void
00022 read(
00023 const QName& name,
00024 ComplexTypeReader& reader
00025 ) throw((IT_Bus::DeserializationException));
00026
00027 virtual void
00028 write(
00029 const QName& name,
00030 ComplexTypeWriter& writer
00031 ) const throw((IT_Bus::SerializationException));
00032
00038 virtual const QName&
00039 get_type() const;
00040
00046 virtual AnyType::Kind
00047 get_kind() const;
00048
00054 virtual void
00055 read_element(
00056 size_t pos,
00057 ComplexTypeReader & os
00058 ) throw((DeserializationException)) = 0;
00059
00065 virtual void
00066 write_element(
00067 size_t pos,
00068 ComplexTypeWriter & os
00069 ) const throw((SerializationException)) = 0;
00070
00074 virtual const QName &
00075 get_item_name() const = 0;
00076
00080 ElementList& operator=(
00081 const ElementList& rhs
00082 );
00083
00084 protected:
00088 ElementList() {}
00089 };
00090 }
00091
00092 #endif