18 #include <boost/bind/bind.hpp>
26 class DtDeCommunicator;
41 virtual void activate(T* subject)
const;
82 signal_activate.connect(
85 signal_deactivate.connect(
92 signal_activate.disconnect(
95 signal_deactivate.disconnect(
106 announcer = create(de);
112 DtTHROW_NEW(DtCorruptedState,
"Unable to get an DtSubjectAnnouncer instance.");
126 signal_activate(subject);
132 signal_deactivate(subject);
138 myActivatedList.remove(subject);
139 myActivatedList.push_back(subject);
145 myActivatedList.remove(subject);
151 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:149
virtual void slot_onDeactivate(T *subject)
Connected to its own signal_deactivate which removes subjects from the activated list.
Definition: DtSubjectAnnouncer.h:143
boost::signalslib::signal< void(T *)> signal_activate
Signal with a T argument and a void return value.
Definition: DtSubjectAnnouncer.h:47
boost::signalslib::signal< void(T *)> signal_deactivate
Signal with a DtIgDisplayUserInterface argument and a void return value.
Definition: DtSubjectAnnouncer.h:50
static DtSubjectAnnouncer * findInstance(DtDe &de)
Get the instance of this object. This object is 'lazily created'.
Definition: DtSubjectAnnouncer.h:100
std::list< T * > ActivatedList
Definition: DtSubjectAnnouncer.h:52
virtual void activate(T *subject) const
Causes the activate signal to be emitted.
Definition: DtSubjectAnnouncer.h:124
DtSubjectAnnouncer< DtDeCommunicator > DtDeCommunicatorAnnouncer
Definition: DtSubjectAnnouncer.h:156
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...
Contains makVrv:DtDeCommunicator class.
DtSubjectAnnouncer(DtDe &de)
The constructor for this class is protected. Use create().
Definition: DtSubjectAnnouncer.h:80
Contains makVrv::DtVirtualBaseClass class.
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:136
ActivatedList myActivatedList
List of activated subjects.
Definition: DtSubjectAnnouncer.h:75
A DtSubjectAnnouncer tells DtSubjectObservers that the subject T is activated or deactivated.
Definition: DtSubjectAnnouncer.h:30
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:76
virtual void deactivate(T *subject) const
Causes the deactivate signal to be emitted.
Definition: DtSubjectAnnouncer.h:130
DtSubjectAnnouncer< DtDe > DtDeAnnouncer
Definition: DtSubjectAnnouncer.h:155
virtual ~DtSubjectAnnouncer()
Definition: DtSubjectAnnouncer.h:90
DtSubjectAnnouncer< DtDisplay > DtDisplayAnnouncer
Definition: DtSubjectAnnouncer.h:157
static DtSubjectAnnouncer * create(DtDe &de)
Static creator function. This class is 'lazily created' when needed. Creation happens during the firs...
Definition: DtSubjectAnnouncer.h:118
Contains makVrv:DtDisplay class.