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() IT_THROW_DECL((ReflectException)); 00048 00052 virtual const IT_Reflect::Reflection* 00053 get_reflection() const IT_THROW_DECL((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 IT_THROW_DECL((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 IT_THROW_DECL((ReflectException)) 00096 { 00097 return new IT_TYPENAME IT_Bus::NillableValueBase<T>::IT_ReflectionType(this); 00098 } 00099 } 00100 00101 #endif