it_bus/reflect/complex_type.h

00001 #ifndef _IT_REFLECT_COMPLEX_TYPE_H_
00002 #define _IT_REFLECT_COMPLEX_TYPE_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 
00007 #include <it_bus/reflect/reflection.h>
00008 #include <it_bus/qname.h>
00009 
00010 namespace IT_Bus
00011 {
00012     class QName;
00013 }
00014 
00015 namespace IT_Reflect
00016 {
00017     class Nillable;
00018     
00025     class IT_AFC_API ComplexType : public virtual IT_Reflect::Reflection
00026     {
00027       public:
00031         ComplexType() throw(());
00032         
00036         virtual ~ComplexType() throw (());
00037 
00043         virtual size_t
00044         get_attribute_count() const throw((ReflectException)) = 0;
00045         
00051         virtual const IT_Bus::QName&
00052         get_attribute_name(
00053             size_t i
00054         ) const throw((ReflectException)) = 0;
00055 
00065         virtual const Reflection*
00066         get_attribute_value(
00067             const IT_Bus::QName& name
00068         ) const throw((ReflectException)) = 0;
00069 
00082         virtual Reflection*
00083         use_attribute_value(
00084             const IT_Bus::QName& name
00085         ) throw((ReflectException)) = 0;
00086 
00093         virtual void
00094         remove_attribute(
00095             const IT_Bus::QName& name
00096         ) throw((ReflectException)) = 0;
00097 
00098       private:
00099         // private and unimplemented to prevent copying
00100         ComplexType(const ComplexType&);
00101         void operator=(const ComplexType&);
00102     };
00103 }
00104 
00105     
00106 #endif  

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