it_bus/reflect/union.h

00001 #ifndef _IT_REFLECT_UNION_H_
00002 #define _IT_REFLECT_UNION_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 
00007 #include <it_bus/reflect/simple_type.h>
00008 
00009 namespace IT_Reflect
00010 {
00014     class IT_AFC_API Union : public virtual IT_Reflect::SimpleType
00015     {
00016       public:
00020         Union() throw(());
00021 
00025         virtual ~Union() throw(());
00026 
00034         virtual size_t
00035         get_member_count() const throw((ReflectException)) = 0;
00036 
00045         virtual const IT_Bus::QName&
00046         get_member_type(
00047             size_t index
00048         ) const throw((ReflectException)) = 0;
00049         
00057         virtual size_t
00058         get_selected_member_index(
00059         ) const throw((ReflectException)) = 0;
00060 
00069         virtual const Reflection*
00070         get_selected_member(
00071         ) const throw((ReflectException)) = 0;
00072         
00085         virtual Reflection*
00086         use_member(
00087             size_t index
00088         ) throw((ReflectException)) = 0;
00089 
00095         virtual void
00096         set_no_member() throw((ReflectException)) = 0;
00097 
00098       private:
00099         // private and unimplemented to prevent copying
00100         Union(const Union&);
00101         void operator=(const Union&);
00102     };
00103 }
00104 
00105 
00106 #endif  

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