00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __OBJECT_H__
00023 #define __OBJECT_H__
00024
00025 #include <miniXml/ustring.h>
00026 #include <boost/utility.hpp>
00027 #include <boost/signal.hpp>
00028 #include <boost/thread/recursive_mutex.hpp>
00029
00030 namespace Spm
00031 {
00032 namespace Util
00033 {
00039 class Object : boost::noncopyable
00040 {
00041 protected :
00042 mutable miniXml::ustring name_;
00043 miniXml::ustring owner_;
00044 boost::signal<void (Object *)> modified_;
00045 mutable boost::recursive_mutex mutex_;
00046
00047 public :
00048 virtual ~Object ()
00049 {
00050 }
00051
00055 virtual const miniXml::ustring & getName ()
00056 {
00057 return name_;
00058 }
00059
00063 virtual const miniXml::ustring & getName () const
00064 {
00065 return name_;
00066 }
00067
00071 const miniXml::ustring & getOwner ()
00072 {
00073 return owner_;
00074 }
00075
00079 const miniXml::ustring & getOwner () const
00080 {
00081 return owner_;
00082 }
00083
00087 boost::signal<void (Object *)> & modified ()
00088 {
00089 return modified_;
00090 }
00091 };
00092 }
00093 }
00094 #endif