00001 #ifndef _IT_REFLECT_ELEMENT_LIST_H_
00002 #define _IT_REFLECT_ELEMENT_LIST_H_
00003
00004
00005
00006 #include <it_bus/reflect/reflection.h>
00007
00008 namespace IT_Reflect
00009 {
00013 class IT_AFC_API ElementList : public virtual IT_Reflect::Reflection
00014 {
00015 public:
00016 static const size_t UNBOUNDED;
00017
00021 ElementList() IT_THROW_DECL(());
00022
00026 virtual ~ElementList() IT_THROW_DECL(());
00027
00033 virtual size_t
00034 get_list_max_occurs() const IT_THROW_DECL((ReflectException)) = 0;
00035
00041 virtual size_t
00042 get_list_min_occurs() const IT_THROW_DECL((ReflectException)) = 0;
00043
00049 virtual size_t
00050 get_list_size() const IT_THROW_DECL((ReflectException)) = 0;
00051
00058 virtual void
00059 set_list_size(
00060 size_t size
00061 ) IT_THROW_DECL((ReflectException)) = 0;
00062
00070 virtual const Reflection*
00071 get_element(
00072 size_t index
00073 ) const IT_THROW_DECL((ReflectException)) = 0;
00074
00082 virtual Reflection*
00083 use_element(
00084 size_t index
00085 ) IT_THROW_DECL((ReflectException)) = 0;
00086
00087 private:
00088
00089 ElementList(const ElementList&);
00090 void operator=(const ElementList&);
00091 };
00092 }
00093
00094
00095 #endif