a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
BOL::BasicObserved Class Reference

#include <BasicObserved.hpp>

Detailed Description

Definition at line 23 of file BasicObserved.hpp.

Public Member Functions

 BasicObserved ()
 
void registerObserver (BasicObserver *const joiningObserver)
 
void removeAllObservers ()
 
void removeObserver (BasicObserver *const leavingObserver)
 
void updateObservers ()
 
virtual ~BasicObserved ()
 

Protected Attributes

std::list< std::pair< BasicObserver *, bool > >::iterator observerIterator
 
std::list< std::pair< BasicObserver *, bool > > observerList
 

Constructor & Destructor Documentation

◆ BasicObserved()

BOL::BasicObserved::BasicObserved ( )

Definition at line 17 of file BasicObserved.cpp.

17 :
20 {
21 // just an initialization list.
22 }
std::list< std::pair< BasicObserver *, bool > > observerList
std::list< std::pair< BasicObserver *, bool > >::iterator observerIterator

◆ ~BasicObserved()

BOL::BasicObserved::~BasicObserved ( )
virtual

Definition at line 24 of file BasicObserved.cpp.

25 {
27 }

Member Function Documentation

◆ registerObserver()

void BOL::BasicObserved::registerObserver ( BasicObserver *const  joiningObserver)
inline

Definition at line 82 of file BasicObserved.hpp.

83 {
84 observerList.push_back( std::pair< BasicObserver*, bool >( joiningObserver,
85 true ) );
86 joiningObserver->acceptFlagFromObserved( &(observerList.back().second) );
87 /* new observers are given a pointer to their associated bools, which
88 * indicate that their observers should be fine for
89 * respondToObservedSignal() calls if the bool is true, but if the bool is
90 * false, this BasicObserved instance knows to remove the observer with
91 * its next pass through the list.
92 */
93 }

◆ removeAllObservers()

void BOL::BasicObserved::removeAllObservers ( )
inline

Definition at line 123 of file BasicObserved.hpp.

126 {
128 while( observerList.end() != observerIterator )
129 {
130 if( observerIterator->second )
131 {
132 observerIterator->first->discardFlagFromObserved(
133 &(observerIterator->second) );
134 }
136 }
137 observerList.clear();
138 }

◆ removeObserver()

void BOL::BasicObserved::removeObserver ( BasicObserver *const  leavingObserver)
inline

Definition at line 96 of file BasicObserved.hpp.

101 {
103 while( observerList.end() != observerIterator )
104 {
105 if( !(observerIterator->second) )
106 {
108 }
109 else if( leavingObserver == observerIterator->first )
110 {
111 leavingObserver->discardFlagFromObserved(
112 &(observerIterator->second) );
114 }
115 else
116 {
118 }
119 }
120 }

◆ updateObservers()

void BOL::BasicObserved::updateObservers ( )
inline

Definition at line 60 of file BasicObserved.hpp.

65 {
67 while( observerList.end() != observerIterator )
68 {
69 if( observerIterator->second )
70 {
71 observerIterator->first->respondToObservedSignal();
73 }
74 else
75 {
77 }
78 }
79 }

Member Data Documentation

◆ observerIterator

std::list<std::pair<BasicObserver*,bool>>::iterator BOL::BasicObserved::observerIterator
protected

Definition at line 52 of file BasicObserved.hpp.

◆ observerList

std::list< std::pair< BasicObserver*, bool > > BOL::BasicObserved::observerList
protected

Definition at line 51 of file BasicObserved.hpp.


The documentation for this class was generated from the following files: