Simpatico  v1.10
Signal.cpp
1 /*
2 * Util Package - C++ Utilities for Scientific Computation
3 *
4 * Copyright 2010 - 2017, The Regents of the University of Minnesota
5 * Distributed under the terms of the GNU General Public License.
6 */
7 
8 #include "Signal.h"
9 
10 namespace Util
11 {
12 
13  /*
14  * Destructor.
15  */
17  { clear(); }
18 
19  /*
20  * Notify observers (call associated methods).
21  */
23  {
24  std::list< IFunctor<>* >::iterator pos;
25  pos = functorPtrs_.begin();
26  while (pos != functorPtrs_.end())
27  {
28  (**pos)();
29  ++pos;
30  }
31  }
32 
33  /*
34  * Notify observers (call associated methods).
35  */
37  {
38  std::list< IFunctor<>* >::iterator pos;
39  pos = functorPtrs_.begin();
40  while (pos != functorPtrs_.end())
41  {
42  delete *pos;
43  ++pos;
44  }
45  functorPtrs_.clear();
46  }
47 
48  /*
49  * Get number of registered observers.
50  */
51  int Signal<>::nObserver() const
52  { return functorPtrs_.size(); }
53 
54 }
int nObserver() const
Get number of registered observers.
Definition: Signal.cpp:51
~Signal()
Destructor.
Definition: Signal.cpp:16
void notify(const T &t)
Notify all observers.
Definition: Signal.cpp:22
Utility classes for scientific computation.
Definition: accumulators.mod:1
void clear()
Clear all observerse from list.
Definition: Signal.cpp:36