it_bus/reflect/reflected_nillable_value.h

00001 #ifndef _IT_BUS_REFLECTED_NILLABLE_VALUE_H_
00002 #define _IT_BUS_REFLECTED_NILLABLE_VALUE_H_
00003 
00004 // @Copyright 2003 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 
00007 #include <it_bus/nillable_value.h>
00008 #include <it_bus/reflect/nillable_value_impl_t.h>
00009 
00010 namespace IT_Reflect
00011 {
00015     template <class T>
00016     class ReflectedNillableValue : public IT_Bus::NillableValue<T>
00017     {
00018       public:
00022         ReflectedNillableValue();
00023 
00027         IT_EXPLICIT ReflectedNillableValue(
00028             const T& other
00029         );
00030 
00034         IT_EXPLICIT ReflectedNillableValue(
00035             const T *other
00036         );
00037 
00041         virtual ~ReflectedNillableValue();
00042 
00046         virtual IT_Reflect::Reflection*
00047         get_reflection() throw((ReflectException));
00048 
00052         virtual const IT_Reflect::Reflection*
00053         get_reflection() const throw((ReflectException));
00054     };
00055 
00056     template <class T>
00057     ReflectedNillableValue<T>::ReflectedNillableValue() 
00058     {
00059         // Complete.
00060     }
00061 
00062     template <class T>
00063     ReflectedNillableValue<T>::ReflectedNillableValue(
00064         const T& data
00065     ) : IT_Bus::NillableValue<T>(data)
00066     {
00067         // Complete.
00068     }
00069     
00070     template <class T>
00071     ReflectedNillableValue<T>::ReflectedNillableValue(
00072         const T *data
00073     ) : IT_Bus::NillableValue<T>(data)
00074     {
00075         // Complete.
00076     }
00077 
00078     template <class T>
00079     ReflectedNillableValue<T>::~ReflectedNillableValue()
00080     {
00081         //Complete
00082     }
00083 
00084     template <class T>
00085     IT_Reflect::Reflection*
00086     ReflectedNillableValue<T>::get_reflection()
00087         throw((ReflectException))
00088     {
00089         return new IT_TYPENAME IT_Bus::NillableValueBase<T>::IT_ReflectionType(this);
00090     }
00091 
00092     template <class T>
00093     const IT_Reflect::Reflection*
00094     ReflectedNillableValue<T>::get_reflection() const 
00095         throw((ReflectException))
00096     {
00097         return new IT_TYPENAME IT_Bus::NillableValueBase<T>::IT_ReflectionType(this);
00098     }
00099 }
00100 
00101 #endif  

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