00001 #ifndef _IT_REFLECT_MODEL_GROUP_IMPL_T_H_
00002 #define _IT_REFLECT_MODEL_GROUP_IMPL_T_H_
00003
00004
00005
00006
00007
00008
00009
00010 #include <it_bus/reflect/model_group.h>
00011 #include <it_bus/reflect/bounds_exception.h>
00012 #include <it_dsa/vector.h>
00013
00014 namespace IT_Reflect
00015 {
00020 class IT_AFC_API ModelGroupImpl : public virtual ModelGroup
00021 {
00022 public:
00026 ModelGroupImpl(
00027 IT_Vector<IT_Bus::QName>& element_names
00028 ) IT_THROW_DECL(());
00029
00033 virtual ~ModelGroupImpl() IT_THROW_DECL(());
00034
00035 virtual size_t
00036 get_element_count() const IT_THROW_DECL(());
00037
00038 virtual const IT_Bus::QName&
00039 get_element_name(
00040 size_t i
00041 ) const IT_THROW_DECL(());
00042
00043 virtual Reflection*
00044 use_element(
00045 size_t i
00046 ) IT_THROW_DECL((ReflectException));
00047
00048 virtual Reflection*
00049 use_element(
00050 const IT_Bus::QName& element_name
00051 ) IT_THROW_DECL((ReflectException));
00052
00053 protected:
00059 size_t
00060 find_element(
00061 const IT_Bus::QName& name
00062 ) const IT_THROW_DECL((ReflectException));
00063
00064 private:
00065 IT_Vector<IT_Bus::QName>& m_element_names;
00066 };
00067 }
00068
00069 #endif