ITTF Object Communication Mike Miller Yale University
Outline Introduce StiIOBroker Introduce Observer/Subscriber Pattern List objects that communicate via Observer/Subscriber
StiIOBroker Goal: centralize all dynamic parameters in one place class StiIOBroker –Abstract class to define get/set methods –Singleton class StiRootIOBroker : public StiIOBroker –Available at the root prompt –Currently used to pass info at the macro level class StiMySqlIOBroker : public StiIOBroker –Not yet implemented
Subject/Observer Pattern (I) a=50 b=30 c=20 Subject Observer requestsnotification Define a one to many relationship Guarantee dynamic propagation of information
Subject/Observer Pattern (II) class Subscriber { public: add(Observer*); detach(Observer*); notify(); private: vector mVec; }; class Observer { public: update(Subject*)=0; private: Subject* mSubject; }; Simply derive from these classes and dynamic updates are guaranteed!
ITTF Object Communication Observer StiKalmanTrackFinder Observer StiTrackSeedFinder Observer StiTrackFilter Observer StiTrackMerger Subject StiIOBroker
Conclusions StiIOBroker defines the only entrance for run-time parameters Update of StiMySqlBroker in StiMaker::InitRun() will fully propagate through the entire object structure