Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Observable Class Reference

#include <Observable.h>

Inheritance diagram for Observable:

Inheritance graph
[legend]
Collaboration diagram for Observable:

Collaboration graph
[legend]
List of all members.

Detailed Description

Part of an implementation of the Observable-Observer pattern based on the example in the GOF Patterns text book and the Java Observable class.

Todo:
We don't have a copy constructor.
Determine if that a problem?

Author:
Paul F. Kunz <Paul_Kunz@slac.stanford.edu>

Definition at line 40 of file Observable.h.

Public Types

typedef void(hippodraw::Observer::* Action )(const Observable *)
 The member function of the Observer that is called.
typedef std::list< hippodraw::Observer * > ObserverList_t
 The type of STL container to maintain list of Observer objects.

Public Member Functions

void addObserver (hippodraw::Observer *)
 Adds an Observer to the Observer list.
const ObserverList_tgetObservers () const
 Returns the list of observers.
virtual void notifyObservers () const
 Notifies Observer objects of a change.
void removeObserver (hippodraw::Observer *)
 Removes an Observer from the Observer list.
virtual ~Observable ()
 The destructor.

Protected Member Functions

void notifyObservers (Action action) const
 An internal method to iterate over all observers and to send the message action.
 Observable ()
 The default constructor.

Private Attributes

ObserverList_t m_list
 The list of objects observing this Observable.


Member Typedef Documentation

typedef void( hippodraw::Observer::* Observable::Action)(const Observable *)
 

The member function of the Observer that is called.

Definition at line 83 of file Observable.h.

typedef std::list< hippodraw::Observer * > Observable::ObserverList_t
 

The type of STL container to maintain list of Observer objects.

Definition at line 46 of file Observable.h.


Constructor & Destructor Documentation

Observable::Observable  )  [protected]
 

The default constructor.

Definition at line 36 of file Observable.cxx.

References m_list.

Observable::~Observable  )  [virtual]
 

The destructor.

Does nothing but keep compiler warning messages away.

Definition at line 42 of file Observable.cxx.


Member Function Documentation

void Observable::addObserver hippodraw::Observer  ) 
 

Adds an Observer to the Observer list.

Definition at line 49 of file Observable.cxx.

References m_list.

Referenced by CutPlotter::addCutTarget(), XyPlotter::addDataRep(), FunctionRep::FunctionRep(), BinningProjector::normalizeTo(), DataRepController::setAxisBindings(), DisplayController::setNTuple(), CutPlotter::setNTuple(), and TextPlotter::setParentDataRep().

const Observable::ObserverList_t & Observable::getObservers  )  const
 

Returns the list of observers.

Definition at line 57 of file Observable.cxx.

References m_list.

void Observable::notifyObservers Action  action  )  const [protected]
 

An internal method to iterate over all observers and to send the message action.

Definition at line 69 of file Observable.cxx.

References std::bind2nd(), std::for_each(), m_list, and std::mem_fun().

void Observable::notifyObservers  )  const [virtual]
 

Notifies Observer objects of a change.

If interval counting is disabled, then Observer::Update is sent immediately. If interval counting is enabled, then the current count is incremented. If the current count is equal to the interval count, then the Observer::update message is sent and the current count reset to 0.

Reimplemented in NTuple, FitsNTuple, RootNTuple, NumArrayTuple, ListTuple, and RootNTuple.

Definition at line 90 of file Observable.cxx.

References hippodraw::Observer::update().

Referenced by XyPlotter::addDataRep(), XyPlotter::addDataRepStacked(), FunctionController::addFunctionRep(), RTuple::addRow(), StHist2DProjector::addValues(), StHist1DProjector::addValues(), XyPlotter::autoScale(), Inspector::contourLevelsTextBox_returnPressed(), Inspector::contourSlider_valueChanged(), Inspector::contourTextBox_returnPressed(), FunctionRep::fitFunction(), NumArrayTuple::notifyObservers(), NTuple::notifyObservers(), ListTuple::notifyObservers(), RootNTuple::notifyObservers(), FitsNTuple::notifyObservers(), XyPlotter::removeDataRep(), FunctionRep::restoreParameters(), CutPlotter::setActive(), XyPlotter::setAutoRanging(), QtDisplay::setContourLevels(), CutPlotter::setCutColor(), XyPlotter::setCutEnabled(), XyPlotter::setCutInverted(), XyPlotter::setCutRangeAt(), ProjectorBase::setDirty(), DataRep::setErrorDisplay(), XyPlotter::setHighRange(), XyPlotter::setLabel(), PlotterBase::setLabel(), DataSource::setLabelAt(), DataSource::setLabels(), XyPlotter::setLowRange(), DataSource::setName(), DisplayController::setNTuple(), FunctionRep::setParameters(), DataRep::setRepColor(), DyHistogram::setRepresentation(), DataRep::setRepresentation(), DataRep::setRepSize(), DataRep::setRepStyle(), XyPlotter::setScaling(), PlotterBase::setTitle(), DataSource::setTitle(), XyPlotter::setTransform(), XyPlotter::setValueRep(), PlotterBase::update(), NTupleProjector::update(), DataRep::update(), CutPlotter::update(), BinningProjector::update(), CutPlotter::updateTargets(), DataRep::~DataRep(), DataSource::~DataSource(), NTuple::~NTuple(), and RTuple::~RTuple().

void Observable::removeObserver hippodraw::Observer  ) 
 

Removes an Observer from the Observer list.

Definition at line 63 of file Observable.cxx.

References m_list.

Referenced by BinningProjector::normalizeTo(), CutPlotter::removeFromTarget(), DisplayController::removeTextObservers(), NTupleProjector::setNTuple(), FunctionRep::willDelete(), FunctionRep::~FunctionRep(), and NTupleProjector::~NTupleProjector().


Member Data Documentation

ObserverList_t Observable::m_list [private]
 

The list of objects observing this Observable.

Definition at line 52 of file Observable.h.

Referenced by addObserver(), getObservers(), notifyObservers(), Observable(), and removeObserver().


The documentation for this class was generated from the following files:
Generated for HippoDraw-1.14.8.5 by doxygen 1.4.3