00001 #ifndef ERIS_PROPERTY_H
00002 #define ERIS_PROPERTY_H
00003
00004 #include <sigc++/object.h>
00005 #include <Atlas/Message/Object.h>
00006
00007 namespace Eris
00008 {
00009
00010 typedef SigC::Signal1<void, Atlas::Message::Object&> Getter;
00011 typedef SigC::Signal1<void, const Atlas::Message::Object&> Setter;
00012
00013 class Property : virtual public SigC::Object
00014 {
00015 public:
00016 Getter Get;
00017 Setter Set;
00018
00019 const Atlas::Message::Object& getValue()
00020 {
00021 Get.emit(_value);
00022 return _value;
00023 }
00024
00025 void setValue(const Atlas::Message::Object& v)
00026 {
00027 _value = v;
00028 Set.emit(v);
00029 }
00030
00031 protected:
00032 Atlas::Message::Object _value;
00033 };
00034
00035 }
00036
00037 #endif