00001 #ifndef _IT_REFLECT_VALUE_REFLECTION_H_
00002 #define _IT_REFLECT_VALUE_REFLECTION_H_
00003
00004
00005
00006 #include <it_bus/types.h>
00007 #include <it_bus/reflect/built_in_type.h>
00008
00009 namespace IT_Reflect
00010 {
00014 template <class T>
00015 class Value : public IT_Reflect::BuiltInType
00016 {
00017 public:
00018 Value() throw(());
00019
00020 virtual ~Value() throw(());
00021
00027 virtual const T&
00028 get_value() const throw((ReflectException)) = 0;
00029
00035 virtual T&
00036 get_value() throw((ReflectException)) = 0;
00037
00043 virtual void
00044 set_value(
00045 const T& value
00046 ) throw((ReflectException)) = 0;
00047 };
00048
00049
00050 template <class T>
00051 Value<T>::Value() throw(())
00052 {
00053
00054 }
00055
00056 template <class T>
00057 Value<T>::~Value() throw(())
00058 {
00059
00060 }
00061 }
00062
00063 #endif