#include <CeylanController.h>
Public Types | |
enum | TextOutputFormat { rawText, html } |
Defines what text output formats for TextDisplayable instances are available. More... | |
Public Member Functions | |
Controller () | |
Constructs a controller not linked to any model. | |
Controller (Model &model) | |
Constructs a controller that will send events to the specified model. | |
virtual | ~Controller () throw () |
Basic virtual destructor. | |
virtual const std::string | toString (Ceylan::VerbosityLevels level=Ceylan::high) const |
Returns a user-friendly description of the state of this object. | |
virtual const Event & | getEventFor (const CallerEventListener &listener)=0 |
Returns the event this source has to propagate to the specific listener caller, in order to summarize all past events to this specific listener. | |
virtual void | add (EventListener &listener) |
Registers the specified listener to this source, so that forthcoming events will be sent to it as well. | |
virtual void | remove (const EventListener &listener) |
Unregisters the specified listener from this source, no forthcoming event will be sent to the listener. | |
virtual void | removeAllListeners () |
Unsubscribes all registered listeners from this source, no forthcoming event will be sent. | |
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 Member Functions | |
virtual void | notifyAllListeners (const Event &newEvent) |
Notifies all currently registered listeners of a new event. | |
virtual bool | isRegistered (const EventListener &listener) |
Tells whether specified listener is registered to this source. | |
Protected Attributes | |
std::list< EventListener * > | _listeners |
The registered event listeners. | |
Static Protected Attributes | |
static TextOutputFormat | _OutputFormat = rawText |
The text format to be used currently by TextDisplayable instances. | |
Private Member Functions | |
Controller (const Controller &source) | |
Copy constructor made private to ensure that it will never be called. | |
Controller & | operator= (const Controller &source) |
Assignment operator made private to ensure that it will never be called. |
The controller of an object sends events to its model, which in turn change its state.
Alternatively, since a Controller is a Callable Event Source, any listener can call the Controller getSourceEvent
virtual method, so that this listener can drive the controller, and not the contrary.
Input devices and controller have separate life cycle, no one is owned by the other.
getSourceEvent
virtual method, since they must be able to be triggered, notably by Models.Definition at line 81 of file CeylanController.h.
enum Ceylan::TextDisplayable::TextOutputFormat [inherited] |
Defines what text output formats for TextDisplayable instances are available.
Definition at line 124 of file CeylanTextDisplayable.h.
Controller::Controller | ( | ) |
Controller::Controller | ( | Model & | model | ) | [explicit] |
Constructs a controller that will send events to the specified model.
Definition at line 60 of file CeylanController.cc.
References Ceylan::EventListener::subscribeTo().
Controller::~Controller | ( | ) | throw () [virtual] |
Ceylan::Controller::Controller | ( | const Controller & | 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.
void EventSource::add | ( | EventListener & | listener | ) | [virtual, inherited] |
Registers the specified listener to this source, so that forthcoming events will be sent to it as well.
EventException | if listener is already registered to the event source. |
Definition at line 118 of file CeylanEventSource.cc.
References Ceylan::EventSource::_listeners, and Ceylan::EventListener::toString().
Referenced by Ceylan::EventListener::subscribeTo().
virtual const Event& Ceylan::CallableEventSource::getEventFor | ( | const CallerEventListener & | listener | ) | [pure virtual, inherited] |
Returns the event this source has to propagate to the specific listener caller, in order to summarize all past events to this specific listener.
listener | the caller event listener for which the event is forged. |
More precisely, with basic event sources and listeners, the source triggers the notifications, and the listener has to adapt itself, by storing messages for later use or by acting immediately, accordingly. It is therefore source-driven.
On cases where the listener activation is not to be ruled by sources (ex: if listeners are specifically scheduled already, or if sources, from a listener point of view, would send unnecessary notifications as long as listener is not ready), caller listeners can be used.
They are in charge of driving the communication process: whenever they deem it useful, they ask their sources to return an event describing their current state.
This allows to propagate only fresh and required events for listeners, which is the appropriate way of handling events in all the cases where listeners drive the pace of the pair.
EventException | if the caller event listener is not already registered to this source. |
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().
bool EventSource::isRegistered | ( | const EventListener & | listener | ) | [protected, virtual, inherited] |
Tells whether specified listener is registered to this source.
Definition at line 252 of file CeylanEventSource.cc.
References Ceylan::EventSource::_listeners, and generalUtils::false.
void EventSource::notifyAllListeners | ( | const Event & | newEvent | ) | [protected, virtual, inherited] |
Notifies all currently registered listeners of a new event.
Definition at line 270 of file CeylanEventSource.cc.
References Ceylan::EventSource::_listeners.
Referenced by Ceylan::Locatable::changed(), and Ceylan::Model::notifyAllViews().
Controller& Ceylan::Controller::operator= | ( | const Controller & | 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 EventSource::remove | ( | const EventListener & | listener | ) | [virtual, inherited] |
Unregisters the specified listener from this source, no forthcoming event will be sent to the listener.
EventException | if listener was not already registered to the event source. |
Definition at line 142 of file CeylanEventSource.cc.
References Ceylan::EventSource::_listeners, generalUtils::false, Ceylan::EventListener::toString(), and generalUtils::true.
void EventSource::removeAllListeners | ( | ) | [virtual, inherited] |
Unsubscribes all registered listeners from this source, no forthcoming event will be sent.
This source will request each of its listeners to unsubscribe from it, then the source will forget them in turn.
The links will be removed, but no instance will be deleted by this call.
Definition at line 204 of file CeylanEventSource.cc.
References Ceylan::EventSource::_listeners.
Referenced by Ceylan::Model::removeAllViews(), and Ceylan::Locatable::~Locatable().
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().
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 Controller::toString | ( | Ceylan::VerbosityLevels | level = Ceylan::high |
) | const [virtual] |
Returns a user-friendly description of the state of this object.
level | the requested verbosity level. |
Reimplemented from Ceylan::CallableEventSource.
Definition at line 83 of file CeylanController.cc.
References Ceylan::EventSource::_listeners.
Referenced by Ceylan::InputDevice::setController(), Ceylan::InputDevice::toString(), and ~Controller().
std::list<EventListener *> Ceylan::EventSource::_listeners [protected, inherited] |
The registered event listeners.
Definition at line 204 of file CeylanEventSource.h.
Referenced by Ceylan::EventSource::add(), Ceylan::Locatable::describe(), Ceylan::EventSource::isRegistered(), Ceylan::EventSource::notifyAllListeners(), Ceylan::EventSource::remove(), Ceylan::EventSource::removeAllListeners(), Ceylan::Model::toString(), Ceylan::EventSource::toString(), toString(), and Ceylan::EventSource::~EventSource().
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().