#include <CeylanEventListener.h>
Public Types | |
enum | TextOutputFormat { rawText, html } |
Defines what text output formats for TextDisplayable instances are available. More... | |
Public Member Functions | |
EventListener () | |
Basic constructor, not registered to any event source. | |
EventListener (EventSource &source) | |
Listener constructor automatically performing a subscription to the specified event source. | |
virtual | ~EventListener () throw () |
Virtual destructor, performs automatic unsubscribing from all event sources this listener was registered to. | |
virtual void | subscribeTo (EventSource &source) |
Subscribes this listener to the specified source, so that forthcoming events will be sent to it as well. | |
virtual void | unsubscribeFrom (EventSource &source) |
Unsubscribes this listener from specified source, no forthcoming event will be received from it. | |
virtual void | unsubscribeFromAllSources () |
Unsubscribes this listener from all registered sources, no forthcoming event will be received from any. | |
virtual void | forgetSource (EventSource &source) |
Forgets the specified source, but does not notify it that the unsubscription occured on the listener side. | |
virtual void | beNotifiedOf (const Event &newEvent)=0 |
Notifies this listener of a new event. | |
std::list< EventSource * > | getSources () const |
Returns a shallow copy of the sources that listener is registered to. | |
virtual const std::string | toString (Ceylan::VerbosityLevels level=Ceylan::high) const |
Returns a user-friendly description of the state of this object. | |
Static Public Member Functions | |
static const std::string | ToString (std::list< TextDisplayable * > displayables, Ceylan::VerbosityLevels level=Ceylan::high) |
Returns a user-friendly description of this list of pointers to text displayable instances. | |
static TextOutputFormat | GetOutputFormat () |
Returns the current overall text format to be used by TextDisplayable instances. | |
static void | SetOutputFormat (TextOutputFormat newOutputFormat) |
Sets the current overall text format to be used by TextDisplayable instances. | |
Protected Attributes | |
std::list< EventSource * > | _sources |
The event sources to which this listener is subscribed to. | |
Static Protected Attributes | |
static TextOutputFormat | _OutputFormat = rawText |
The text format to be used currently by TextDisplayable instances. | |
Private Member Functions | |
EventListener (const EventListener &source) | |
Copy constructor made private to ensure that it will never be called. | |
EventListener & | operator= (const EventListener &source) |
Assignment operator made private to ensure that it will never be called. |
Event listeners are linked to event sources, but do not own them: sources have independent life cycle, even though a vanishing source should inform its listener that it is disappearing.
An event listener may listen to multiple event sources simultaneously.
Definition at line 66 of file CeylanEventListener.h.
enum Ceylan::TextDisplayable::TextOutputFormat [inherited] |
Defines what text output formats for TextDisplayable instances are available.
Definition at line 124 of file CeylanTextDisplayable.h.
EventListener::EventListener | ( | ) |
Basic constructor, not registered to any event source.
Definition at line 49 of file CeylanEventListener.cc.
EventListener::EventListener | ( | EventSource & | source | ) | [explicit] |
Listener constructor automatically performing a subscription to the specified event source.
Definition at line 57 of file CeylanEventListener.cc.
References subscribeTo().
EventListener::~EventListener | ( | ) | throw () [virtual] |
Virtual destructor, performs automatic unsubscribing from all event sources this listener was registered to.
Definition at line 67 of file CeylanEventListener.cc.
References _sources, Ceylan::toString(), and unsubscribeFromAllSources().
Ceylan::EventListener::EventListener | ( | const EventListener & | source | ) | [private] |
Copy constructor made private to ensure that it will never be called.
The compiler should complain whenever this undefined constructor is called, implicitly or not.
virtual void Ceylan::EventListener::beNotifiedOf | ( | const Event & | newEvent | ) | [pure virtual] |
Notifies this listener of a new event.
This event remains property of the EventSource, which will take care of its life cycle.
Implemented in Ceylan::Locatable.
void EventListener::forgetSource | ( | EventSource & | source | ) | [virtual] |
Forgets the specified source, but does not notify it that the unsubscription occured on the listener side.
Therefore, if the source were to send new events, this listener would be notified, and may not be aware it received an event from a source it is not registered to any more.
Alternatively, on these listener deallocations, if nothing was done in the case of a deallocated source still having at least one listener left, a call to the remove method of these source instances would be tempted, and may cause a crash since sources could be already deallocated.
EventException | if listener was not already registered to the event source, and if debug mode for events is activated. |
Definition at line 191 of file CeylanEventListener.cc.
References _sources, generalUtils::false, Ceylan::EventSource::toString(), and generalUtils::true.
TextDisplayable::TextOutputFormat TextDisplayable::GetOutputFormat | ( | ) | [static, inherited] |
Returns the current overall text format to be used by TextDisplayable instances.
Definition at line 63 of file CeylanTextDisplayable.cc.
References Ceylan::TextDisplayable::_OutputFormat.
Referenced by Ceylan::formatStringList(), Ceylan::formatStringMap(), Ceylan::XML::XMLMarkup::toString(), Ceylan::Maths::Linear::Vector3::toString(), Ceylan::Maths::Linear::Vector2::toString(), Ceylan::Maths::Linear::Tripoint::toString(), Ceylan::Module::toString(), Ceylan::Maths::Linear::Matrix3::toString(), Ceylan::Maths::Linear::Matrix2::toString(), Ceylan::Maths::Linear::HomogeneousMatrix3::toString(), and Ceylan::Maths::Linear::Bipoint::toString().
list< EventSource * > EventListener::getSources | ( | ) | const |
Returns a shallow copy of the sources that listener is registered to.
Definition at line 238 of file CeylanEventListener.cc.
References _sources.
EventListener& Ceylan::EventListener::operator= | ( | const EventListener & | source | ) | [private] |
Assignment operator made private to ensure that it will never be called.
The compiler should complain whenever this undefined operator is called, implicitly or not.
void TextDisplayable::SetOutputFormat | ( | TextOutputFormat | newOutputFormat | ) | [static, inherited] |
Sets the current overall text format to be used by TextDisplayable instances.
newOutputFormat | the new output format. |
Definition at line 72 of file CeylanTextDisplayable.cc.
References Ceylan::TextDisplayable::_OutputFormat.
Referenced by Ceylan::Log::LogHolder::LogHolder().
void EventListener::subscribeTo | ( | EventSource & | source | ) | [virtual] |
Subscribes this listener to the specified source, so that forthcoming events will be sent to it as well.
EventException | if listener is already registered to the specified event source. |
Definition at line 87 of file CeylanEventListener.cc.
References _sources, Ceylan::EventSource::add(), and Ceylan::EventSource::toString().
Referenced by Ceylan::Controller::Controller(), EventListener(), Ceylan::Locatable::Locatable(), and Ceylan::Model::subscribeToController().
const std::string TextDisplayable::ToString | ( | std::list< TextDisplayable * > | displayables, | |
Ceylan::VerbosityLevels | level = Ceylan::high | |||
) | [static, inherited] |
Returns a user-friendly description of this list of pointers to text displayable instances.
displayables | a list of pointers to TextDisplayable instances/ | |
level | the requested verbosity level. |
Definition at line 45 of file CeylanTextDisplayable.cc.
References Ceylan::formatStringList().
const string EventListener::toString | ( | Ceylan::VerbosityLevels | level = Ceylan::high |
) | const [virtual] |
Returns a user-friendly description of the state of this object.
Implements Ceylan::TextDisplayable.
Reimplemented in Ceylan::CallerEventListener, Ceylan::Locatable, Ceylan::Locatable2D, Ceylan::Model, and Ceylan::View.
Definition at line 247 of file CeylanEventListener.cc.
References _sources.
Referenced by Ceylan::EventSource::add(), and Ceylan::EventSource::remove().
void EventListener::unsubscribeFrom | ( | EventSource & | source | ) | [virtual] |
Unsubscribes this listener from specified source, no forthcoming event will be received from it.
This is the usual method to call when one wants that this listener to not listen any more to the specified source.
It is in fact implemented by notifying this source of the unsubscription of this listener, and by forgetting it.
EventException | if listener was not already registered to the event source. |
Definition at line 113 of file CeylanEventListener.cc.
References _sources, and Ceylan::EventSource::toString().
Referenced by Ceylan::Locatable::detachFromFather(), and Ceylan::Model::unsubscribeFromController().
void EventListener::unsubscribeFromAllSources | ( | ) | [virtual] |
Unsubscribes this listener from all registered sources, no forthcoming event will be received from any.
Definition at line 160 of file CeylanEventListener.cc.
References _sources.
Referenced by Ceylan::Model::unsubscribeFromAllControllers(), and ~EventListener().
TextDisplayable::TextOutputFormat TextDisplayable::_OutputFormat = rawText [static, protected, inherited] |
The text format to be used currently by TextDisplayable instances.
Definition at line 158 of file CeylanTextDisplayable.h.
Referenced by Ceylan::TextDisplayable::GetOutputFormat(), and Ceylan::TextDisplayable::SetOutputFormat().
std::list<EventSource *> Ceylan::EventListener::_sources [protected] |
The event sources to which this listener is subscribed to.
Definition at line 233 of file CeylanEventListener.h.
Referenced by forgetSource(), Ceylan::View::getModel(), getSources(), subscribeTo(), Ceylan::View::toString(), Ceylan::Model::toString(), toString(), unsubscribeFrom(), unsubscribeFromAllSources(), and ~EventListener().