a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
BasicObserver.hpp
Go to the documentation of this file.
1/*
2 * BasicObserver.hpp
3 *
4 * Created on: Mar 4, 2012
5 * Author: Ben O'Leary (benjamin.oleary@gmail.com)
6 *
7 * This file is part of BOLlib, released under the
8 * GNU General Public License. Please see the accompanying
9 * README.BOLlib.txt file for a full list of files, brief documentation
10 * on how to use these classes, and further details on the license.
11 */
12
13#ifndef BASICOBSERVER_HPP_
14#define BASICOBSERVER_HPP_
15
16#include <list>
17
18namespace BOL
19{
20 // this is an abstract base class that allows BasicObserved objects to
21 // call respondToObservedSignal() on its observers.
23 {
24 public:
26 virtual
28
29 virtual void
31 void
32 acceptFlagFromObserved( bool* const flagFromObserved );
33 void
34 discardFlagFromObserved( bool* const flagFromObserved );
35 void
37
38
39 protected:
40 std::list< bool* > stillObservingFlags;
41 };
42
43
44
45
46
47 inline void
48 BasicObserver::acceptFlagFromObserved( bool* const flagFromObserved )
49 {
50 stillObservingFlags.push_back( flagFromObserved );
51 }
52
53 inline void
54 BasicObserver::discardFlagFromObserved( bool* const flagFromObserved )
55 {
56 stillObservingFlags.remove( flagFromObserved );
57 }
58
59 inline void
61 {
62 for( std::list< bool* >::iterator
63 flagIterator( stillObservingFlags.begin() );
64 stillObservingFlags.end() != flagIterator;
65 ++flagIterator )
66 {
67 *(*flagIterator) = false;
68 }
69 stillObservingFlags.clear();
70 }
71
72}
73
74#endif /* BASICOBSERVER_HPP_ */
void discardFlagFromObserved(bool *const flagFromObserved)
virtual ~BasicObserver()
virtual void respondToObservedSignal()=0
void acceptFlagFromObserved(bool *const flagFromObserved)
std::list< bool * > stillObservingFlags