Ceylan::SmartResource Class Reference

Smart Resources are advanced resources, able to determine their size and clone themselves at will, for example so that they can be cached by a SmartResourceManager. More...

#include <CeylanSmartResource.h>

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

List of all members.

Public Types

enum  TextOutputFormat { rawText, html }
 

Defines what text output formats for TextDisplayable instances are available.

More...
enum  TextOutputFormat { rawText, html }
 

Defines what text output formats for TextDisplayable instances are available.

More...

Public Member Functions

 SmartResource ()
 Creates a new resource.
virtual ~SmartResource () throw ()
 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 Ceylan::System::Size getSizeInMemory () const =0
 Returns the approximate size in memory, in bytes, currently taken by this object.
virtual Clonableclone () const =0
 Returns a clone 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.
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.

Static Protected Attributes

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

Private Member Functions

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

Detailed Description

Smart Resources are advanced resources, able to determine their size and clone themselves at will, for example so that they can be cached by a SmartResourceManager.

All resources implement the Measurable interface, and therefore should be able to evaluate the size in memory they are occupying, so that the cache can adapt its policy with regard to the memory it uses for them.

All resources implement the Clonable interface too, since the cache may have to store only copies of submitted resources, and may have to give the caller a copy (a clone) of them. Otherwise the cached resource would be modified too as the original one is used afterwards, or could be even silently deallocated while still in cache, depending of their use by the caller.

Definition at line 58 of file CeylanSmartResource.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.

Defines what text output formats for TextDisplayable instances are available.

Enumerator:
rawText 
html 

Definition at line 124 of file CeylanTextDisplayable.h.


Constructor & Destructor Documentation

SmartResource::SmartResource (  ) 

Creates a new resource.

Definition at line 38 of file CeylanSmartResource.cc.

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

Virtual destructor.

Definition at line 45 of file CeylanSmartResource.cc.

Ceylan::SmartResource::SmartResource ( const SmartResource 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 Clonable& Ceylan::Clonable::clone (  )  const [pure virtual, inherited]

Returns a clone of this object.

The ownership of the clone is transferred to the caller, who therefore shall delete the clone when appropriate.

Exceptions:
ClonableException whenever the cloning fails.

Referenced by Ceylan::SmartResourceManager< Key >::scanForAddition().

TextDisplayable::TextOutputFormat TextDisplayable::GetOutputFormat (  )  [static, inherited]
TextDisplayable::TextOutputFormat TextDisplayable::GetOutputFormat (  )  [static, inherited]
virtual Ceylan::System::Size Ceylan::Measurable::getSizeInMemory (  )  const [pure virtual, inherited]

Returns the approximate size in memory, in bytes, currently taken by this object.

The general method for implementing this interface is to evaluate the static size of the object (thanks to 'sizeof()') and to evaluate recursively all owned dynamically allocated members. The overall sum is the size to return.

Referenced by Ceylan::SmartResourceManager< Key >::addEntry(), Ceylan::SmartResourceManager< Key >::scanForAddition(), Ceylan::SmartResourceManager< Key >::takeOwnershipOf(), and Ceylan::Measurable::toString().

SmartResource& Ceylan::SmartResource::operator= ( const SmartResource 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().

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

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 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 SmartResource::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::Resource.

Definition at line 51 of file CeylanSmartResource.cc.


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

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


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