00001 #ifndef _IT_REFLECT_NILLABLE_H_
00002 #define _IT_REFLECT_NILLABLE_H_
00003
00004
00005
00006 #include <it_bus/reflect/reflection.h>
00007
00008 namespace IT_Reflect
00009 {
00013 class IT_AFC_API Nillable : public virtual IT_Reflect::Reflection
00014 {
00015 public:
00019 Nillable() IT_THROW_DECL(());
00020
00024 virtual ~Nillable() IT_THROW_DECL(());
00025
00031 virtual IT_Bus::Boolean
00032 get_is_nil() const IT_THROW_DECL((ReflectException)) = 0;
00033
00039 virtual void
00040 set_is_nil() IT_THROW_DECL((ReflectException)) = 0;
00041
00047 virtual const Reflection*
00048 get_value() const IT_THROW_DECL((ReflectException)) = 0;
00049
00056 virtual Reflection*
00057 use_value() IT_THROW_DECL((ReflectException)) = 0;
00058
00059 private:
00060
00061 Nillable(const Nillable&);
00062 void operator=(const Nillable&);
00063 };
00064 }
00065
00066
00067 #endif