Ceylan::MVC::SingleViewGenericModel< ActualView > Class Template Reference

Generic model template, for models specifically linked to a given view, which the model owns, and with no known specific controller. More...

#include <CeylanGenericModel.h>

Inheritance diagram for Ceylan::MVC::SingleViewGenericModel< ActualView >:

Inheritance graph
[legend]
Collaboration diagram for Ceylan::MVC::SingleViewGenericModel< ActualView >:

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

 SingleViewGenericModel (const ActualView &view)
 Creates a new generic model, which will be linked to specified view, whose ownership is taken, and to no controller.
 SingleViewGenericModel ()
 Creates a new generic model, which will be linked afterwards to a view and to no controller.
virtual ~SingleViewGenericModel () throw ()
 Virtual destructor.
virtual void setView (const ActualView &view)
 Sets the unique view this model should have.
virtual void addView (const ActualView &view) const
 Sets the unique view this model should have.
virtual const std::string toString (Ceylan::VerbosityLevels level=Ceylan::high) const
 Returns a user-friendly description of the state of this object.
virtual void addView (const BaseView &view) const =0
 Adds specified view to that model.

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

const ActualView * _view
 The associated (unique, if any, and owned) view.

Static Protected Attributes

static TextOutputFormat _OutputFormat = rawText
 The text format to be used currently by TextDisplayable instances.

Private Member Functions

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


Detailed Description

template<typename ActualView>
class Ceylan::MVC::SingleViewGenericModel< ActualView >

Generic model template, for models specifically linked to a given view, which the model owns, and with no known specific controller.

This generic model is linked to exactly one view, and knowing it is only useful to manage its lifecycle.

Note that using the non-templated version SingleViewModel is enough in most cases, as a model generally does not need to trigger methods on its view, whereas the contrary is true (a view requests the model for its current state at rendering time).

See also:
testCeylanGenericMVC.cc for examples.

Definition at line 353 of file CeylanGenericModel.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

template<typename ActualView >
Ceylan::MVC::SingleViewGenericModel< ActualView >::SingleViewGenericModel ( const ActualView &  view  )  [inline, explicit]

Creates a new generic model, which will be linked to specified view, whose ownership is taken, and to no controller.

Note:
Generally cannot be used because of the chicken-and-egg problem: on creation the view needs its model, and this model needs its view, both cannot be satisfied.

Definition at line 499 of file CeylanGenericModel.h.

template<typename ActualView >
Ceylan::MVC::SingleViewGenericModel< ActualView >::SingleViewGenericModel (  )  [inline]

Creates a new generic model, which will be linked afterwards to a view and to no controller.

Note:
Generally used because of the chicken-and-egg problem: on creation the view needs its model, so this view cannot be specified directly when creating this model.

Definition at line 509 of file CeylanGenericModel.h.

template<typename ActualView >
Ceylan::MVC::SingleViewGenericModel< ActualView >::~SingleViewGenericModel (  )  throw () [inline, virtual]

Virtual destructor.

Note:
Any associated view will be removed.

Definition at line 518 of file CeylanGenericModel.h.

References Ceylan::MVC::SingleViewGenericModel< ActualView >::_view.

template<typename ActualView >
Ceylan::MVC::SingleViewGenericModel< ActualView >::SingleViewGenericModel ( const SingleViewGenericModel< ActualView > &  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::MVC::BaseModel::addView ( const BaseView view  )  const [pure virtual, inherited]

Adds specified view to that model.

Exceptions:
GenericMVCException if the operation failed.
Pure virtual method so that all model child classes have to choose how many views can be registered and whether they are owned by the model.

Note:
This is nevertheless a 'const' method, as adding a view is deemed not to change the state of the model itself; moreover if it was non-const, then views (which have const references to models) could not auto-register themselves to the models).

Implemented in Ceylan::MVC::NoViewModel, Ceylan::MVC::SingleViewModel, and Ceylan::MVC::MultipleViewModel.

template<typename ActualView >
void Ceylan::MVC::SingleViewGenericModel< ActualView >::addView ( const ActualView &  view  )  const [inline, virtual]

Sets the unique view this model should have.

If a view was already registered, it will be deallocated first.

Parameters:
view the view, whose ownership is taken.
Exceptions:
GenericMVCException if a view was already registered.
Note:
This is nevertheless a 'const' method, as adding a view is deemed not to change the state of the model itself; moreover if it was non-const, then views (which have const references to models) could not auto-register themselves to the models).

The use of the setView method should be preferred, as its name is clearer than this inherited one.

Definition at line 546 of file CeylanGenericModel.h.

References Ceylan::MVC::SingleViewGenericModel< ActualView >::_view.

Referenced by Ceylan::MVC::SingleViewGenericModel< ActualView >::setView().

TextDisplayable::TextOutputFormat TextDisplayable::GetOutputFormat (  )  [static, inherited]

template<typename ActualView >
SingleViewGenericModel& Ceylan::MVC::SingleViewGenericModel< ActualView >::operator= ( const SingleViewGenericModel< ActualView > &  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.

Parameters:
newOutputFormat the new output format.

Definition at line 72 of file CeylanTextDisplayable.cc.

References Ceylan::TextDisplayable::_OutputFormat.

Referenced by Ceylan::Log::LogHolder::LogHolder().

template<typename ActualView >
void Ceylan::MVC::SingleViewGenericModel< ActualView >::setView ( const ActualView &  view  )  [inline, virtual]

Sets the unique view this model should have.

If a view was already registered, it will be deallocated first.

Parameters:
view the view, whose ownership is taken.
Exceptions:
GenericMVCException if a view was already registered.

Definition at line 535 of file CeylanGenericModel.h.

References Ceylan::MVC::SingleViewGenericModel< ActualView >::addView().

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().

template<typename ActualView >
const std::string Ceylan::MVC::SingleViewGenericModel< ActualView >::toString ( Ceylan::VerbosityLevels  level = Ceylan::high  )  const [inline, 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::MVC::BaseModel.

Definition at line 565 of file CeylanGenericModel.h.

References Ceylan::MVC::SingleViewGenericModel< ActualView >::_view, and Ceylan::low.


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().

template<typename ActualView >
const ActualView* Ceylan::MVC::SingleViewGenericModel< ActualView >::_view [protected]

The associated (unique, if any, and owned) view.

Note:
A model should a priori never change its view(s), (the views are expected to retrieve information directly from their model), hence the const reference.

Definition at line 461 of file CeylanGenericModel.h.

Referenced by Ceylan::MVC::SingleViewGenericModel< ActualView >::addView(), Ceylan::MVC::SingleViewGenericModel< ActualView >::toString(), and Ceylan::MVC::SingleViewGenericModel< ActualView >::~SingleViewGenericModel().


The documentation for this class was generated from the following file:

Generated on Thu Jun 4 20:40:37 2009 for Ceylan by  doxygen 1.5.8