17 #include <boost/bind.hpp>
25 class DtDeCommunicator;
40 virtual void activate(T* subject)
const;
81 signal_activate.connect(
84 signal_deactivate.connect(
91 signal_activate.disconnect(
94 signal_deactivate.disconnect(
105 announcer = create(de);
111 DtTHROW_NEW(DtCorruptedState,
"Unable to get an DtSubjectAnnouncer instance.");
125 signal_activate(subject);
131 signal_deactivate(subject);
137 myActivatedList.remove(subject);
138 myActivatedList.push_back(subject);
144 myActivatedList.remove(subject);
150 return myActivatedList;
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
virtual std::list< T * > & activatedList()
Return the list of activated subjects.
Definition: DtSubjectAnnouncer.h:148
virtual void slot_onDeactivate(T *subject)
Connected to its own signal_deactivate which removes subjects from the activated list.
Definition: DtSubjectAnnouncer.h:142
boost::signalslib::signal< void(T *)> signal_activate
Signal with a T argument and a void return value.
Definition: DtSubjectAnnouncer.h:46
boost::signalslib::signal< void(T *)> signal_deactivate
Signal with a DtIgDisplayUserInterface argument and a void return value.
Definition: DtSubjectAnnouncer.h:49
static DtSubjectAnnouncer * findInstance(DtDe &de)
Get the instance of this object. This object is 'lazily created'.
Definition: DtSubjectAnnouncer.h:99
std::list< T * > ActivatedList
Definition: DtSubjectAnnouncer.h:51
virtual void activate(T *subject) const
Causes the activate signal to be emitted.
Definition: DtSubjectAnnouncer.h:123
DtSubjectAnnouncer< DtDeCommunicator > DtDeCommunicatorAnnouncer
Definition: DtSubjectAnnouncer.h:155
Contains makVrv::DtDe class.
virtual DtVirtualBaseClass * findInstance(const std::string &instanceName) const
Find an instance with the given name. If no instance is found than a null pointer is returned...
DtSubjectAnnouncer(DtDe &de)
The constructor for this class is protected. Use create().
Definition: DtSubjectAnnouncer.h:79
Contains makVrv::DtVirtualBaseClass class.
binderNoArgs< _Fn > bind(const _Fn &_Func, const _Ty &_Left)
Definition: DtSTLUtilities.h:76
virtual void registerInstance(const std::string &instanceName, DtVirtualBaseClass *instance)
Register an instance with a given name for later retrieval. Once registered, the DtDe takes ownership...
virtual void slot_onActivate(T *subject)
Connected to its own signal_activate which adds subjects to the activated list.
Definition: DtSubjectAnnouncer.h:135
ActivatedList myActivatedList
List of activated subjects.
Definition: DtSubjectAnnouncer.h:74
A DtSubjectAnnouncer tells DtSubjectObservers that the subject T is activated or deactivated.
Definition: DtSubjectAnnouncer.h:29
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
virtual void deactivate(T *subject) const
Causes the deactivate signal to be emitted.
Definition: DtSubjectAnnouncer.h:129
DtSubjectAnnouncer< DtDe > DtDeAnnouncer
Definition: DtSubjectAnnouncer.h:154
virtual ~DtSubjectAnnouncer()
Definition: DtSubjectAnnouncer.h:89
DtSubjectAnnouncer< DtDisplay > DtDisplayAnnouncer
Definition: DtSubjectAnnouncer.h:156
static DtSubjectAnnouncer * create(DtDe &de)
Static creator function. This class is 'lazily created' when needed. Creation happens during the firs...
Definition: DtSubjectAnnouncer.h:117
Contains makVrv:DtDisplay class.