Changeset b324a3 for src/CodePatterns/Observer
- Timestamp:
- Sep 5, 2013, 2:14:06 PM (12 years ago)
- Children:
- 44f368
- Parents:
- 37d941
- git-author:
- Frederik Heber <heber@…> (09/05/13 14:09:44)
- git-committer:
- Frederik Heber <heber@…> (09/05/13 14:14:06)
- Location:
- src/CodePatterns/Observer
- Files:
-
- 2 added
- 2 edited
-
Graveyard.hpp (added)
-
Notification.hpp (modified) (1 diff)
-
Observable.hpp (modified) (4 diffs)
-
Zombie.hpp (added)
Legend:
- Unmodified
- Added
- Removed
-
src/CodePatterns/Observer/Notification.hpp
r37d941 rb324a3 65 65 void subjectKilled(Observable * const publisher); 66 66 67 /** Getter for the number of Observer for this notification (channel). 68 * 69 * \return number of added observers 70 */ 71 size_t getNumberOfObservers() const 72 { return targets.size(); } 73 67 74 private: 68 75 typedef std::set<Observer*> targets_t; -
src/CodePatterns/Observer/Observable.hpp
r37d941 rb324a3 17 17 #include <set> 18 18 #include <string> 19 #include <boost/function.hpp> 19 20 20 21 #include "CodePatterns/Range.hpp" 21 22 #include "CodePatterns/Observer/defs.hpp" 22 23 #include "CodePatterns/Observer/Observer.hpp" 24 25 class Graveyard; 23 26 24 27 /** … … 34 37 * we call Channels::subjectKilled() to let Observers that have only signed 35 38 * on to single channel still know when their observable has died. 39 * 40 * Note that one may allow an Observable to live some over-time by using 41 * the Graveyard. This allows any Observer to still access the instance 42 * in order to properly sign off. It is destroyed when no Observer is left. 36 43 */ 37 44 class Observable : public Observer { … … 93 100 Notification_ptr getChannel(size_t no) const; 94 101 102 size_t getNumberOfObservers() const; 103 95 104 protected: 96 105 virtual void update(Observable *publisher); … … 126 135 static std::set<Observable*> busyObservables; 127 136 137 private: 138 friend class Zombie; 139 friend class Graveyard; 140 141 typedef boost::function<void (const Observable*)> graveyard_informer_t; 142 143 //!> bound function to call when Observer are signing off 144 graveyard_informer_t &graveyard_informer; 145 146 //!> default informer that does nothing 147 static graveyard_informer_t noop_informer; 148 149 /** Sets the bound function for over-time life-time management. 150 * 151 * \param _graveyard Graveyard to inform of leaving Observers 152 */ 153 void setGraveyardInformer(graveyard_informer_t &_graveyard_informer) 154 { 155 graveyard_informer = _graveyard_informer; 156 } 157 128 158 //! @cond 129 159 // Structure for RAII-Style notification
Note:
See TracChangeset
for help on using the changeset viewer.
