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