00001 #ifndef _IT_REFLECT_ELEMENT_LIST_IMPL_BASE_H_
00002 #define _IT_REFLECT_ELEMENT_LIST_IMPL_BASE_H_
00003
00004
00005
00006
00007 #include <it_bus/reflect/element_list.h>
00008 #include <it_bus/min_max_list.h>
00009
00010 namespace IT_Reflect
00011 {
00016 class IT_AFC_API ElementListImplBase : public virtual ElementList
00017 {
00018 public:
00022 ElementListImplBase() throw(());
00023
00027 virtual ~ElementListImplBase() throw(());
00028
00029 virtual size_t
00030 get_list_max_occurs() const throw(());
00031
00032 virtual size_t
00033 get_list_min_occurs() const throw(());
00034
00035 virtual size_t
00036 get_list_size() const throw(());
00037
00038 virtual void
00039 set_list_size(
00040 size_t size
00041 ) throw((ReflectException));
00042
00043 virtual const Reflection*
00044 get_element(
00045 size_t index
00046 ) const throw((ReflectException));
00047
00048 virtual Reflection*
00049 use_element(
00050 size_t index
00051 ) throw((ReflectException));
00052
00053 protected:
00058 virtual IT_Bus::MinMaxList&
00059 get_list() const throw(()) = 0;
00060
00066 virtual Reflection*
00067 get_reflection(
00068 size_t index
00069 ) const throw((ReflectException)) = 0;
00070 };
00071 }
00072
00073
00074 #endif