it_bus/reflect/model_group.h

00001 #ifndef _IT_REFLECT_MODEL_GROUP_H_
00002 #define _IT_REFLECT_MODEL_GROUP_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
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() throw(());
00022 
00026         virtual ~ModelGroup() throw(());
00027 
00033         virtual size_t
00034         get_element_count() const throw((ReflectException)) = 0;
00035 
00041         virtual const IT_Bus::QName&
00042         get_element_name(
00043             size_t i
00044         ) const throw((ReflectException)) = 0;
00045         
00055         virtual const Reflection*
00056         get_element(
00057             size_t i
00058         ) const throw((ReflectException)) = 0;
00059         
00069         virtual const Reflection*
00070         get_element(
00071             const IT_Bus::QName& name
00072         ) const throw((ReflectException)) = 0;
00073 
00085         virtual Reflection*
00086         use_element(
00087             size_t i
00088         ) throw((ReflectException)) = 0;
00089 
00100         virtual Reflection*
00101         use_element(
00102             const IT_Bus::QName& name
00103         ) throw((ReflectException)) = 0;
00104 
00105       private:
00106         // private and unimplemented to prevent copying
00107         ModelGroup(const ModelGroup&);
00108         void operator=(const ModelGroup&);
00109     };
00110 
00111     typedef ModelGroup Sequence;
00112     typedef ModelGroup All;
00113 }
00114 
00115 
00116 #endif  

Generated on Tue Mar 20 15:27:43 2007 for Artix by  doxygen 1.5.1-p1