00001 #ifndef _IT_REFLECT_MODEL_GROUP_H_
00002 #define _IT_REFLECT_MODEL_GROUP_H_
00003
00004
00005
00006
00007 #include <it_bus/reflect/complex_type.h>
00008
00009 namespace IT_Reflect
00010 {
00015 class IT_AFC_API ModelGroup : public virtual IT_Reflect::ComplexType
00016 {
00017 public:
00021 ModelGroup() IT_THROW_DECL(());
00022
00026 virtual ~ModelGroup() IT_THROW_DECL(());
00027
00033 virtual size_t
00034 get_element_count() const IT_THROW_DECL((ReflectException)) = 0;
00035
00041 virtual const IT_Bus::QName&
00042 get_element_name(
00043 size_t i
00044 ) const IT_THROW_DECL((ReflectException)) = 0;
00045
00055 virtual const Reflection*
00056 get_element(
00057 size_t i
00058 ) const IT_THROW_DECL((ReflectException)) = 0;
00059
00069 virtual const Reflection*
00070 get_element(
00071 const IT_Bus::QName& name
00072 ) const IT_THROW_DECL((ReflectException)) = 0;
00073
00085 virtual Reflection*
00086 use_element(
00087 size_t i
00088 ) IT_THROW_DECL((ReflectException)) = 0;
00089
00100 virtual Reflection*
00101 use_element(
00102 const IT_Bus::QName& name
00103 ) IT_THROW_DECL((ReflectException)) = 0;
00104
00105 private:
00106
00107 ModelGroup(const ModelGroup&);
00108 void operator=(const ModelGroup&);
00109 };
00110
00111 typedef ModelGroup Sequence;
00112 typedef ModelGroup All;
00113 }
00114
00115
00116 #endif