source: src/Observer/Notification.cpp@ f3d16a

Last change on this file since f3d16a was f3d16a, checked in by Frederik Heber <heber@…>, 11 years ago

FIX: Fixes to Graveyard and Zombies.

  • Property mode set to 100644
File size: 1.5 KB
Line 
1/*
2 * Project: MoleCuilder
3 * Description: creates and alters molecular systems
4 * Copyright (C) 2010 University of Bonn. All rights reserved.
5 * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
6 */
7
8/*
9 * Notification.cpp
10 *
11 * Created on: Dec 1, 2011
12 * Author: heber
13 */
14
15// include config.h
16#ifdef HAVE_CONFIG_H
17#include <config.h>
18#endif
19
20#include "CodePatterns/MemDebug.hpp"
21
22#include "CodePatterns/Observer/Notification.hpp"
23#include "CodePatterns/Observer/Observer.hpp"
24#include "CodePatterns/Observer/ObserverLog.hpp"
25
26Notification::Notification(size_t _channelno) :
27 channelno(_channelno)
28{}
29
30Notification::~Notification(){}
31
32void Notification::addObserver(Observer *target)
33{
34 targets.insert(target);
35}
36
37void Notification::removeObserver(Observer *target)
38{
39 targets.erase(target);
40}
41
42void Notification::notifyAll(Observable * const publisher)
43{
44 for(std::set<Observer*>::iterator it=targets.begin();
45 it!=targets.end();++it){
46#ifdef LOG_OBSERVER
47 observerLog().addMessage() << "-> Sending update from " << observerLog().getName(publisher)
48 << " for channel " << channelno
49 << " to " << observerLog().getName(*it);
50#endif
51 (*it)->recieveNotification(publisher,this);
52 }
53}
54
55void Notification::subjectKilled(Observable * const publisher)
56{
57 for(std::set<Observer*>::iterator it=targets.begin();
58 it!=targets.end();++it){
59 (*it)->subjectKilled(publisher);
60 }
61}
Note: See TracBrowser for help on using the repository browser.