Ceylan::CallerEventListener Class Reference

This specialized event listener does not provide any more method than basic event listeners do. More...

#include <CeylanCallerEventListener.h>

Inheritance diagram for Ceylan::CallerEventListener:
Inheritance graph
[legend]
Collaboration diagram for Ceylan::CallerEventListener:
Collaboration graph
[legend]

List of all members.

Public Types

enum  TextOutputFormat { rawText, html }
 

Defines what text output formats for TextDisplayable instances are available.

More...

Public Member Functions

 CallerEventListener ()
 Basic constructor, not registered to any event source.
 CallerEventListener (EventSource &source)
 Listener constructor automatically performing subscription to the event source.
virtual ~CallerEventListener () throw ()
 Virtual destructor, performs automatic unsubscribing from all event sources this listener is subscribed to.
virtual const std::string toString (Ceylan::VerbosityLevels level=Ceylan::high) const
 Returns a user-friendly description of the state of this object.
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.

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

 CallerEventListener (const CallerEventListener &source)
 Copy constructor made private to ensure that it will never be called.
CallerEventListeneroperator= (const CallerEventListener &source)
 Assignment operator made private to ensure that it will be never called.

Detailed Description

This specialized event listener does not provide any more method than basic event listeners do.

Instead, it allows to define a specialized type which can be the only one used in calls to the CallableEventSource getEventFor method. This ensures stronger typing.

Note:
Sources will check that the caller is an already registered caller event listener indeed when asked for events.

Definition at line 61 of file CeylanCallerEventListener.h.


Member Enumeration Documentation

Defines what text output formats for TextDisplayable instances are available.

Enumerator:
rawText 
html 

Definition at line 124 of file CeylanTextDisplayable.h.


Constructor & Destructor Documentation

CallerEventListener::CallerEventListener (  ) 

Basic constructor, not registered to any event source.

Definition at line 45 of file CeylanCallerEventListener.cc.

CallerEventListener::CallerEventListener ( EventSource source  )  [explicit]

Listener constructor automatically performing subscription to the event source.

Definition at line 53 of file CeylanCallerEventListener.cc.

CallerEventListener::~CallerEventListener (  )  throw () [virtual]

Virtual destructor, performs automatic unsubscribing from all event sources this listener is subscribed to.

Definition at line 61 of file CeylanCallerEventListener.cc.

Ceylan::CallerEventListener::CallerEventListener ( const CallerEventListener 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.


Member Function Documentation

virtual void Ceylan::EventListener::beNotifiedOf ( const Event newEvent  )  [pure virtual, inherited]

Notifies this listener of a new event.

Note:
The event is not by default checked to testify that this listener received an event from a source it is, at the time of this call, registered to.
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, inherited]

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.

See also:
beNotifiedOf

This method should mostly be used by event sources being deallocated, having realized that some listeners were still subscribed, and wanting nevertheless that the listeners remove these sources from their list. Otherwise, on the source side, should unsubscribeFrom be used instead, the listeners list would be modified in turn while iterating on it in the source destructor, which may cause a crash.

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.

Note:
This method is therefore a parachute which should not be used by the application. It is used too when the source has to manage the life cycle of its listeners, and has to deallocate them.

This listener can be registered multiple times to this source.

Exceptions:
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 Ceylan::EventListener::_sources, generalUtils::false, Ceylan::EventSource::toString(), and generalUtils::true.

TextDisplayable::TextOutputFormat TextDisplayable::GetOutputFormat (  )  [static, inherited]
list< EventSource * > EventListener::getSources (  )  const [inherited]

Returns a shallow copy of the sources that listener is registered to.

Note:
The returned list contains the same pointer values as the internal one.

Definition at line 238 of file CeylanEventListener.cc.

References Ceylan::EventListener::_sources.

CallerEventListener& Ceylan::CallerEventListener::operator= ( const CallerEventListener source  )  [private]

Assignment operator made private to ensure that it will be never 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.

Parameters:
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, inherited]

Subscribes this listener to the specified source, so that forthcoming events will be sent to it as well.

Note:
A listener can be subscribed to multiple sources at once.
Exceptions:
EventException if listener is already registered to the specified event source.

Definition at line 87 of file CeylanEventListener.cc.

References Ceylan::EventListener::_sources, Ceylan::EventSource::add(), and Ceylan::EventSource::toString().

Referenced by Ceylan::Controller::Controller(), Ceylan::EventListener::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.

Parameters:
displayables a list of pointers to TextDisplayable instances/
level the requested verbosity level.
Note:
Text output format is determined from overall settings.
See also:
toString, Ceylan::VerbosityLevels

Definition at line 45 of file CeylanTextDisplayable.cc.

References Ceylan::formatStringList().

const string CallerEventListener::toString ( Ceylan::VerbosityLevels  level = Ceylan::high  )  const [virtual]

Returns a user-friendly description of the state of this object.

Parameters:
level the requested verbosity level.
Note:
Text output format is determined from overall settings.
See also:
TextDisplayable

Reimplemented from Ceylan::EventListener.

Reimplemented in Ceylan::Model, and Ceylan::View.

Definition at line 67 of file CeylanCallerEventListener.cc.

void EventListener::unsubscribeFrom ( EventSource source  )  [virtual, inherited]

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.

Exceptions:
EventException if listener was not already registered to the event source.

Definition at line 113 of file CeylanEventListener.cc.

References Ceylan::EventListener::_sources, and Ceylan::EventSource::toString().

Referenced by Ceylan::Locatable::detachFromFather(), and Ceylan::Model::unsubscribeFromController().

void EventListener::unsubscribeFromAllSources (  )  [virtual, inherited]

Unsubscribes this listener from all registered sources, no forthcoming event will be received from any.

Definition at line 160 of file CeylanEventListener.cc.

References Ceylan::EventListener::_sources.

Referenced by Ceylan::Model::unsubscribeFromAllControllers(), and Ceylan::EventListener::~EventListener().


Member Data Documentation

TextDisplayable::TextOutputFormat TextDisplayable::_OutputFormat = rawText [static, protected, inherited]

The text format to be used currently by TextDisplayable instances.

Note:
Defaults to raw text.

Definition at line 158 of file CeylanTextDisplayable.h.

Referenced by Ceylan::TextDisplayable::GetOutputFormat(), and Ceylan::TextDisplayable::SetOutputFormat().

std::list<EventSource *> Ceylan::EventListener::_sources [protected, inherited]

The documentation for this class was generated from the following files:
Generated on Mon Nov 29 13:40:29 2010 for Ceylan by  doxygen 1.6.3