Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController > Class Template Reference

Generic model template, for models specifically linked to a given controller (whose class is the typename) and to one specific view (which is not a typename, as a model does not have to know specifically its views). More...

#include <CeylanGenericModel.h>

Inheritance diagram for Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >:
Inheritance graph
[legend]
Collaboration diagram for Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >:
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

 SingleControllerSingleViewGenericModel (const ActualController &controller)
 Creates a new generic model, which will be linked to specified controller, whose ownership is taken, and to no view, currently.
 SingleControllerSingleViewGenericModel ()
 Creates a new generic model, which will be linked afterwards to a controller and to one view.
virtual ~SingleControllerSingleViewGenericModel () throw ()
 Virtual destructor.
virtual void setView (const BaseView &view)
 Sets the unique view this model should have.
virtual void addView (const BaseView &view) const
 Sets the unique view this model should have.
virtual void removeView ()
 Removes and deallocates the current view.
virtual void setController (const ActualController &controller)
 Sets the unique (specialized) controller this model should know.
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

const BaseView_view
 The associated (unique, if any, and owned) view.
const ActualController * _controller
 The associated (unique, if any, and owned) controller.

Static Protected Attributes

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

Private Member Functions

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

Detailed Description

template<typename ActualController>
class Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >

Generic model template, for models specifically linked to a given controller (whose class is the typename) and to one specific view (which is not a typename, as a model does not have to know specifically its views).

This generic model is linked to exactly one controller.

Note:
No CEYLAN_DLL declaration for templates.
See also:
testCeylanGenericMVC.cc for examples.

Definition at line 1496 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 ActualController >
Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::SingleControllerSingleViewGenericModel ( const ActualController &  controller  )  [inline, explicit]

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

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

Definition at line 1689 of file CeylanGenericModel.h.

template<typename ActualController >
Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::SingleControllerSingleViewGenericModel (  )  [inline]

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

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

Definition at line 1699 of file CeylanGenericModel.h.

template<typename ActualController >
Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::~SingleControllerSingleViewGenericModel (  )  throw () [inline, virtual]
template<typename ActualController >
Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::SingleControllerSingleViewGenericModel ( const SingleControllerSingleViewGenericModel< ActualController > &  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

template<typename ActualController >
void Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::addView ( const BaseView view  )  const [inline, virtual]

Sets the unique view this model should have.

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 one, inherited from BaseModel.

Implements Ceylan::MVC::BaseModel.

Definition at line 1745 of file CeylanGenericModel.h.

References Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::_view.

Referenced by Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::setView().

TextDisplayable::TextOutputFormat TextDisplayable::GetOutputFormat (  )  [static, inherited]
template<typename ActualController >
SingleControllerSingleViewGenericModel& Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::operator= ( const SingleControllerSingleViewGenericModel< ActualController > &  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.

template<typename ActualController >
void Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::removeView (  )  [inline, virtual]

Removes and deallocates the current view.

Exceptions:
GenericMVCException if no view was registered.

Definition at line 1763 of file CeylanGenericModel.h.

References Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::_view.

template<typename ActualController >
void Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::setController ( const ActualController &  controller  )  [inline, virtual]

Sets the unique (specialized) controller this model should know.

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

Definition at line 1780 of file CeylanGenericModel.h.

References Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::_controller.

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 ActualController >
void Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::setView ( const BaseView view  )  [inline, virtual]

Sets the unique view this model should have.

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

Definition at line 1734 of file CeylanGenericModel.h.

References Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::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 ActualController >
const std::string Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::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 1798 of file CeylanGenericModel.h.

References Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::_controller, Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::_view, Ceylan::low, and Ceylan::MVC::BaseView::toString().


Member Data Documentation

template<typename ActualController >
const ActualController* Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::_controller [protected]

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

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

Definition at line 1648 of file CeylanGenericModel.h.

Referenced by Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::setController(), Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::toString(), and Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::~SingleControllerSingleViewGenericModel().

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 ActualController >
const BaseView* Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::_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 1637 of file CeylanGenericModel.h.

Referenced by Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::addView(), Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::removeView(), Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::toString(), and Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >::~SingleControllerSingleViewGenericModel().


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