00001 #ifndef _NAMEOBSERVER_H_ 00002 #define _NAMEOBSERVER_H_ 00003 00004 #include "uniquenames.h" 00005 #include "generic/callback.h" 00006 00007 class NameObserver 00008 { 00009 UniqueNames& m_names; 00010 std::string m_name; 00011 void construct (void); 00012 void destroy (void); 00013 bool empty (void) const; 00014 00015 NameObserver& operator= (const NameObserver& other); 00016 public: 00017 NameObserver (UniqueNames& names); 00018 ~NameObserver (void); 00019 00020 void nameChanged (const std::string& name); 00021 typedef MemberCaller1<NameObserver, const std::string&, &NameObserver::nameChanged> NameChangedCaller; 00022 00023 const std::string& getName () const; 00024 }; 00025 00026 #endif /* _NAMEOBSERVER_H_ */