#include <CGestalt.h>

Public Member Functions | |
| Model () | |
| ~Model () | |
| empty constructor | |
| void | attachObserver (Observer *) |
| (possibly notify obersvers on my death) | |
| void | detachObserver (Observer *) |
| void | changed (void *argument) |
Private Attributes | |
| std::vector< Observer * > | mObservers |
| the private vector of observers | |
| bool | mHasObservers |
| whether there are any observers (for fast checking) | |
The Model/Observable/Subject class; instances of its subclasses should send themselves, this->changed(some_data); on "relevant" state changes; the code they inherit (from Model) manages updating the list of observer/dependent objects in that they each receive update(some_data); and can access the model-passed data (the model might pass "this").
| csl::Model::Model | ( | ) | [inline] |
| csl::Model::~Model | ( | ) | [inline] |
empty constructor
| void Model::attachObserver | ( | Observer * | o | ) |
(possibly notify obersvers on my death)
register/remove observers
References csl::logMsg(), mHasObservers, and mObservers.
Referenced by csl::SpatialPanner::setSpeakerLayout().
| void Model::detachObserver | ( | Observer * | o | ) |
References csl::logMsg(), mHasObservers, and mObservers.
Referenced by csl::SpatialPanner::setSpeakerLayout(), and csl::SpatialPanner::~SpatialPanner().
| void Model::changed | ( | void * | argument | ) |
this is what I send to myself to notify my observers; it's not overridden in general.
References csl::logMsg(), mHasObservers, and mObservers.
Referenced by csl::SpeakerLayout::addSpeaker(), and csl::SpeakerLayout::setDefaultSpeakerLayout().
std::vector<Observer *> csl::Model::mObservers [private] |
bool csl::Model::mHasObservers [private] |
whether there are any observers (for fast checking)
Referenced by attachObserver(), changed(), and detachObserver().
1.5.8