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