KeyValue: KeyValue

  • Main Page
  • Namespaces
  • Classes
  • Files
  • Directories

KeyValue

version:0.1

Introduction

This is the reference manual of KeyValue library. Here you will find detailed information for all classes, namespaces, files, macros, etc.

Before reading this document, we recommend the reading of KeyValue user's manual.

Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: AddPrefix Class Reference

  • Files
  • Directories
  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::logger::AddPrefix

AddPrefix Class Reference

Defines a policy for Message prefixes, which is, to send the prefix to the underlying Logger's device. More...

#include "keyvalue/sys/logger/policy/AddPrefix.h"

Inheritance diagram for AddPrefix:
[legend]

List of all members.

Protected Member Functions

bool | apply (const Message &message)
virtual bool | send (const string &message)=0

Detailed Description

Defines a policy for Message prefixes, which is, to send the prefix to the underlying Logger's device.

Generated on Sat Mar 20 14:15:13 2010 for KeyValue by doxygen 1.6.1


KeyValue: Bounded< ElementType, Bound1, Bound2 > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Bounded

Bounded< ElementType, Bound1, Bound2 > Class Template Reference

Key for bounded values. More...

#include "keyvalue/key/generic/Bounded.h"

Inheritance diagram for Bounded< ElementType, Bound1, Bound2 >:
[legend]

List of all members.

Public Types

enum
typedef Traits< ElementType,
StdSingle, NoMap > 		Traits_
typedef StdSingle< typename
NoMap< ElementType >
::OutputType_ > 		ConverterType_
typedef ConverterType_::InputType_ | InputType_
typedef ConverterType_::OutputType_ | OutputType_

Public Member Functions

Bounded (const string &name, const ElementType &bound1)
Constructs a key accepting values which are bounded either from below or from above.
Bounded (const string &name, const ElementType &bound1, const ElementType &bound2)
Constructs a key accepting values which are bounded both from below and from above.
void | checkOutput (ElementType element) const
Compares element against the bound(s).
string | getName () const
Gets Key's name.
void | setName (const string &name)
Sets name.
ElementType | map (const value::Variant &variant) const
Performs the mapping.

Private Attributes

const Bound1< ElementType > | bound1_
const Bound2< ElementType > | bound2_

Detailed Description

template<typename ElementType, template< typename > class Bound1, template< typename > class Bound2 = NoBound>
class keyvalue::key::Bounded< ElementType, Bound1, Bound2 >

Key for bounded values.

This is a template class for keys corresponding to bounded values.

This template is used, for instance, to define keys accepting double values in intervals. More generally, a value x of type ElementType will be accepted if, and only if,

  • bound1_::check(x) = true; and
  • bound2_::check(x) = true;

where bound1_ and bound2_ are instances (for ElementType) of bound template classes Bound1 and Bound2, resp.

Bound template classes implement the method check whose signature is

bool
check(const ElementType& x) const;

This method compares its argument against a bound fixed at construction time and returns true or false depending on whether the argument is in the bound or not.

The following bound template classes are implemented:

  • NoBound (used only as a default value for Bound2);
  • Less;
  • Leq;
  • Greater;
  • Geq.

Bound1 cannot be NoBound and, by default, Bound2 is NoBound.

The two bounds are passed to constructors. If Bound2 is NoBound, then only bound1 must be provided (otherwise the compiler will complain).

Example 1: Consider a key for weights. It accepts only double values (strictly) greater than 0.0, the template instance and the key definition would be

Bounded<double, Greater> weight("Weight", 0.0);

Example 2: A key for probabilities may accept only double values in the interval [0,1]:

Bounded<double, Geq, Leq> probability("Probability", 0.0, 1.0);

Parameters:
ElementType | : (template parameter) See description above;
Comp1 | : (template parameter) 1st comparison class;
Comp2 | : (template parameter) 2nd comparison class.

Constructor & Destructor Documentation

Bounded | ( | const string & | name,
 |  | const ElementType & | bound1 |
 | ) |  |  | [inline]

Constructs a key accepting values which are bounded either from below or from above.

Parameters:
name | : The key name;
bound1 | : Bound which values are compared against (through Bound1).
Bounded | ( | const string & | name,
 |  | const ElementType & | bound1,
 |  | const ElementType & | bound2 |
 | ) |  |  | [inline]

Constructs a key accepting values which are bounded both from below and from above.

Parameters:
name | : The key name;
bound1 | : First bound which values are compared against (through by Bound1);
bound2 | : Second bound which values are compared against (through by Bound2).

Member Function Documentation

void checkOutput ( ElementType element ) const [inline]

Compares element against the bound(s).

Parameters:
element : Element to be checked.
Exceptions:
RuntimeError : If element is out of bound(s).
string getName ( ) const [inherited]

Gets Key's name.

Returns:
The Key's name.

Reimplemented from Key.

void setName ( const string & name ) [inherited]

Sets name.

Parameters:
name : The name.
ElementType map ( const value::Variant & variant ) const [inherited]

Performs the mapping.

This method retrieves the content of value::Variant and, by considering enabled lexical convertions, converts it to Output. (See LexicalToolKit documentation.)

Parameters:
variant : A value::Variant containing the input to be mapped.
Returns:
The mapping result.
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Bridge Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::Bridge

Bridge Class Reference

Bridge's specific data. More...

#include "keyvalue/bridge/Bridge.h"

List of all members.

Public Member Functions

const char * | getCoreLibraryName () const
Gets core library's name.
const char * | getSimpleInfo () const
Gets an info message about the core library.
const char * | getCompleteInfo () const
Gets an info message about the core library.

Static Public Member Functions

static Bridge & | getInstance ()
Gets the unique instance of this class.

Detailed Description

Bridge's specific data.

This class is a singleton which is used to get information on the core library.

Member Function Documentation

static Bridge& getInstance ( ) [static]

Gets the unique instance of this class.

Returns:
The unique instance of this class.
const char* getCoreLibraryName ( ) const

Gets core library's name.

This method is not implemented by KeyValue. Indeed, it must be implemented by bridge library since it provides core library specific information which are unavailable here.

The return must be a single word, otherwise, some front-ends will get in trouble.

Returns:
The core library's name.
const char* getSimpleInfo ( ) const

Gets an info message about the core library.

This method is not implemented by KeyValue. Indeed, it must be implemented by bridge library since it provides core library specific information which are unavailable here.

It should return a single line message. For larger messages use method getCompleteInfo().

Returns:
The info message.
const char* getCompleteInfo ( ) const

Gets an info message about the core library.

This method is not implemented by KeyValue. Indeed, it must be implemented by bridge library since it provides core library specific information which are unavailable here.

Returns:
The info message.
Generated on Sat Mar 20 14:14:51 2010 for KeyValue by doxygen 1.6.1


KeyValue: Builder< ObjectType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::Builder

Builder< ObjectType > Class Template Reference

Primary template class for Builder's specializations. More...

#include "keyvalue/mngt/Builder.h"

Inheritance diagram for Builder< ObjectType >:
[legend]

List of all members.

Public Member Functions

const char * | getName () const
Gets Builder's name.
value::Result | getResult (const DataSet &data) const
Gets result of processing a DataSet.
value::Result | getResult (const value::Variant &data) const
Gets result of processing a value::Variant.
virtual shared_ptr< ObjectType > | getObject (const DataSet &data) const
Gets the result of processing a DataSet.
virtual shared_ptr< ObjectType > | getObject (const value::Variant &data) const
Gets the result of processing a value::Variant.

Static Public Member Functions

static Builder & | getInstance ()
Gets the unique instance of a Builder specialization.

Static Protected Member Functions

static void | setGetter (Builder &(*getter)())
Sets the point of acess to the unique instance of a Builder specialization.

Static Private Member Functions

static Builder & | getSingleton ()
Gets the unique instance of a Builder specialization.

Static Private Attributes

static Builder &(* | getter_ )()

Detailed Description

template<typename ObjectType>
class keyvalue::Builder< ObjectType >

Primary template class for Builder's specializations.

Each builder constructs an object based on the information stored in a DataSet. In practice, a builder is a specialization of this template class which is parametrized on the type of object build.

Some methods are declared here but not implemented. Clients must implement missing methods in each specialization.

Parameters:
ObjectType : Type of object build by the builder.

Member Function Documentation

Builder< ObjectType > & getInstance ( ) [inline, static]

Gets the unique instance of a Builder specialization.

For each type of object there should be only one instance of a Builder specialization. Therefore, each Builder specialization is a singleton and this method provides a global point of access to it.

return A reference to the unique instance of a Builder specialization.

Reimplemented in XBuilder< ObjectType >.

const char* getName ( ) const [virtual]

Gets Builder's name.

The implementation must be provided by specializations. (For an example see keyvalue/bridge/processor/Logger.cpp.)

Returns:
The name.

Implements Processor.

value::Result getResult ( const DataSet & data ) const [inline, virtual]

Gets result of processing a DataSet.

A redirection to getObject(const DataSet& data).

Parameters:
data : DataSet to be processed.
Returns:
The result.

Implements Processor.

value::Result getResult ( const value::Variant & data ) const [inline, virtual]

Gets result of processing a value::Variant.

A redirection to getObject(const value::Variant& data).

Parameters:
data : value::Variant to be processed.
Returns:
The result.

Implements Processor.

virtual shared_ptr<ObjectType> getObject ( const DataSet & data ) const [virtual]

Gets the result of processing a DataSet.

The implementation must be provided by specializations. (For an example see keyvalue/bridge/processor/Logger.cpp.)

Parameters:
data : Input DataSet.
Returns:
A pointer to the object built.
shared_ptr< ObjectType > getObject ( const value::Variant & data ) const [inline, virtual]

Gets the result of processing a value::Variant.

The implementation provided here throws an exception to indicate that a Builder specialization cannot constructs the object given just a value::Variant input. Use XBuilder to make it possible.

Parameters:
data : Input value::Variant.
Returns:
N/A.
Exceptions:
RuntimeError : Always thrown. (See above.)

Reimplemented in XBuilder< ObjectType >.

void setGetter ( Builder< ObjectType > &(*)() getter ) [inline, static, protected]

Sets the point of acess to the unique instance of a Builder specialization.

Each specialization of this template class must be a singleton and the getInstance() method above gives acess to this unique instance.

However, trough public inheritance, a Buider specialization can be extended to an XBuilder one. In this case, the unique accesible instance of a Builder specialization must be an instance of an XBuilder specialization. Therefore, each XBuilder specialization must register itself as the provider of the unique instance of the Builder specialization which is returned by getInstance().

The registration is done by calling this method and providing a global point of access to the unique instance of the Builder specialization.

Parameters:
: A pointer to a funtion which returns a reference to the unique instance of a Builder specialization.
Builder< ObjectType > & getSingleton ( ) [inline, static, private]

Gets the unique instance of a Builder specialization.

By default, the global point of acess to the unique instace of a Builder specialization is this method. To change it one must use setGetter().

return A reference to the unique instance of a Builder specialization.

Reimplemented in XBuilder< ObjectType >.

Generated on Sat Mar 20 14:14:51 2010 for KeyValue by doxygen 1.6.1


KeyValue: Calculator< Tag > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::Calculator

Calculator< Tag > Class Template Reference

Primary template class for Calculator's specializations. More...

#include "keyvalue/mngt/Calculator.h"

Inheritance diagram for Calculator< Tag >:
[legend]

List of all members.

Public Member Functions

const char * | getName () const
Gets Calculator's name.
value::Result | getResult (const DataSet &data) const
Gets result of processing a DataSet.
value::Result | getResult (const value::Variant &data) const
Gets result of processing a value::Variant.
virtual value::Value | getValue (const DataSet &data) const
Gets the result of processing a DataSet.
virtual value::Value | getValue (const value::Variant &data) const
Gets the result of processing a value::Variant.

Static Public Member Functions

static Calculator & | getInstance ()
Gets the unique instance of a Calculator specialization.

Static Protected Member Functions

static void | setGetter (Calculator &(*getter)())
Sets the point of acess to the unique instance of a Calculator specialization.

Static Private Member Functions

static Calculator & | getSingleton ()
Gets the unique instance of a Calculator specialization.

Static Private Attributes

static Calculator &(* | getter_ )()

Detailed Description

template<typename Tag>
class keyvalue::Calculator< Tag >

Primary template class for Calculator's specializations.

Each calculator computes a value based on the information stored in a DataSet. In practice, a calculator is a specialization of this template class which is parametrized on the type of computation performed.

Some methods are declared here but not implemented. Clients must implement missing methods in each specialization.

Parameters:
Tag : Identifier used to distingush between different Calculators.

Member Function Documentation

Calculator< Tag > & getInstance ( ) [inline, static]

Gets the unique instance of a Calculator specialization.

For each type of computation there should be only one instance of a Calculator specialization. Therefore, each Calculator specialization is a singleton and this method provides a global point of access to it.

return A reference to the unique instance of a Calculator specialization.

Reimplemented in XCalculator< Tag >.

const char* getName ( ) const [virtual]

Gets Calculator's name.

Implementation must be provided by specializations. (For an example see keyvalue/bridge/processor/DataSetNames.cpp.)

Returns:
The name.

Implements Processor.

value::Result getResult ( const DataSet & data ) const [inline, virtual]

Gets result of processing a DataSet.

A redirection to getValue(const DataSet& data).

Parameters:
data : DataSet to be processed.
Returns:
The result.

Implements Processor.

value::Result getResult ( const value::Variant & data ) const [inline, virtual]

Gets result of processing a value::Variant.

A redirection to getValue(const value::Variant& data).

Parameters:
data : value::Variant to be processed.
Returns:
The result.

Implements Processor.

virtual value::Value getValue ( const DataSet & data ) const [virtual]

Gets the result of processing a DataSet.

Implementation must be provided by specializations. (For an example see keyvalue/bridge/processor/DataSetNames.cpp.)

Parameters:
data : Input DataSet.
Returns:
The calculated value.
value::Value getValue ( const value::Variant & data ) const [inline, virtual]

Gets the result of processing a value::Variant.

The implementation provided here throws an exception to indicate that a Calculator specialization cannot constructs the object given just a value::Variant input. Use XCalculator to make it possible.

Parameters:
data : Input value::Variant.
Returns:
The calculated value.

Reimplemented in XCalculator< Tag >.

void setGetter ( Calculator< Tag > &(*)() getter ) [inline, static, protected]

Sets the point of acess to the unique instance of a Calculator specialization.

Each specialization of this template class must be a singleton and the getInstance() method above gives acess to this unique instance.

However, trough public inheritance, a Buider specialization can be extended to an XCalculator one. In this case, the unique accesible instance of a Calculator specialization must be an instance of an XCalculator specialization. Therefore, each XCalculator specialization must register itself as the provider of the unique instance of the Calculator specialization which is returned by getInstance().

The registration is done by calling this method and providing a global point of access to the unique instance of the Calculator specialization.

Parameters:
: A pointer to a funtion which returns a reference to the unique instance of a Calculator specialization.
Calculator< Tag > & getSingleton ( ) [inline, static, private]

Gets the unique instance of a Calculator specialization.

By default, the global point of acess to the unique instace of a Calculator specialization is this method. To change it one must use setGetter().

return A reference to the unique instance of a Calculator specialization.

Reimplemented in XCalculator< Tag >.

Generated on Sat Mar 20 14:14:52 2010 for KeyValue by doxygen 1.6.1


KeyValue: Checker< ConverterType, InputType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Checker

Checker< ConverterType, InputType > Class Template Reference

Primary key checker template class. More...

#include "keyvalue/key/Checker.h"

Detailed Description

template<typename ConverterType, typename InputType = typename ConverterType::InputType_>
class keyvalue::key::Checker< ConverterType, InputType >

Primary key checker template class.

As said in Traits documentation, in some circumstances, a value associated to a key must pass some sanity check. This test is one step of the value processing step as explained in Record::getProcessedValue() and is done through this template class.

It is easy to see that a specialization for each input type is needed. Indeed, a value::Vector, for instance, may be rejected or validate according to its dimension. On the other hand, checking dimensionality for a value::Single is meaningless. This template class takes the type parameter ConverterType from which it can recover the input type.

Checks are done by specializations methods. Real keys are derived from Traits which, in turn, derives from instances of this template class. Therefore, one can set up the checks to be performed by overhiding Check's methods. Bear in mind that, default implementations validate all values.

Parameters:
ConverterType | : (template parameter) Defines the container converter.
InputType | : Converter's input type. Provided default value must not be changed.
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Checker< ConverterType, value::Matrix > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Checker< ConverterType, value::Matrix >

Checker< ConverterType, value::Matrix > Class Template Reference

Specialization of Checker for InputType equal to value::Matrix. More...

#include "keyvalue/key/Checker.h"

List of all members.

Public Types

typedef ConverterType::OutputType_ | OutputType_

Public Member Functions

void | checkInput (const value::Matrix &input) const
Check input.
void | checkSoFar (const ConverterType &container) const
Check conversion process so far.
void | checkOutput (const OutputType_ &output) const
Check output.

Private Member Functions

virtual string | getName () const =0
Get Key's name.
virtual void | checkSize (size_t nRows, size_t nCols) const
Check input size.

Detailed Description

template<typename ConverterType>
class keyvalue::key::Checker< ConverterType, value::Matrix >

Specialization of Checker for InputType equal to value::Matrix.

Member Function Documentation

void checkInput ( const value::Matrix & input ) const [inline]

Check input.

The current implementation calls checkSize().

Parameters:
input : Data to be checked.
void checkSoFar ( const ConverterType & container ) const [inline]

Check conversion process so far.

Parameters:
container : The container.
void checkOutput ( const OutputType_ & output ) const [inline]

Check output.

Parameters:
output : Data to be checked.
virtual string getName ( ) const [private, pure virtual]

Get Key's name.

Returns:
The Key's name.
void checkSize | ( | size_t | nRows,
 |  | size_t | nCols |
 | ) |  |  | const [inline, private, virtual]

Check input size.

Parameters:
nRows | : Number of input rows;
nCols | : Number of input columns.
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Checker< ConverterType, value::Single > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Checker< ConverterType, value::Single >

Checker< ConverterType, value::Single > Class Template Reference

Specialization of Checker for InputType equal to value::Single. More...

#include "keyvalue/key/Checker.h"

List of all members.

Public Types

typedef ConverterType::OutputType_ | OutputType_

Public Member Functions

void | checkInput (const value::Single &input) const
Checks input.
void | checkSoFar (const ConverterType &container) const
Checks conversion process so far.
void | checkOutput (const OutputType_ &output) const
Checks output.

Private Member Functions

virtual string | getName () const =0
Gets Key's name.

Detailed Description

template<typename ConverterType>
class keyvalue::key::Checker< ConverterType, value::Single >

Specialization of Checker for InputType equal to value::Single.

Member Function Documentation

void checkInput ( const value::Single & input ) const [inline]

Checks input.

Parameters:
input : Data to be checked.
void checkSoFar ( const ConverterType & container ) const [inline]

Checks conversion process so far.

Although this method is very likely to be useless when input data is value::Single, this is not the case for other types of input data. For sake of generality, this must be implemented.

Parameters:
container : The container.
void checkOutput ( const OutputType_ & output ) const [inline]

Checks output.

Parameters:
output : Data to be checked.
virtual string getName ( ) const [private, pure virtual]

Gets Key's name.

Returns:
The Key's name.
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Checker< ConverterType, value::Vector > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Checker< ConverterType, value::Vector >

Checker< ConverterType, value::Vector > Class Template Reference

Specialization of Checker for InputType equal to value::Vector. More...

#include "keyvalue/key/Checker.h"

List of all members.

Public Types

typedef ConverterType::OutputType_ | OutputType_

Public Member Functions

void | checkInput (const value::Vector &input) const
Check input.
void | checkSoFar (const ConverterType &container) const
Check conversion process so far.
void | checkOutput (const OutputType_ &output) const
Check output.

Private Member Functions

virtual string | getName () const =0
Get Key's name.
virtual void | checkSize (size_t size) const
Check input size.

Detailed Description

template<typename ConverterType>
class keyvalue::key::Checker< ConverterType, value::Vector >

Specialization of Checker for InputType equal to value::Vector.

Member Function Documentation

void checkInput ( const value::Vector & input ) const [inline]

Check input.

The current implementation calls checkSize().

Parameters:
input : Data to be checked.
void checkSoFar ( const ConverterType & container ) const [inline]

Check conversion process so far.

Parameters:
container : The container.
void checkOutput ( const OutputType_ & output ) const [inline]

Check output.

Parameters:
output : Data to be checked.
virtual string getName ( ) const [private, pure virtual]

Get Key's name.

Returns:
The Key's name.
void checkSize ( size_t size ) const [inline, private, virtual]

Check input size.

Parameters:
size : Input size.
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: ConsoleLogger Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::logger::ConsoleLogger

ConsoleLogger Class Reference

Implements a console Logger. More...

#include "keyvalue/sys/logger/ConsoleLogger.h"

List of all members.

Public Member Functions

ConsoleLogger (unsigned int level, string title)

Detailed Description

Implements a console Logger.

Essentially this class is either a WindowsConsole or a XtermConsole, depending on the OS.

Generated on Sat Mar 20 14:15:09 2010 for KeyValue by doxygen 1.6.1


KeyValue: DataSet Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::DataSet

DataSet Class Reference

A named map from keys to values. More...

#include "keyvalue/mngt/DataSet.h"

List of all members.

Classes

struct | Graph
Simplified dependency graph. More...
struct | Record
A wrapper around a value::Value. More...

Public Member Functions

DataSet (const string &name)
Constructs an empty DataSet with a given name.
string | getName () const
Gets DataSet's name.
void | add (const string &key, const value::Value &value)
Adds a key-value pair to the DataSet.
template<typename KeyType >
KeyType::OutputType_ * | find (const KeyType &key) const
Checks if key can be found.
template<typename KeyType >
KeyType::OutputType_ | getValue (const KeyType &key) const
Gets and processes value associated to a key.
value::Result | process () const
Processes a DataSet.
value::Result | process (const Processor &processor) const
Processes a DataSet provided the Processor.
bool | mustUpdate () const
Checks if there is need for redoing the processing.

Private Types

typedef std::map< string,
shared_ptr< Record > > 		MapType_
typedef MapType_::value_type | ValueType_

Private Member Functions

Graph | getGraph (const string &key, bool start=true) const
Calculate the simplified dependency graph of a key.
Graph | getGraph (shared_ptr< Record > first, const string &key) const
value::Result | doProcess (const Processor &processor) const

Private Attributes

string | name_
MapType_ | map_
bool | mustUpdate_
value::Result | result_

Friends

std::ostream & | operator<< (std::ostream &os, const DataSet &dataSet)
ostream operator<<() for DataSet.

Detailed Description

A named map from keys to values.

Constructor & Destructor Documentation

DataSet ( const string & name ) [explicit]

Constructs an empty DataSet with a given name.

Parameters:
name : The DataSet's name.

Member Function Documentation

string getName ( ) const

Gets DataSet's name.

Returns:
The name of this DataSet.
void add | ( | const string & | key,
 |  | const value::Value & | value
 | ) |  |

Adds a key-value pair to the DataSet.

Parameters:
key | : The key;
value | : The value.
KeyType::OutputType_ * find ( const KeyType & key ) const [inline]

Checks if key can be found.

This method checks if a key can be resolved. If resolution fails, then a null pointer is returned.

On the other hand. if resolution succeeds, this method processes the value associated to the key and in case of success a pointer to the processed value is returned. If the processing fails an exception indicating the error will be thrown.

This method is similar to getValue() below since both give access to the processed value corresponding to a specific key. The difference is how they report resolution failure. While find() returns a null pointer, getValue() throws an exception.

This method gives to the user the ability to set default values for unsolved keys:

// DataSet data;
// ...
// const key::Single<bool> keyIsRegular("IsRegular");

bool isRegular(true); // Set default value
if (bool* ptr = data.find(keyIsRegular))
   isRegular = *ptr;

Parameters:
key : The key to be checked.
Returns:
If the key can be found, this method returns a pointer to the corresponding processed value. Otherwise it returns a null pointer.

Set dependency graph.

Memoization.

Check input container type.

Process raw value.

Cache output.

KeyType::OutputType_ getValue ( const KeyType & key ) const [inline]

Gets and processes value associated to a key.

Parameters:
KeyType | : (template parameter) Key's dynamic type;
key | : Key associated to the value to be retrieved.
Returns:
Processed value which is associated to key.
value::Result process ( ) const

Processes a DataSet.

Gets the processor for this DataSet and If key::Processor can be resolved for this DataSet, then the corresponding Processor (retrieved from ProcessorMngr) will be passed to process(const Processor& processor).

Returns:
Tesult of processing or a null pointer.
Exceptions:
RuntimeError : If key::Processor cannot be resolved or the processor is not registered.
value::Result process ( const Processor & processor ) const

Processes a DataSet provided the Processor.

If key::Processor can be resolved for this DataSet and its corresponding value matches a given Processor's name, then this Processor (obtained from ProcessorMngr) will be called an the result will be returned. Otherwise, an exception will be thrown.

Parameters:
processor : The Processor for this DataSet.
Returns:
The result of processing.

ProcessDefault : When one tries to process "Default" DataSet.

Exceptions:
RuntimeError : When the processing cannot be performed (see description above).
bool mustUpdate ( ) const

Checks if there is need for redoing the processing.

The two process() methods, pass this DataSet to the relevant Processor which will query for values through find() and getValue(). The memoization technique is applied: The DataSet will cache those values along the processing result. If the same processing is requested again, then the same values will be retrieved a second time.

The Processor can call this method which will compare the new and old (cached) set of values. If they agree this method returns false indicating that the result of previous processing is up to date and the Processor may return immediately.

Returns:
This method returns true if cached result of previous processing is out of date. Otherwise, it returns false.
Graph getGraph | ( | const string & | key,
 |  | bool | start = true |
 | ) |  |  | const [private]

Calculate the simplified dependency graph of a key.

If a key K1 depends on K2 which, in turn depends on K3, an so on up to Kn, then this method goes through all this dependency graph and returns a simplified version of it containing a pointer to K1 and another to Kn. Additionally, when walking through the graph this method checks if any of the nodes has changed since the last time this graph was calculated.

Parameters:
key | : The starting key (K1 above);
start | : This method is recursive and must be able to detected the root instance (called from outside) from the others (called by itself). This flag by default is set to true to indicate calling from outside.

Friends And Related Function Documentation

std::ostream& operator<< | ( | std::ostream & | os,
 |  | const DataSet & | dataSet |
 | ) |  |  | [friend]

ostream operator<<() for DataSet.

Generated on Sat Mar 20 14:14:52 2010 for KeyValue by doxygen 1.6.1


KeyValue: Debug Class Reference

  • Class List
  • Class Hierarchy
  • Class Members

Debug Class Reference

MessageImpl instance used for debug messages. More...

#include "keyvalue/sys/message/MessageImpl.h"

Detailed Description

MessageImpl instance used for debug messages.

typedef MessageImpl<4> Debug;

Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Decreasing Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Decreasing

Decreasing Class Reference

Decreasing monotone class. More...

#include "keyvalue/key/generic/monotone/Decreasing.h"

List of all members.

Static Public Member Functions

template<typename ElementType >
static bool | check (const ElementType &x, const ElementType &y)
Performs the comparison.
static const char * | getName ()
Gets type name.

Detailed Description

Decreasing monotone class.

Given two consecutive values of a sequence, x[i] and x[i+1], this class checks if x[i] >= x[i+1].

Member Function Documentation

static bool check | ( | const ElementType & | x,
 |  | const ElementType & | y |
 | ) |  |  | [inline, static]

Performs the comparison.

Parameters:
x | : 1st value to be checked;
y | : 2nd value to be checked.
ElementType | : (template parameter) Type of x and y. Accepted types are double, ptime, string and unsigned int. (Other types will generate a link error.)
Returns:
(x >= y).
static const char* getName ( ) [static]

Gets type name.

Returns:
"decreasing".
Generated on Sat Mar 20 14:15:00 2010 for KeyValue by doxygen 1.6.1


KeyValue: Default< OutputType > Struct Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Default

Default< OutputType > Struct Template Reference

Meta-function which defines Traits' default map type. More...

#include "keyvalue/key/map/Default.h"

Detailed Description

template<typename OutputType>
struct keyvalue::key::Default< OutputType >

Meta-function which defines Traits' default map type.

When OutputType is a basic type or an enum, then NoMap is selected. Otherwise, ObjectMap is choosen.

Parameters:
OutputType : (template parameter) See Traits documentation.
Generated on Sat Mar 20 14:15:05 2010 for KeyValue by doxygen 1.6.1


KeyValue: DefaultMap< OutputType, isBasic > Struct Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::DefaultMap

DefaultMap< OutputType, isBasic > Struct Template Reference

Meta-function which defines Traits' default map type. More...

#include "keyvalue/key/map/Default.h"

Detailed Description

template<typename OutputType, bool isBasic = util::IsBasic<OutputType>::value_>
struct keyvalue::key::DefaultMap< OutputType, isBasic >

Meta-function which defines Traits' default map type.

When isBasic is true then NoMap<Output> is selected. Otherwise, ObjectMap<Output> is choosen.

Parameters:
OutputType | : (template parameter) See Traits documentation;
isBasic | : (template parameter) Says if OutputType is basic or enum type. It has a default value which must not be changed. (See util::isBasic for details.)
Return values:
Map_ : The selected map.
Generated on Sat Mar 20 14:15:05 2010 for KeyValue by doxygen 1.6.1


KeyValue: Device Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Device

Device Class Reference

Device key. More...

#include "keyvalue/bridge/key/Device.h"

Inheritance diagram for Device:
[legend]

List of all members.

Public Types

enum
typedef Traits
< logger::Logger::Device,
StdSingle, FlagMap > 		Traits_
typedef StdSingle< typename
FlagMap
< logger::Logger::Device >
::OutputType_ > 		ConverterType_
typedef ConverterType_::InputType_ | InputType_
typedef ConverterType_::OutputType_ | OutputType_

Public Member Functions

logger::Logger::Device | get (const string &name) const
Partially maps names into flags.
string | getName () const
Gets Key's name.
void | setName (const string &name)
Sets name.
logger::Logger::Device | map (const value::Variant &variant) const
Performs the mapping.

Detailed Description

Device key.

Key's name is "Device".

Member Function Documentation

logger::Logger::Device get ( const string & name ) const [virtual]

Partially maps names into flags.

Maps "Console", "File", and "Standard", resp., to Console, File, and Standard.

Parameters:
name : Name to be mapped;
Returns:
Flag corresponding to name.
Exceptions:
RuntimeError : If name is unknown.

Implements FlagMap< logger::Logger::Device >.

string getName ( ) const [inherited]

Gets Key's name.

Returns:
The Key's name.

Reimplemented from Key.

void setName ( const string & name ) [inherited]

Sets name.

Parameters:
name : The name.
logger::Logger::Device map ( const value::Variant & variant ) const [inherited]

Performs the mapping.

This method converts the input from value::Variant to string and calls get().

Parameters:
variant : A value::Variant containing the input string to be mapped.
Returns:
The mapping result.
Generated on Sat Mar 20 14:14:57 2010 for KeyValue by doxygen 1.6.1


KeyValue: Error Class Reference

  • Class List
  • Class Hierarchy
  • Class Members

Error Class Reference

MessageImpl instance used for error messages. More...

#include "keyvalue/sys/message/MessageImpl.h"

Detailed Description

MessageImpl instance used for error messages.

typedef MessageImpl<0> Error;

Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Exception Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::exception::Exception

Exception Class Reference

Base protocol class for all exceptions. More...

#include "keyvalue/sys/exception/Exception.h"

Inheritance diagram for Exception:
[legend]

List of all members.

Public Member Functions

Exception ()
Constructor (of course!).
virtual const char * | what () const =0
Gets an explanatory C string message about the exception.
virtual const Message & | getMessage () const =0
Gets the inner Message object stored by the exception.

Detailed Description

Base protocol class for all exceptions.

Constructor & Destructor Documentation

Exception ( )

Constructor (of course!).

Tip: Since all KeyValue exceptions are derived from this class, whenever an exception is created, this constructor is called. Hence, when debugging, if you wish to trace a thrown an exception, then place a breakpoint inside the constructor and take a look at the call stack.

Member Function Documentation

virtual const char* what ( ) const [pure virtual]

Gets an explanatory C string message about the exception.

This methods exists for compatibility with std::exception::what(). Through a pointer or reference to either Exception or std::exception it is possible to get the same explanatory message.

By maintaining compatibility with std::exception::what(), KeyValue exceptions can be catch by many already implemented exception handlers. However, it is preferable to use KeyValue's exception management. In particular the method getMessage() is a better alternative to this one.

Returns:
A C null terminated char string with a explanatory message about the exception.

Implemented in ExceptionImpl< StdExcept, MessageType >.

virtual const Message& getMessage ( ) const [pure virtual]

Gets the inner Message object stored by the exception.

Recall that Message objects carry more than just an explanatory text about the exception. It also contains extra information like its prefix and color, which allows a nicer presentation by a logger::Logger.

Returns:
The inner Message object.

Implemented in ExceptionImpl< StdExcept, MessageType >.

Generated on Sat Mar 20 14:14:56 2010 for KeyValue by doxygen 1.6.1


KeyValue: ExceptionImpl< StdExcept, MessageType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::exception::ExceptionImpl

ExceptionImpl< StdExcept, MessageType > Class Template Reference

Concrete template class which implements Exception's pure virtual methods. More...

#include "keyvalue/sys/exception/Exception.h"

Inheritance diagram for ExceptionImpl< StdExcept, MessageType >:
[legend]

List of all members.

Public Member Functions

const Message & | getMessage () const
Gets the inner Message.
const char * | what () const throw ()
Gets a C string describing the exception.
template<typename DataType >
ExceptionImpl & | operator& (const DataType &data)
Appends formated data to a given exception.

Private Attributes

MessageType | message_
string | str_

Detailed Description

template<typename StdExcept, typename MessageType>
class keyvalue::exception::ExceptionImpl< StdExcept, MessageType >

Concrete template class which implements Exception's pure virtual methods.

Parameters:
StdExcept | : (template parameter) Standard exception class that this class derives from (either std::runtime_error or std::logic_error);
MessageType | : (template parameter) Type of inner Message object that might be gotten by getMessage().

Member Function Documentation

const Message & getMessage ( ) const [inline, virtual]

Gets the inner Message.

Implements Exception.

const char * what ( ) const throw () [inline, virtual]

Gets a C string describing the exception.

Implements Exception.

ExceptionImpl< StdExcept, MessageType > & operator& ( const DataType & data ) [inline]

Appends formated data to a given exception.

Recall that this class has a Message member. This method appends data to that member (see Message::operator&).

The typical use for this method is as follows:

if (price <= 0.0)
   throw RuntimeError() & "Invalid price. Expecting a positive number. Got " & price;

Parameters:
DataType | : (template parameter) The type of data to be appended. This parameter is automatically deduced by the compiler and may be ignored by the user.
exception | : The exception that data should be appended to;
data | : The data to be appended.
Returns:
The exception with appended data.
Generated on Sat Mar 20 14:14:57 2010 for KeyValue by doxygen 1.6.1


KeyValue: Export Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Export

Export Class Reference

Export key. More...

#include "keyvalue/key/specific/Export.h"

Inheritance diagram for Export:
[legend]

List of all members.

Public Types

enum
typedef Traits< bool,
StdSingle, Default > 		Traits_
typedef StdSingle< typename
Default< bool >::OutputType_ > 		ConverterType_
typedef ConverterType_::InputType_ | InputType_
typedef ConverterType_::OutputType_ | OutputType_

Public Member Functions

Export ()
Constructs key and sets its name.
string | getName () const
Gets Key's name.
void | setName (const string &name)
Sets name.

Detailed Description

Export key.

Key's name is "Export".

Constructor & Destructor Documentation

Export ( )

Constructs key and sets its name.

Member Function Documentation

string getName ( ) const [inherited]

Gets Key's name.

Returns:
The Key's name.

Reimplemented from Key.

void setName ( const string & name ) [inherited]

Sets name.

Parameters:
name : The name.
Generated on Sat Mar 20 14:15:05 2010 for KeyValue by doxygen 1.6.1


KeyValue: Failure Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::frontend::LexicalToolKit::Failure

Failure Class Reference

This class is thrown when LexicalToolKit::convert() fails. More...

#include "keyvalue/frontend/LexicalToolKit.h"

Inherits exception::RuntimeError.

Detailed Description

This class is thrown when LexicalToolKit::convert() fails.

Generated on Sat Mar 20 14:14:57 2010 for KeyValue by doxygen 1.6.1


KeyValue: FileLogger Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::logger::FileLogger

FileLogger Class Reference

Implements a file Logger. More...

#include "keyvalue/sys/logger/FileLogger.h"

Inheritance diagram for FileLogger:
[legend]

List of all members.

Public Types

typedef LoggerImpl< AddPrefix,
IgnoreColor,
ForwardToGlobalLogger > 		LoggerImpl_
enum | Device { Console, File, Standard }

Public Member Functions

FileLogger (unsigned int level, const string &fileName)
unsigned int | getLevel () const
Gets Logger's current level.
void | setLevel (unsigned int level)
Sets Logger's current level.
bool | log (const Message &message)
Logs a Message.

Protected Member Functions

bool | sendHeader ()
Sends the header message.

Private Member Functions

bool | send (const string &message)
Sends a raw string message to the Logger's underlying device.

Private Attributes

std::ofstream | output_

Detailed Description

Implements a file Logger.

Member Function Documentation

bool send ( const string & message ) [private, virtual]

Sends a raw string message to the Logger's underlying device.

Parameters:
message : Message to be sent.
Returns:
This method returns false if it fails. Otherwise, it returns true.

Implements LoggerImpl<>.

unsigned int getLevel ( ) const [virtual, inherited]

Gets Logger's current level.

Returns:
The level.

Implements Logger.

void setLevel ( unsigned int level ) [virtual, inherited]

Sets Logger's current level.

Parameters:
level : New level.

Implements Logger.

bool log ( const Message & message ) [virtual, inherited]

Logs a Message.

This method may fail if the implemented Logger cannot process the message (e.g. a console Logger that has no longer a console window).

Parameters:
message : Message to be logged.
Returns:
This method returns true if it is successful.

Implements Logger.

bool sendHeader ( ) [protected, inherited]

Sends the header message.

This method sends (throw send()) an opening header message to the underlying device of the Logger.

Returns:
This method returns what print() does.
Generated on Sat Mar 20 14:15:10 2010 for KeyValue by doxygen 1.6.1


KeyValue: FileRaii Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::logger::XtermConsole::FileRaii

FileRaii Class Reference

XtermConsole's helper class for file management. More...

List of all members.

Public Member Functions

FileRaii (const int fd=-1)
FileRaii & | operator= (const int fd)
void | close ()
int | getFd () const

Private Attributes

int | fd_

Detailed Description

XtermConsole's helper class for file management.

This private class deals with (C) low level file descriptors needed by XtermConsole.

Generated on Sat Mar 20 14:15:16 2010 for KeyValue by doxygen 1.6.1


KeyValue: FlagMap< OutputType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::FlagMap

FlagMap< OutputType > Class Template Reference

Maps names to constants. More...

#include "keyvalue/key/map/FlagMap.h"

List of all members.

Public Types

typedef OutputType | OutputType_

Public Member Functions

OutputType | map (const value::Variant &variant) const
Performs the mapping.
virtual OutputType | get (const string &name) const =0
Performs the mapping from string to Output.

Private Member Functions

virtual string | getName () const =0
Gets Key's name.

Detailed Description

template<typename OutputType>
class keyvalue::key::FlagMap< OutputType >

Maps names to constants.

A string is mapped to a flag (normally an enum). Consider, for instance, key::Device which specifies a logger::Logger type to be build. Users provide a string either "Console", "File" or "Standard". However, inside keyvalue, devices are designated by key::Device::Flag. An error occurs when a string cannot be mapped to a valid output.

Traits derived classes which uses this map must implement a method to perform the mapping. This method has the following signature

OutputType get(const string& name) const;

Parameters:
OutputType : (template parameter) Output type.
Return values:
OutputType_ : Same as OutputType.

Member Function Documentation

OutputType map ( const value::Variant & variant ) const [inline]

Performs the mapping.

This method converts the input from value::Variant to string and calls get().

Parameters:
variant : A value::Variant containing the input string to be mapped.
Returns:
The mapping result.
virtual OutputType get ( const string & name ) const [pure virtual]

Performs the mapping from string to Output.

Must be implemented by real keys which use this map.

Parameters:
name : The string to be mapped.
Returns:
The mapping result.

Implemented in Device, and VectorOutput.

virtual string getName ( ) const [private, pure virtual]

Gets Key's name.

Returns:
The Key's name.

Implemented in Traits< VectorOutputBase::Flag, StdSingle, FlagMap >, and Traits< logger::Logger::Device, StdSingle, FlagMap >.

Generated on Sat Mar 20 14:15:05 2010 for KeyValue by doxygen 1.6.1


KeyValue: ForwardToGlobalLogger Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::logger::ForwardToGlobalLogger

ForwardToGlobalLogger Class Reference

Defines a policy to apply when the Logger fails to process a Message, namely, forward it to GlobalLogger. More...

#include "keyvalue/sys/logger/policy/ForwardToGlobalLogger.h"

Inheritance diagram for ForwardToGlobalLogger:
[legend]

List of all members.

Protected Member Functions

bool | apply (const Logger *logger, const Message &message) const
Applies ForwardToGlobalLogger policy.

Private Member Functions

void | forward (const Logger *logger, const Message &message) const
Forwards a Message to GlobalLogger.

Detailed Description

Defines a policy to apply when the Logger fails to process a Message, namely, forward it to GlobalLogger.

If the GlobalLogger is the one that fails, it is very likely that it can no longer receive Messages. For that reason, this policy resets GlobalLogger to its default(which supposedly never fails) before the forwarding.

Member Function Documentation

bool apply | ( | const Logger * | logger,
 |  | const Message & | message |
 | ) |  |  | const [protected]

Applies ForwardToGlobalLogger policy.

Returns:
This method returns false to indicate the previous failure.
void forward | ( | const Logger * | logger,
 |  | const Message & | message |
 | ) |  |  | const [private]

Forwards a Message to GlobalLogger.

This method receives a (raw) pointer to the Logger that has failed. If this pointer points to GlobalLogger's current registered Logger, then this method resets the GlobalLogger to its default Logger (which supposedly never fails).

Parameters:
logger | : A pointer to the Logger which has failed;
message | : The message to be forwarded.
Generated on Sat Mar 20 14:15:13 2010 for KeyValue by doxygen 1.6.1


KeyValue: FrontEnd Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::frontend::FrontEnd

FrontEnd Class Reference

Front-end's specific data. More...

#include "keyvalue/frontend/FrontEnd.h"

List of all members.

Public Member Functions

string & | path ()
Accessor to the path where the library is loaded.
LexicalToolKit & lexicalToolKit ()
Accessor to the FrontEnd's lexical converter.

Static Public Member Functions

static FrontEnd & | getInstance ()
Gets the unique instance of this class.

Private Attributes

string | path_
LexicalToolKit | lexicalToolKit_

Detailed Description

Front-end's specific data.

This class is a singleton which each front-end must set up before using keyvalue library.

Member Function Documentation

static FrontEnd& getInstance ( ) [static]

Gets the unique instance of this class.

Returns:
The unique instance of this class.
string& path ( )

Accessor to the path where the library is loaded.

Returns:
The path.
LexicalToolKit& lexicalToolKit ( )

Accessor to the FrontEnd's lexical converter.

Returns:
The lexical converter.
Generated on Sat Mar 20 14:14:57 2010 for KeyValue by doxygen 1.6.1


KeyValue: Geq< ElementType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Geq

Geq< ElementType > Class Template Reference

Greater-than-or-equal-to bound class. More...

#include "keyvalue/key/generic/bound/Geq.h"

List of all members.

Public Member Functions

Geq (const ElementType &bound)
Constructs and sets bound.
bool | check (const ElementType &x) const
Performs the check.
const ElementType & | getBound () const
Gets bound value.
const char * | getName () const
Gets comparison name.

Private Attributes

const ElementType | bound_

Detailed Description

template<typename ElementType>
class keyvalue::key::Geq< ElementType >

Greater-than-or-equal-to bound class.

Given a value x this class checks if x >= bound, where bound is fixed at construction time.

Parameters:
ElementType : (template parameter) Type of bound. Accepted types are double, ptime, string and unsigned int. (Other types will generate a link error.)

Constructor & Destructor Documentation

Geq ( const ElementType & bound ) [explicit]

Constructs and sets bound.

Parameters:
bound : The bound value.

Member Function Documentation

bool check ( const ElementType & x ) const

Performs the check.

Parameters:
x : Value to be checked.
Returns:
x >= bound.
const ElementType& getBound ( ) const

Gets bound value.

Returns:
The bound.
const char* getName ( ) const

Gets comparison name.

Returns:
This method returns "greater than or equal to" unless ElementType is ptime, in which case it returns "latter than or equal to".
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Global Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Global

Global Class Reference

Global key. More...

#include "keyvalue/bridge/key/Global.h"

Inheritance diagram for Global:
[legend]

List of all members.

Public Types

enum
typedef Traits< bool,
StdSingle, Default > 		Traits_
typedef StdSingle< typename
Default< bool >::OutputType_ > 		ConverterType_
typedef ConverterType_::InputType_ | InputType_
typedef ConverterType_::OutputType_ | OutputType_

Public Member Functions

Global ()
Constructs key and set its name.
string | getName () const
Gets Key's name.
void | setName (const string &name)
Sets name.

Detailed Description

Global key.

Key's name is "Global".

Constructor & Destructor Documentation

Global ( )

Constructs key and set its name.

Member Function Documentation

string getName ( ) const [inherited]

Gets Key's name.

Returns:
The Key's name.

Reimplemented from Key.

void setName ( const string & name ) [inherited]

Sets name.

Parameters:
name : The name.
Generated on Sat Mar 20 14:14:58 2010 for KeyValue by doxygen 1.6.1


KeyValue: GlobalLogger Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::logger::GlobalLogger

GlobalLogger Class Reference

The global logger class. More...

#include "keyvalue/sys/logger/GlobalLogger.h"

Inheritance diagram for GlobalLogger:
[legend]

List of all members.

Public Types

enum | Device { Console, File, Standard }

Public Member Functions

unsigned int | getLevel () const
Gets Logger's current level.
void | setLevel (unsigned int level)
Sets Logger's current level.
bool | log (const Message &message)
Logs a Message.

Static Public Member Functions

static GlobalLogger & | getInstance ()
Gets the unique instance of this class.
static shared_ptr< Logger > | get ()
Gets registered Logger.
static void | set (shared_ptr< Logger > logger)
Registers a new Logger.
static void | reset ()
Resets the GlobalLogger to its initial state (StdLogger).

Private Attributes

StdLogger | defaultLogger_
shared_ptr< Logger > | theLogger_

Detailed Description

The global logger class.

This class is not a particular Logger implementation. Actually, it is a wrapper to the currently registered Logger.

This class is a singleton that is constructed only when the GlobalLogger issolicited for the first time. On construction, a StdLogger is registered as the GlobalLogger. Later on, other Logger can be registered.

Member Function Documentation

unsigned int getLevel ( ) const [virtual]

Gets Logger's current level.

Returns:
The level.

Implements Logger.

void setLevel ( unsigned int level ) [virtual]

Sets Logger's current level.

Parameters:
level : New level.

Implements Logger.

bool log ( const Message & message ) [virtual]

Logs a Message.

This method may fail if the implemented Logger cannot process the message (e.g. a console Logger that has no longer a console window).

Parameters:
message : Message to be logged.
Returns:
This method returns true if it is successful.

Implements Logger.

static GlobalLogger& getInstance ( ) [static]

Gets the unique instance of this class.

return A reference to the unique instance.

static shared_ptr<Logger> get ( ) [static]

Gets registered Logger.

Returns:
A pointer to registered Logger.
static void set ( shared_ptr< Logger > logger ) [static]

Registers a new Logger.

WARNING: When this method is called, any previous reference/pointer to the previous registered Logger is invalidated. Hence, avoid such references and pointers.

Parameters:
logger : Pointer to the Logger to be registered.
static void reset ( ) [static]

Resets the GlobalLogger to its initial state (StdLogger).

WARNING: If this method is called by one of the current registered Logger's method, the calling Logger may cease to exist immediately (it suicides). If this happens the calling Logger can no longer access any of its non static members.

Generated on Sat Mar 20 14:15:11 2010 for KeyValue by doxygen 1.6.1


KeyValue: Graph Struct Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::DataSet::Graph

Graph Struct Reference

Simplified dependency graph. More...

List of all members.

Public Member Functions

Graph (shared_ptr< Record > first, shared_ptr< Record > last, bool hasChanged)

Public Attributes

shared_ptr< Record > | first_
shared_ptr< Record > | last_
bool | hasChanged_

Detailed Description

Simplified dependency graph.

Keys might import their values from other keys. This reference system creates complex dependencies between different keys. This struct is a very simplified version of the dependency tree of a key. (See getGraph().)

Generated on Sat Mar 20 14:14:52 2010 for KeyValue by doxygen 1.6.1


KeyValue: Greater< ElementType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Greater

Greater< ElementType > Class Template Reference

Greater-than bound class. More...

#include "keyvalue/key/generic/bound/Greater.h"

List of all members.

Public Member Functions

Greater (const ElementType &bound)
Constructs and sets bound.
bool | check (const ElementType &x) const
Performs the check.
const ElementType & | getBound () const
Gets bound value.
const char * | getName () const
Gets comparison name.

Private Attributes

const ElementType | bound_

Detailed Description

template<typename ElementType>
class keyvalue::key::Greater< ElementType >

Greater-than bound class.

Given a value x this class checks if x > bound, where bound is fixed at construction time.

Parameters:
ElementType : (template parameter) Type of bound. Accepted types are double, ptime, string and unsigned int. (Other types will generate a link error.)

Constructor & Destructor Documentation

Greater ( const ElementType & bound ) [explicit]

Constructs and sets bound.

Parameters:
bound : The bound value.

Member Function Documentation

bool check ( const ElementType & x ) const

Performs the check.

Parameters:
x : Value to be checked.
Returns:
x > bound.
const ElementType& getBound ( ) const

Gets bound value.

Returns:
The bound.
const char* getName ( ) const

Gets comparison name.

Returns:
This method returns "greater than" unless ElementType is ptime, in which case it returns "latter than".
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Helper< From, To > Struct Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::frontend::LexicalToolKit::Helper

Helper< From, To > Struct Template Reference

Helper class of LexicalToolKit. More...

#include <LexicalToolKit.h>

List of all members.

Public Types

typedef To(* | Type_ )(const From &)

Static Public Attributes

static Type_ LexicalToolKit::* | converter_
static IO LexicalToolKit::* | io_

Detailed Description

template<typename From, typename To>
struct keyvalue::frontend::LexicalToolKit::Helper< From, To >

Helper class of LexicalToolKit.

This is a meta-function that returns pointers to LexicalToolkit members corresponding to a specific conversion.

Parameters:
From | : (template parameter) conversion input type;
To | : (template parameter) conversion output type.
Return values:
Type_ | : The converter type;
converter_ | : Pointer to LexicalToolkit's converter member;
io_ | : Pointer to LexicalToolkit's direction member.
Generated on Sat Mar 20 14:14:57 2010 for KeyValue by doxygen 1.6.1


KeyValue: IgnoreColor Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::logger::IgnoreColor

IgnoreColor Class Reference

Defines a policy for Message colors, which is, to ignore them. More...

#include "keyvalue/sys/logger/policy/IgnoreColor.h"

Inheritance diagram for IgnoreColor:
[legend]

List of all members.

Protected Member Functions

bool apply (const Message &) const

Detailed Description

Defines a policy for Message colors, which is, to ignore them.

Generated on Sat Mar 20 14:15:14 2010 for KeyValue by doxygen 1.6.1


KeyValue: IgnoreFailure Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::logger::IgnoreFailure

IgnoreFailure Class Reference

Defines a policy to apply when the logger fails, which is, to ignore the failure. More...

#include "keyvalue/sys/logger/policy/IgnoreFailure.h"

List of all members.

Protected Member Functions

bool apply (const Message &message) const
Applies IgnoreFailure policy.

Detailed Description

Defines a policy to apply when the logger fails, which is, to ignore the failure.

WARNING: This is a dangerous policy to apply. Use with caution (or do not use at all).

Member Function Documentation

bool apply ( const Message & message ) const [protected]

Applies IgnoreFailure policy.

Returns:
This method returns true to ignore previous failure.
Generated on Sat Mar 20 14:15:14 2010 for KeyValue by doxygen 1.6.1


KeyValue: IgnorePrefix Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::logger::IgnorePrefix

IgnorePrefix Class Reference

Defines a policy for Message prefixes, which is, to ignore them. More...

#include "keyvalue/sys/logger/policy/IgnorePrefix.h"

List of all members.

Protected Member Functions

bool apply (const Message &) const

Detailed Description

Defines a policy for Message prefixes, which is, to ignore them.

Generated on Sat Mar 20 14:15:14 2010 for KeyValue by doxygen 1.6.1


KeyValue: Imports Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Imports

Imports Class Reference

Imports key. More...

#include "keyvalue/key/specific/Imports.h"

Inheritance diagram for Imports:
[legend]

List of all members.

Public Types

enum
typedef Traits< string,
StdVector, Default > 		Traits_
typedef StdVector< typename
Default< string >::OutputType_ > 		ConverterType_
typedef ConverterType_::InputType_ | InputType_
typedef ConverterType_::OutputType_ | OutputType_

Public Member Functions

Imports ()
Constructs key and sets its name.
string | getName () const
Gets Key's name.
void | setName (const string &name)
Sets name.

Detailed Description

Imports key.

Key's name is "Imports".

Constructor & Destructor Documentation

Imports ( )

Constructs key and sets its name.

Member Function Documentation

string getName ( ) const [inherited]

Gets Key's name.

Returns:
The Key's name.

Reimplemented from Key.

void setName ( const string & name ) [inherited]

Sets name.

Parameters:
name : The name.
Generated on Sat Mar 20 14:15:06 2010 for KeyValue by doxygen 1.6.1


KeyValue: Increasing Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Increasing

Increasing Class Reference

Increasing monotone class. More...

#include "keyvalue/key/generic/monotone/Increasing.h"

List of all members.

Static Public Member Functions

template<typename ElementType >
static bool | check (const ElementType &x, const ElementType &y)
Performs the comparison.
static const char * | getName ()
Gets type name.

Detailed Description

Increasing monotone class.

Given two consecutive values of a sequence, x[i] and x[i+1], this class checks if x[i] <= x[i+1].

Member Function Documentation

static bool check | ( | const ElementType & | x,
 |  | const ElementType & | y |
 | ) |  |  | [inline, static]

Performs the comparison.

Parameters:
x | : 1st value to be checked;
y | : 2nd value to be checked.
ElementType | : (template parameter) Type of x and y. Accepted types are double, ptime, string and unsigned int. (Other types will generate a link error.)
Returns:
(x <= y).
static const char* getName ( ) [static]

Gets type name.

Returns:
"increasing".
Generated on Sat Mar 20 14:15:00 2010 for KeyValue by doxygen 1.6.1


KeyValue: Info Class Reference

  • Class List
  • Class Hierarchy
  • Class Members

Info Class Reference

MessageImpl instance used for info messages. More...

#include "keyvalue/sys/message/MessageImpl.h"

Detailed Description

MessageImpl instance used for info messages.

typedef MessageImpl<1> Info;

Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: IsBasic< ElementType > Struct Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::util::IsBasic

IsBasic< ElementType > Struct Template Reference

This meta-function checks if a type is either bool, double, string, ptime or unsigned int or not. More...

#include "keyvalue/util/IsBasic.h"

List of all members.

Public Types

enum { value_ = 0 }

Detailed Description

template<typename ElementType>
struct keyvalue::util::IsBasic< ElementType >

This meta-function checks if a type is either bool, double, string, ptime or unsigned int or not.

Parameters:
ElementType : The type to be checked.
Return values:
IsBasic<ElementType>::value_ : 1 if ElementType is either bool, double, string, ptime or unsigned int; 0 otherwise.
Generated on Sat Mar 20 14:15:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: IsBasicOrEnum< ElementType > Struct Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::util::IsBasicOrEnum

IsBasicOrEnum< ElementType > Struct Template Reference

This meta-function checks if a type is either bool, double, string, ptime, unsigned int or enum or not. More...

#include "keyvalue/util/IsBasic.h"

List of all members.

Public Types

enum { value_ }

Detailed Description

template<typename ElementType>
struct keyvalue::util::IsBasicOrEnum< ElementType >

This meta-function checks if a type is either bool, double, string, ptime, unsigned int or enum or not.

Parameters:
ElementType : The type to be checked.
Return values:
IsBasic<ElementType>::value_ : 1 if ElementType is either bool, double, string, ptime, unsigned int or enum; 0 otherwise.
Generated on Sat Mar 20 14:15:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: Key Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Key

Key Class Reference

Base for all real keys. More...

#include "keyvalue/key/Key.h"

Inheritance diagram for Key:
[legend]

List of all members.

Public Member Functions

string | getName () const
Gets name.
void | setName (const string &name)
Sets name.

Protected Member Functions

Key (const string &name)
Constructs a Key with a specific name.

Private Attributes

string | name_

Detailed Description

Base for all real keys.

Every Key has a (string) name, which is used by DataSet::getValue() for value look-up. The name must be provided on construction.

Instead of directly derive from this class, any class encapsulating information on keys must derive from Traits template which, in turn, derives from this class.

Constructor & Destructor Documentation

Key ( const string & name ) [protected]

Constructs a Key with a specific name.

Parameters:
name : The name.

Member Function Documentation

string getName ( ) const

Gets name.

Returns:
The name.

Reimplemented in Traits< ElementType, ConverterType, MapType >, Traits< ElementType, StdMatrix >, Traits< VectorOutputBase::Flag, StdSingle, FlagMap >, Traits< logger::Logger::Device, StdSingle, FlagMap >, Traits< ElementType, StdVector, NoMap >, Traits< double, StdSingle, NoMap >, Traits< string, StdVector >, Traits< unsigned int >, Traits< ElementType, StdSingle, NoMap >, Traits< string >, Traits< bool >, Traits< ElementType >, and Traits< ElementType, StdVector >.

void setName ( const string & name )

Sets name.

Parameters:
name : The name.
Generated on Sat Mar 20 14:15:05 2010 for KeyValue by doxygen 1.6.1


KeyValue: KeyInSingle Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::pattern::KeyInSingle

KeyInSingle Class Reference

Pattern where a value::Single object, recognized as a key, is followed by any value::Value. More...

#include "keyvalue/pattern/KeyInSingle.h"

Inheritance diagram for KeyInSingle:
[legend]

List of all members.

Public Member Functions

bool | parse (frontend::Queue &queue)
Parses the beginning of a frontend::Queue.
std::pair< string, value::Value > | pop ()
Gets and removes the next stored key-value pair.
bool | isEmpty () const
Checks if the list of recognized key-value pairs is empty.

Private Attributes

bool | isEmpty_
string | key_
value::Value | value_

Detailed Description

Pattern where a value::Single object, recognized as a key, is followed by any value::Value.

The content of value::Value object will be the value associated to the key. No further checks are performed.

Member Function Documentation

bool parse ( frontend::Queue & queue ) [virtual]

Parses the beginning of a frontend::Queue.

When a pattern is recognized, the value::Value objects which make it are removed from frontend::Queue and all corresponding key-value pairs are stored inside the this class for later queries.

Parameters:
queue : frontend::Queue to be parsed.
Returns:
If the pattern is recognized, then this method returns true. Otherwise, it returns false.

Implements Pattern.

std::pair<string, value::Value> pop ( ) [virtual]

Gets and removes the next stored key-value pair.

The debug version checks if there is any key-value pair be popped (by calling isEmpty()) and throw an exception when the check fails. Release version has undefined behavior when the list is empty.

Returns:
The key-value pair.
Exceptions:
LogicError : (Debug build only) When the list is empty.

Implements Pattern.

bool isEmpty ( ) const [virtual]

Checks if the list of recognized key-value pairs is empty.

Returns:
If the list is empty, this method returns true. Otherwise, it returns false.

Implements Pattern.

Generated on Sat Mar 20 14:15:17 2010 for KeyValue by doxygen 1.6.1


KeyValue: KeysInMatrix Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::pattern::KeysInMatrix

KeysInMatrix Class Reference

Pattern made by a value::Matrix where all elements either in the first row or in the first column are keys. More...

#include "keyvalue/pattern/KeysInMatrix.h"

Inheritance diagram for KeysInMatrix:
[legend]

List of all members.

Public Member Functions

bool | parse (frontend::Queue &queue)
Parses the beginning of a frontend::Queue.
std::pair< string, value::Value > | pop ()
Gets and removes the next stored key-value pair.
bool | isEmpty () const
Checks if the list of recognized key-value pairs is empty.

Private Member Functions

bool | check (const value::Matrix &matrix, bool transpose=false)
This method does all the job explained in the class description.

Private Attributes

size_t | next_
vector< std::pair< string,
value::Value > > 		data_

Detailed Description

Pattern made by a value::Matrix where all elements either in the first row or in the first column are keys.

More precisely, it is checked if the value::Matrix, M=M(i, j), has the following properties:

  • M has at least two rows;
  • M(0, j) is a key for all j;
  • M(1, 0) is not a key.

If M pass this check, then for each column of M, its first entry will be a key corresponding to the value given by the value::Vector (or value::Single, when M has only two rows) made by the other entries in this column. If M does not pass the check above, then the same test and key-value pattern parsing is performed on its transpose.

Member Function Documentation

bool parse ( frontend::Queue & queue ) [virtual]

Parses the beginning of a frontend::Queue.

When a pattern is recognized, the value::Value objects which make it are removed from frontend::Queue and all corresponding key-value pairs are stored inside the this class for later queries.

Parameters:
queue : frontend::Queue to be parsed.
Returns:
If the pattern is recognized, then this method returns true. Otherwise, it returns false.

Implements Pattern.

std::pair<string, value::Value> pop ( ) [virtual]

Gets and removes the next stored key-value pair.

The debug version checks if there is any key-value pair be popped (by calling isEmpty()) and throw an exception when the check fails. Release version has undefined behavior when the list is empty.

Returns:
The key-value pair.
Exceptions:
LogicError : (Debug build only) When the list is empty.

Implements Pattern.

bool isEmpty ( ) const [virtual]

Checks if the list of recognized key-value pairs is empty.

Returns:
If the list is empty, this method returns true. Otherwise, it returns false.

Implements Pattern.

bool check | ( | const value::Matrix & | matrix,
 |  | bool | transpose = false |
 | ) |  |  | [private]

This method does all the job explained in the class description.

Parameters:
matrix | : Input matrix;
transpose | : If true, the the test is performed on matrix transpose.
Returns:
This method returns true if the pattern is recognized. Otherwise it returns false.
Generated on Sat Mar 20 14:15:17 2010 for KeyValue by doxygen 1.6.1


KeyValue: KeysInVector Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::pattern::KeysInVector

KeysInVector Class Reference

Pattern made by a value::Vector whose entries are keys followed by a value::Vector or value::Matrix. More...

#include "keyvalue/pattern/KeysInVector.h"

Inheritance diagram for KeysInVector:
[legend]

List of all members.

Public Member Functions

bool | parse (frontend::Queue &queue)
Parses the beginning of a frontend::Queue.
std::pair< string, value::Value > | pop ()
Gets and removes the next stored key-value pair.
bool | isEmpty () const
Checks if the list of recognized key-value pairs is empty.

Private Attributes

size_t | next_
vector< std::pair< string,
value::Value > > 		data_

Detailed Description

Pattern made by a value::Vector whose entries are keys followed by a value::Vector or value::Matrix.

The pattern is defined by a value::Vector K, where all entries are keys, followed by a value::Value object V which is either a value::Vector or value::Matrix such that

  • V has n rows if K is a column value::Vector of size n;
  • V has n columns if K is a row value::Vector of size n.

In the first case the n-th row of V (which is either a value::Single or a row value::Vector) is considered the value associated to the n-th key in K.

Similarly, in the second case the n-th column of V is the value associated to the n-th key in K.

Member Function Documentation

bool parse ( frontend::Queue & queue ) [virtual]

Parses the beginning of a frontend::Queue.

When a pattern is recognized, the value::Value objects which make it are removed from frontend::Queue and all corresponding key-value pairs are stored inside the this class for later queries.

Parameters:
queue : frontend::Queue to be parsed.
Returns:
If the pattern is recognized, then this method returns true. Otherwise, it returns false.

Implements Pattern.

std::pair<string, value::Value> pop ( ) [virtual]

Gets and removes the next stored key-value pair.

The debug version checks if there is any key-value pair be popped (by calling isEmpty()) and throw an exception when the check fails. Release version has undefined behavior when the list is empty.

Returns:
The key-value pair.
Exceptions:
LogicError : (Debug build only) When the list is empty.

Implements Pattern.

bool isEmpty ( ) const [virtual]

Checks if the list of recognized key-value pairs is empty.

Returns:
If the list is empty, this method returns true. Otherwise, it returns false.

Implements Pattern.

Generated on Sat Mar 20 14:15:18 2010 for KeyValue by doxygen 1.6.1


KeyValue: Leq< ElementType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Leq

Leq< ElementType > Class Template Reference

Less-than-or-equal-to bound class. More...

#include "keyvalue/key/generic/bound/Leq.h"

List of all members.

Public Member Functions

Leq (const ElementType &bound)
Constructs and sets bound.
bool | check (const ElementType &x) const
Performs the check.
const ElementType & | getBound () const
Gets bound value.
const char * | getName () const
Gets comparison name.

Private Attributes

const ElementType | bound_

Detailed Description

template<typename ElementType>
class keyvalue::key::Leq< ElementType >

Less-than-or-equal-to bound class.

Given a value x this class checks if x <= bound, where bound is fixed at construction time.

Parameters:
ElementType : (template parameter) Type of bound. Accepted types are double, ptime, string and unsigned int. (Other types will generate a link error.)

Constructor & Destructor Documentation

Leq ( const ElementType & bound ) [explicit]

Constructs and sets bound.

Parameters:
bound : The bound value.

Member Function Documentation

bool check ( const ElementType & x ) const

Performs the check.

Parameters:
x : Value to be checked.
Returns:
x <= bound.
const ElementType& getBound ( ) const

Gets bound value.

Returns:
The bound.
const char* getName ( ) const

Gets comparison name.

Returns:
This method returns "less than or equal to" unless ElementType is ptime, in which case it returns "earlier than or equal to".
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Less< ElementType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Less

Less< ElementType > Class Template Reference

Less-than bound class. More...

#include "keyvalue/key/generic/bound/Less.h"

List of all members.

Public Member Functions

Less (const ElementType &bound)
Constructs and sets bound.
bool | check (const ElementType &x) const
Performs the check.
const ElementType & | getBound () const
Gets bound value.
const char * | getName () const
Gets comparison name.

Private Attributes

const ElementType | bound_

Detailed Description

template<typename ElementType>
class keyvalue::key::Less< ElementType >

Less-than bound class.

Given a value x this class checks if x < bound, where bound is fixed at construction time.

Parameters:
ElementType : (template parameter) Type of bound. Accepted types are double, ptime, string and unsigned int. (Other types will generate a link error.)

Constructor & Destructor Documentation

Less ( const ElementType & bound ) [explicit]

Constructs and sets bound.

Parameters:
bound : The bound value.

Member Function Documentation

bool check ( const ElementType & x ) const

Performs the check.

Parameters:
x : Value to be checked.
Returns:
x > bound.
const ElementType& getBound ( ) const

Gets bound value.

Returns:
The bound.
const char* getName ( ) const

Gets comparison name.

Returns:
This method returns "less than" unless ElementType is ptime, in which case it returns "earlier than".
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Level Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Level

Level Class Reference

Level key. More...

#include "keyvalue/bridge/key/Level.h"

Inheritance diagram for Level:
[legend]

List of all members.

Public Types

enum
typedef Traits< unsigned int,
StdSingle, Default > 		Traits_
typedef StdSingle< typename
Default< unsigned int >
::OutputType_ > 		ConverterType_
typedef ConverterType_::InputType_ | InputType_
typedef ConverterType_::OutputType_ | OutputType_

Public Member Functions

Level ()
Constructs key and sets its name.
string | getName () const
Gets Key's name.
void | setName (const string &name)
Sets name.

Detailed Description

Level key.

Key's name is "Level".

Constructor & Destructor Documentation

Level ( )

Constructs key and sets its name.

Member Function Documentation

string getName ( ) const [inherited]

Gets Key's name.

Returns:
The Key's name.

Reimplemented from Key.

void setName ( const string & name ) [inherited]

Sets name.

Parameters:
name : The name.
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: LexicalToolKit Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::frontend::LexicalToolKit

LexicalToolKit Class Reference

Manager of all lexical converters needed for front-end input/output. More...

#include "keyvalue/frontend/LexicalToolKit.h"

List of all members.

Classes

class | Failure
This class is thrown when LexicalToolKit::convert() fails. More...
struct | Helper
Helper class of LexicalToolKit. More...

Public Types

enum | IO { none = 0x0, input = 0x1, output = 0x2, both = 0x3 }

Direction of conversion.

More...

Public Member Functions

LexicalToolKit ()
Default constructor.
template<typename From , typename To >
void | set (IO io, typename Helper< From, To >::Type_ converter=util::Lexical)
Sets a converter function pointer.
template<typename From , typename To >
bool | isEnabled (IO io) const
Checks if a specific conversion is enabled.
template<typename To , typename From >
To | convert (From input) const
Performs a conversion.

Private Attributes

char | endInitList

Detailed Description

Manager of all lexical converters needed for front-end input/output.

This class stores pointers to several lexical conversion functions from/to different types. Possible conversions are:

  • bool <--> double; (*)
  • bool <--> string; (*)
  • double <--> ptime;
  • double <--> string; (*)
  • ptime <--> string.

Those pointers can be changed to customized converters which must have the following signature:

To function(From)

where From and To are the input and output types, resp.

Some conversions might fail (e.g. from string "foo" to any other type) in which case the converter should throw an exception.

Conversions marked with (*) have a quite natural meaning (e.g from string "True" to bool true). For such conversions this class provides default converter (see util::Lexical) that can (if the user wishes so), be chosen (through set()) as the official converter.

Member Enumeration Documentation

enum IO

Direction of conversion.

See documentation of set();

Constructor & Destructor Documentation

LexicalToolKit ( )

Default constructor.

By default, all conversion function pointers are null.

Member Function Documentation

void set | ( | IO | io,
 |  | typename Helper< From, To >::Type_ | converter = util::Lexical |
 | ) |  |  | [inline]

Sets a converter function pointer.

Parameters From and To specify, resp., the input and output types of the conversion function pointer to be changed.

A lexical conversion may be need for library input or output. The parameter io defines if the corresponding conversion is set for input, output or both.

This function takes a pointer, converter, to a conversion function. If no pointer is provided, then the default converter (see util::Lexical) is used. If a null pointer is passed, then the corresponding conversion is disabled.

Parameters:
From | : (template parameter) the input type;
To | : (template parameter) the output type;
converter | : Pointer to the conversion function;
io | : Direction the conversion is set to.
bool isEnabled ( IO io ) const [inline]

Checks if a specific conversion is enabled.

This template function checks if the From to To convertion is enabled in the io direction.

Parameters:
From | : (template parameter) the input type;
To | : (template parameter) the output type;
io | : Conversion direction.
Returns:
This method returns true if the conversion is enabled. Otherwise it returns false.
Exceptions:
LogicError : (Debug build only) if io is invalid.
To convert ( From input ) const [inline]

Performs a conversion.

Parameters From and To specify, resp., the input and output types of the required conversion. Notice that, in general, compilers are able to deduce From type and, hence it can be omitted. Therefore a typical use for this method looks like

LexicalToolKit lt;
double x = 3.141592654;
string s = lt.convert<string>(x);

Parameters:
From | : (template parameter) the input type;
To | : (template parameter) the output type;
input | : Value to be converted.
Returns:
The conversion result.
Exceptions:
LogicError | : (Debug build only) if the required conversion is disabled.
Failure | : If required conversion fails.

Member Data Documentation

char endInitList [private]

Using the X Macro technique in the constructor initialization list will produce a list of members ending in a comma. It cannot be the end of the list, otherwise, together with the following constructor's body open brace will get a syntax error. We need at least one extra member following by an space (not comma).

Generated on Sat Mar 20 14:14:57 2010 for KeyValue by doxygen 1.6.1


KeyValue: Logger Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::logger::Logger

Logger Class Reference

Protocol class which defines the interface for all types of logger. More...

#include "keyvalue/sys/logger/Logger.h"

Inheritance diagram for Logger:
[legend]

List of all members.

Public Types

enum | Device { Console, File, Standard }

Public Member Functions

virtual unsigned int | getLevel () const =0
Gets Logger's current level.
virtual void | setLevel (unsigned int level)=0
Sets Logger's current level.
virtual bool | log (const Message &message)=0
Logs a Message.

Detailed Description

Protocol class which defines the interface for all types of logger.

Each Logger and each Message (except those of type Error) has a verbosity level. If a Logger of level m receives a Message of level n with m > n, then the Message is processed by the Logger. Otherwise it is ignored. Therefore, a 0-level Logger ignores every Message.

On the other hand, a Message of type Error is never ignored.

Member Function Documentation

virtual unsigned int getLevel ( ) const [pure virtual]

Gets Logger's current level.

Returns:
The level.

Implemented in GlobalLogger, LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy >, LoggerImpl<>, LoggerImpl< AddPrefix, XtermColor >, and LoggerImpl< AddPrefix, XtermColor, ForwardToGlobalLogger >.

virtual void setLevel ( unsigned int level ) [pure virtual]

Sets Logger's current level.

Parameters:
level : New level.

Implemented in GlobalLogger, LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy >, LoggerImpl<>, LoggerImpl< AddPrefix, XtermColor >, and LoggerImpl< AddPrefix, XtermColor, ForwardToGlobalLogger >.

virtual bool log ( const Message & message ) [pure virtual]

Logs a Message.

This method may fail if the implemented Logger cannot process the message (e.g. a console Logger that has no longer a console window).

Parameters:
message : Message to be logged.
Returns:
This method returns true if it is successful.

Implemented in GlobalLogger, LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy >, LoggerImpl<>, LoggerImpl< AddPrefix, XtermColor >, and LoggerImpl< AddPrefix, XtermColor, ForwardToGlobalLogger >.

Generated on Sat Mar 20 14:15:11 2010 for KeyValue by doxygen 1.6.1


KeyValue: LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::logger::LoggerImpl

LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > Class Template Reference

Abstract class which implements main methods of concrete Loggers. More...

#include "keyvalue/sys/logger/LoggerImpl.h"

Inheritance diagram for LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy >:
[legend]

List of all members.

Public Types

typedef LoggerImpl
< PrefixPolicy, ColorPolicy,
SafetyPolicy > 		LoggerImpl_
enum | Device { Console, File, Standard }

Public Member Functions

unsigned int | getLevel () const
Gets Logger's current level.
void | setLevel (unsigned int level)
Sets Logger's current level.
bool | log (const Message &message)
Logs a Message.

Protected Member Functions

LoggerImpl (unsigned int level)
bool | sendHeader ()
Sends the header message.

Private Member Functions

bool | process (const Message &message)
Processes a Message and send its text content to the Logger's underlying device.
virtual bool | send (const string &message)=0
Sends a raw string message to the Logger's underlying device.

Private Attributes

unsigned int | level_

Detailed Description

template<typename PrefixPolicy = AddPrefix, typename ColorPolicy = IgnoreColor, typename SafetyPolicy = ForwardToGlobalLogger>
class keyvalue::logger::LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy >

Abstract class which implements main methods of concrete Loggers.

This is a template class whose template parameters are policy classes that define how the Message has to be processed.

Parameters:
PrefixPolicy | : Define how to process Message prefixes;
ColorPolicy | : Define how to process Message colors;
SafetyPolicy | : Define what to do when the Logger fails.

Member Function Documentation

unsigned int getLevel ( ) const [inline, virtual]

Gets Logger's current level.

Returns:
The level.

Implements Logger.

void setLevel ( unsigned int level ) [inline, virtual]

Sets Logger's current level.

Parameters:
level : New level.

Implements Logger.

bool log ( const Message & message ) [inline, virtual]

Logs a Message.

This method may fail if the implemented Logger cannot process the message (e.g. a console Logger that has no longer a console window).

Parameters:
message : Message to be logged.
Returns:
This method returns true if it is successful.

Implements Logger.

bool sendHeader ( ) [inline, protected]

Sends the header message.

This method sends (throw send()) an opening header message to the underlying device of the Logger.

Returns:
This method returns what print() does.
bool process ( const Message & message ) [inline, private]

Processes a Message and send its text content to the Logger's underlying device.

This pure virtual method has to be implemented by each LoggerImpl. After processing the received Message this method should call send() to send the text content of the Message to the device of the Logger.

This method may fail if either any policy or the send() does so.

Parameters:
message : Message to be processed.
Returns:
This method returns false if it fails. Otherwise, it returns true.
virtual bool send ( const string & message ) [private, pure virtual]

Sends a raw string message to the Logger's underlying device.

Parameters:
message : Message to be sent.
Returns:
This method returns false if it fails. Otherwise, it returns true.

Implemented in FileLogger, WindowsConsole, and XtermConsole.

Generated on Sat Mar 20 14:15:12 2010 for KeyValue by doxygen 1.6.1


KeyValue: Logic Class Reference

  • Class List
  • Class Hierarchy
  • Class Members

Logic Class Reference

MessageImpl instance used for logic error messages. More...

#include "keyvalue/sys/message/MessageImpl.h"

Detailed Description

MessageImpl instance used for logic error messages.

typedef MessageImpl<0> Logic;

Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: LogicError Class Reference

  • Class List
  • Class Hierarchy
  • Class Members

LogicError Class Reference

Base class for all KeyValue exceptions occurring at development time. More...

#include "keyvalue/sys/exception/Exception.h"

Detailed Description

Base class for all KeyValue exceptions occurring at development time.

When a LogicError (or any of its derived classes) is thrown, it means there is a BUG.

typedef ExceptionImpl<std::logic_error, Logic> LogicError;

Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Matrix< ElementType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Matrix

Matrix< ElementType > Class Template Reference

Generic key whose converter type is StdMatrix. More...

#include "keyvalue/key/generic/Matrix.h"

Inheritance diagram for Matrix< ElementType >:
[legend]

List of all members.

Public Types

enum
typedef Traits< ElementType,
StdMatrix, Default > 		Traits_
typedef StdMatrix< typename
Default< ElementType >
::OutputType_ > 		ConverterType_
typedef ConverterType_::InputType_ | InputType_
typedef ConverterType_::OutputType_ | OutputType_

Public Member Functions

Matrix (const string &name)
Constructs the key and sets its name.
Matrix (const string &name, size_t nRows, size_t nCols_)
Constructs the key and sets its name and the expected dimension of the StdMatrix content.
string | getName () const
Gets Key's name.
void | setName (const string &name)
Sets name.

Private Member Functions

void | checkSize (size_t nRows, size_t nCols) const
Checks if given and expected dimensions match.

Private Attributes

size_t | nRows_
size_t | nCols_

Detailed Description

template<typename ElementType>
class keyvalue::key::Matrix< ElementType >

Generic key whose converter type is StdMatrix.

Parameters:
ElementType : (template parameter) Matrix element type.

Constructor & Destructor Documentation

Matrix ( const string & name ) [inline, explicit]

Constructs the key and sets its name.

Matrix | ( | const string & | name,
 |  | size_t | nRows,
 |  | size_t | nCols_ |
 | ) |  |  | [inline]

Constructs the key and sets its name and the expected dimension of the StdMatrix content.

Parameters:
name | : The key name;
nRows | : Expected number of rows;
nCols | : Expected number of columns.

Member Function Documentation

void checkSize | ( | size_t | nRows,
 |  | size_t | nCols |
 | ) |  |  | const [inline, private]

Checks if given and expected dimensions match.

Parameters:
nRows | : Expected number of rows;
nCols | : Expected number of columns.

RuntimeError : If given and expected dimension do not match.

string getName ( ) const [inherited]

Gets Key's name.

Returns:
The Key's name.

Reimplemented from Key.

void setName ( const string & name ) [inherited]

Sets name.

Parameters:
name : The name.
Generated on Sat Mar 20 14:15:00 2010 for KeyValue by doxygen 1.6.1


KeyValue: Matrix Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::value::Matrix

Matrix Class Reference

Matrix of Variants. More...

#include "keyvalue/value/Matrix.h"

Inheritance diagram for Matrix:
[legend]

List of all members.

Public Member Functions

Matrix (size_t nRows=1, size_t nCols=1)
Constructs a Matrix with a given dimension.
size_t | getNRows () const
Gets number of rows.
size_t | getNCols () const
Gets number of columns.
void | resize (size_t nRows, size_t nCols)
Resizes the matrix.
const Variant & | operator() (size_t i, size_t j) const
Provides access to the element in the i-th row and j-th column.
Variant & | operator() (size_t i, size_t j)
Non const operator()().
bool | operator== (const Matrix &rhs) const
Comparison operator.

Protected Member Functions

void | transposeVector ()
Transposes the matrix if one of its dimensions is 1.

Private Attributes

boost::intrusive_ptr< Impl > | pimpl_

Friends

void | intrusive_ptr_add_ref (Matrix::Impl *pimpl)
void | intrusive_ptr_release (Matrix::Impl *pimpl)

Detailed Description

Matrix of Variants.

Why yet another matrix class? The reason is the following. Key-value pattern recognition (see pattern::Pattern) is simplified if vector is publicly derived from matrix (a vector is either a m x 1 or a 1 x n matrix) and single is publicly derived from vector (a single is a one-dimensional vector).

Furthermore, this class and all its derived classes implement reference semantics when copying. That is, when a Matrix M is copied to a Matrix N, then changing N also changes M and reciprocally.

The reference semantics is implemented through the PImpl idiom which also make this class cheap to copy.

Constructor & Destructor Documentation

Matrix | ( | size_t | nRows = 1,
 |  | size_t | nCols = 1 |
 | ) |  |  | [explicit]

Constructs a Matrix with a given dimension.

If the number of rows or the number of columns is zero, then both are changed to 1. Hence, trying to build a 0 x n or m x 0 matrix ends up building a 1 x 1 matrix.

Parameters:
nRows | : number of rows;
nCols | : number of columns.

Member Function Documentation

size_t getNRows ( ) const

Gets number of rows.

Returns:
The number of rows.
size_t getNCols ( ) const

Gets number of columns.

Returns:
The number of columns.
void resize | ( | size_t | nRows,
 |  | size_t | nCols
 | ) |  |

Resizes the matrix.

The size of a matrix (i.e., number of rows times number of columns) can not increase. Debug build check for this and an exception is thrown when the test fails. Release build has undefined behavior in this case.

The contents of a matrix after resizing is undefined.

Parameters:
nRows | : number of rows;
nCols | : number of columns.
Exceptions:
LogicError : (Debug build only) If the new size is greater than the original one.
const Variant& operator() | ( | size_t | i,
 |  | size_t | j |
 | ) |  |  | const

Provides access to the element in the i-th row and j-th column.

Debug build perform bound checks and throws an exception on failure. Release build has undefined behavior in that case.

Parameters:
i | : Row index;
j | : Column index.
Returns:
A const reference to (i, j)-th element.
Exceptions:
LogicError : (Debug build only) If i is not smaller than the number of rows or j is not smaller than the number of columns.
Variant& operator() | ( | size_t | i,
 |  | size_t | j
 | ) |  |

Non const operator()().

bool operator== ( const Matrix & rhs ) const

Comparison operator.

Recall that Matrix has reference semantics. Consider the code:

Matrix m1(2,2);
m1(0,0) = m1(0,1) = m1(1,0) = m1(1,1) = 1.0;
Matrix m2(2,2); m2(0,0) = m2(0,1) = m2(1,0) = m2(1,1) = 1.0;
Matrix m3(m1);

Then m1 == m2 is false and m1 == m3 is true.

Parameters:
rhs : The Value to be compared against.
Returns:
This method returns true if *this and rhs refer to the same data. Otherwise it returns false.
void transposeVector ( ) [protected]

Transposes the matrix if one of its dimensions is 1.

In-place matrix transposition is a complicated stuff. See

http://en.wikipedia.org/wiki/In-place_matrix_transposition

However, since the storage is linear, the memory layouts of n x 1 and 1 x n matrix, are the same. Hence, we only need to swap dimensions. This method is intent to perform only this simple transposition and it is protected to be called by Vector which derives from this class.

Debug build checks if either of the dimensions is 1 and throws an exception if the test fails. Release build has undefined behaviour in that circumstance.

Exceptions:
LogicError : (Debug build only) If none of dimensions is 1.

Friends And Related Function Documentation

void intrusive_ptr_add_ref ( Matrix::Impl * pimpl ) [friend]

headerfile Matrix.h "keyvalue/value/Matrix.h"

brief Increment Matrix reference counting.

See documentation of intrusive_ptr in the Smart Ptr (Boost) library.

param Pointer to Matrix::Impl storing the counter.

void intrusive_ptr_release ( Matrix::Impl * pimpl ) [friend]

headerfile Matrix.h "keyvalue/value/Matrix.h"

brief Decrement Matrix reference counting.

See documentation of intrusive_ptr in the Smart Ptr (Boost) library.

param Pointer to Matrix::Impl storing the counter.

Generated on Sat Mar 20 14:15:20 2010 for KeyValue by doxygen 1.6.1


KeyValue: Message Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::Message

Message Class Reference

Abstract class which defines the interface for all types of message. More...

#include "keyvalue/sys/message/Message.h"

Inheritance diagram for Message:
[legend]

List of all members.

Public Member Functions

unsigned int | getLevel () const
Gets Message's level.
string | getString () const
Gets Message's text.
virtual const string & | getPrefix () const =0
Gets Message's prefix.
virtual logger::Color | getColor () const =0
Gets Message's color.
template<typename DataType >
Message & | operator& (const DataType &data)
Appends data to the end of message.

Protected Member Functions

Message (unsigned int level)
Constructs a Message with a given level.
Message (const Message &orig)

Static Protected Attributes

static const Traits_ | traits_ []

Private Member Functions

Message & | operator= (const Message &orig)

Private Attributes

unsigned int | level_
std::ostringstream | buf_

Detailed Description

Abstract class which defines the interface for all types of message.

Each Message has a level that defines if it will be ignored or not by the Logger which receives it. (For more details, see Logger documentation).

Constructor & Destructor Documentation

Message ( unsigned int level ) [explicit, protected]

Constructs a Message with a given level.

Parameters:
level : Message's level.

Member Function Documentation

unsigned int getLevel ( ) const

Gets Message's level.

Returns:
The level.
string getString ( ) const

Gets Message's text.

Returns:
The text.
virtual const string& getPrefix ( ) const [pure virtual]

Gets Message's prefix.

Returns:
The prefix.

Implemented in MessageImpl< id >.

virtual logger::Color getColor ( ) const [pure virtual]

Gets Message's color.

Returns:
The color.

Implemented in MessageImpl< id >.

Message & operator& ( const DataType & data ) [inline]

Appends data to the end of message.

This template method makes use of std::ostream::operator<<() to append data to this Message. Hence, the type of data DataType must be such that std::ostream::operator(ostream&, const DataType&) is well defined.

A typical use of this method is

Info info(1); // Info is derived from Message
size_t i;
std::vector<double> x;
// ...
info & "x[" & i & "] = " & x[i] & '\n';

Warning: For some reason, one cannot append std::endl to Message, despite the fact that a standard ostream can accept it!

Remark: It would be more natural using operator<< rather than operator&. However, the main use of operator& is related to exceptions (see ExceptionImpl documentation). Indeed, there is an operator& whose rhs is an exception and it just redirect its calling to this operator& defined here. In the past, keyvalue exceptions were derived from boost::exception which defines operator<< for other purposes. Therefore, operator& was prefered rather than operator<< to avoid conflict with boost. Be aware that, in the near future, if it is proven convenient, one might change operator& to operator<< again.

Parameters:
DataType | : (template parameter) type of data;
data | : the data to be appended.
Generated on Sat Mar 20 14:14:55 2010 for KeyValue by doxygen 1.6.1


KeyValue: MessageImpl< id > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::MessageImpl

MessageImpl< id > Class Template Reference

Implementation of class Message. More...

#include "keyvalue/sys/message/MessageImpl.h"

Inheritance diagram for MessageImpl< id >:
[legend]

List of all members.

Public Member Functions

MessageImpl ()
MessageImpl (unsigned int level)
const string & | getPrefix () const
Gets prefix associated this type of Message.
logger::Color | getColor () const
Gets the color associated this type of Message.
unsigned int | getLevel () const
Gets Message's level.
string | getString () const
Gets Message's text.
template<typename DataType >
Message & | operator& (const DataType &data)
Appends data to the end of message.

Static Protected Attributes

static const Traits_ | traits_ []

Private Member Functions

Message & | operator= (const MessageImpl &orig)

Detailed Description

template<unsigned int id>
class keyvalue::MessageImpl< id >

Implementation of class Message.

This template class provides default implementations for Message methods and extends its interface.

In this template class, parameter unsigned int id serves to distinguish specializations. Clients, rather than directly instantiate this template by providing id, will use provided typedefs for the following types of Messages:

  • Error;
  • Info;
  • Warning;
  • Report;
  • Debug.
Parameters:
id : (template parameter) Used to distinguish different specializations.

Constructor & Destructor Documentation

MessageImpl ( ) [inline]

ATTENTION: If you get a compiler error here about

'boostSTATIC_ASSERTION_FAILURE<x>'

this means that you have illegally construct an Info, Warning, Report, or Debug without providing its level.

Member Function Documentation

const string& getPrefix ( ) const [virtual]

Gets prefix associated this type of Message.

Returns:
The prefix.

Implements Message.

logger::Color getColor ( ) const [virtual]

Gets the color associated this type of Message.

Returns:
The prefix.

Implements Message.

unsigned int getLevel ( ) const [inherited]

Gets Message's level.

Returns:
The level.
string getString ( ) const [inherited]

Gets Message's text.

Returns:
The text.
Message & operator& ( const DataType & data ) [inline, inherited]

Appends data to the end of message.

This template method makes use of std::ostream::operator<<() to append data to this Message. Hence, the type of data DataType must be such that std::ostream::operator(ostream&, const DataType&) is well defined.

A typical use of this method is

Info info(1); // Info is derived from Message
size_t i;
std::vector<double> x;
// ...
info & "x[" & i & "] = " & x[i] & '\n';

Warning: For some reason, one cannot append std::endl to Message, despite the fact that a standard ostream can accept it!

Remark: It would be more natural using operator<< rather than operator&. However, the main use of operator& is related to exceptions (see ExceptionImpl documentation). Indeed, there is an operator& whose rhs is an exception and it just redirect its calling to this operator& defined here. In the past, keyvalue exceptions were derived from boost::exception which defines operator<< for other purposes. Therefore, operator& was prefered rather than operator<< to avoid conflict with boost. Be aware that, in the near future, if it is proven convenient, one might change operator& to operator<< again.

Parameters:
DataType | : (template parameter) type of data;
data | : the data to be appended.
Generated on Sat Mar 20 14:14:55 2010 for KeyValue by doxygen 1.6.1


KeyValue: MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::MonotoneBoundedVector

MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 > Class Template Reference

Key for monotone bounded vectors. More...

#include <MonotoneBoundedVector.h>

Inheritance diagram for MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 >:
[legend]

List of all members.

Public Types

enum
typedef Traits< ElementType,
StdVector, NoMap > 		Traits_
typedef StdVector< typename
NoMap< ElementType >
::OutputType_ > 		ConverterType_
typedef ConverterType_::InputType_ | InputType_
typedef ConverterType_::OutputType_ | OutputType_

Public Member Functions

MonotoneBoundedVector (const string &name, size_t size=0)
Constructs a MonotoneBoundedVector given its name and expected size.
MonotoneBoundedVector (const string &name, const ElementType &bound1, size_t size=0)
Constructs a MonotoneBoundedVector given its name, a bound and expected size.
MonotoneBoundedVector (const string &name, const ElementType &bound1, const ElementType &bound2, size_t size=0)
Constructs a MonotoneBoundedVector given its name, two bounds and expected size.
void | checkSoFar (const StdVector< ElementType > &container) const
Checks for monotonicity and boundness of the values.
void | checkSize (size_t size) const
Checks for the size of the vector of values.
string | getName () const
Gets Key's name.
void | setName (const string &name)
Sets name.
ElementType | map (const value::Variant &variant) const
Performs the mapping.

Private Attributes

const size_t | size_
const Bound1< ElementType > | bound1_
const Bound2< ElementType > | bound2_

Detailed Description

template<typename ElementType, typename Monotone, template< typename > class Bound1 = NoBound, template< typename > class Bound2 = NoBound>
class keyvalue::key::MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 >

Key for monotone bounded vectors.

This template is used for keys whose converter type is a StdVector holding a std::vector<ElementType> V (of size n) with bounded and ordered elements.

There are five types of monotonicity modeled by monotone classes:

  • NonMonotone (which means the no monotonicity);
  • Increasing;
  • StrictlyIncreasing;
  • Decreasing; and
  • StrictlyDecreasing.

Given a monotone class Monotone and two bound template classes Bound1 and Bound2 (See Bounded for more information on bound template classes), V will be accepted only if

  • n = 1 or V[i-1] and V[i] are in right order as defined by Monotone, for all i = 1, ..., n - 1;
  • bound1_::check(V[i]) = true for all i = 0, ..., n - 1; and
  • bound2_::check(V[i]) = true for all i = 0 ..., n - 1;

where bound1_ and bound2_ are instances (for ElementType) of bound template classes Bound1 and Bound2, resp.

Additionally, at construction time, the key name and the expected size of the V are fixed. At the time the value for this key is requested, V's size and its expected size are compared. If they do not match, then V is rejected.

Example 1: A key for a vector of dates in strictly increasing order:

MonotoneBoundedVector<ptime, StrictlyIncreasing> dates("Dates");

Example 2: A key for a vector of prices which accepts positive numbers.

MonotoneBoundedVector<double, NoBound, Geq> prices("Prices", 0.0);

Example 3: Same as in Example 2 but accepting only 10 elements:

MonotoneBoundedVector<double, NoBound, Geq> prices("Prices", 0.0, 10);

Example 4: A key for a vector of 5 decreasing numbers in the interval (-2,2):

MonotoneBoundedVector<double, Decreasing, Greater, Less> a("A", -2.0, 2.0, 5);

Parameters:
ElementType | : (template parameter) See description above;
Monotone | : (template parameter) Monotone class;
Bound1 | : (template parameter) 1st bound template class;
Bound2 | : (template parameter) 2nd bound template class.

Constructor & Destructor Documentation

MonotoneBoundedVector | ( | const string & | name,
 |  | size_t | size = 0 |
 | ) |  |  | [inline, explicit]

Constructs a MonotoneBoundedVector given its name and expected size.

Parameters:
name | : The key name;
size | : Expected size. By default, size = 0 which means there is no expected size, i.e., any stricktly positive size for the StdVector content will be accepted.
MonotoneBoundedVector | ( | const string & | name,
 |  | const ElementType & | bound1,
 |  | size_t | size = 0 |
 | ) |  |  | [inline]

Constructs a MonotoneBoundedVector given its name, a bound and expected size.

Parameters:
name | : The key name;
bound1 | : The value to be wrapped by Bound1;
size | : Expected size. By default, size = 0 which means there is no expected size, i.e., any stricktly positive size for the StdVector content will be accepted.
MonotoneBoundedVector | ( | const string & | name,
 |  | const ElementType & | bound1,
 |  | const ElementType & | bound2,
 |  | size_t | size = 0 |
 | ) |  |  | [inline]

Constructs a MonotoneBoundedVector given its name, two bounds and expected size.

Parameters:
name | : The key name;
bound1 | : The value to be wrapped by Bound1;
bound2 | : The value to be wrapped by Bound2;
size | : Expected size. By default, size = 0 which means there is no expected size, i.e., any stricktly positive size for the StdVector content will be accepted.

Member Function Documentation

void checkSoFar ( const StdVector< ElementType > & container ) const [inline]

Checks for monotonicity and boundness of the values.

Parameters:
container : The StdVector containing the std::vector of to be checked.
Exceptions:
RuntimeError : If test fails.
void checkSize ( size_t size ) const [inline]

Checks for the size of the vector of values.

Parameters:
container : The StdVector containing the std::vector whose size should be checked.
Exceptions:
RuntimeError : If there is no expected size or if it does not agree with real size.
string getName ( ) const [inherited]

Gets Key's name.

Returns:
The Key's name.

Reimplemented from Key.

void setName ( const string & name ) [inherited]

Sets name.

Parameters:
name : The name.
ElementType map ( const value::Variant & variant ) const [inherited]

Performs the mapping.

This method retrieves the content of value::Variant and, by considering enabled lexical convertions, converts it to Output. (See LexicalToolKit documentation.)

Parameters:
variant : A value::Variant containing the input to be mapped.
Returns:
The mapping result.
Generated on Sat Mar 20 14:15:01 2010 for KeyValue by doxygen 1.6.1


KeyValue: NoBound< ElementType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::NoBound

NoBound< ElementType > Class Template Reference

NoBound bound class. More...

#include "keyvalue/key/generic/bound/NoBound.h"

List of all members.

Public Member Functions

bool | check (const ElementType &x) const
Returns true.
const ElementType & | getBound () const
Does not do anything.
const char * | getName () const
Does not do anything.

Detailed Description

template<typename ElementType>
class keyvalue::key::NoBound< ElementType >

NoBound bound class.

Parameters:
ElementType : (template parameter) Ignored. Accepted types are double, ptime, string and unsigned int. (Other types will generate a link error.)

Member Function Documentation

bool check ( const ElementType & x ) const

Returns true.

Parameters:
x : Ignored;
Returns:
true.
const ElementType& getBound ( ) const

Does not do anything.

This method must not be called. Otherwise we a LogicError will be thrown. It is here just to comply with bound classes specifications.

Returns:
N/A.
Exceptions:
LogicError.
const char* getName ( ) const

Does not do anything.

This method must not be called. Otherwise we a LogicError will be thrown. It is here just to comply with bound classes specifications.

Returns:
N/A.
Exceptions:
LogicError.
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: NoMap< OutputType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::NoMap

NoMap< OutputType > Class Template Reference

Identity map (aka, NoMap). More...

#include "keyvalue/key/map/NoMap.h"

List of all members.

Public Types

typedef OutputType | OutputType_

Public Member Functions

OutputType | map (const value::Variant &variant) const
Performs the mapping.

Private Types

typedef boost::is_same
< OutputType, bool >::type 		IsBool_
typedef boost::is_same
< OutputType, double >::type 		IsDouble_
typedef boost::is_same
< OutputType, ptime >::type 		IsPtime_
typedef boost::is_same
< OutputType, string >::type 		IsString_
typedef boost::is_same
< OutputType, unsigned int >
::type 		IsUInt_

Private Member Functions

virtual string | getName () const =0
Gets Key's name.
BOOST_STATIC_ASSERT (IsBool_::value||IsDouble_::value||IsString_::value||IsPtime_::value||IsUInt_::value)

Detailed Description

template<typename OutputType>
class keyvalue::key::NoMap< OutputType >

Identity map (aka, NoMap).

The input value is mapped to itself. For example, the value associated to key "Price" is supposed to be a double which must be passed on, without any kind of mapping or, in other terms, mapped by the identity function.

Remark: Only instance for Output equal to bool, double, ptime, string or unsigned int are provided.

Parameters:
OutputType : (template parameter) Output type.
Return values:
OutputType_ : Same as OutputType.

Member Function Documentation

OutputType map ( const value::Variant & variant ) const

Performs the mapping.

This method retrieves the content of value::Variant and, by considering enabled lexical convertions, converts it to Output. (See LexicalToolKit documentation.)

Parameters:
variant : A value::Variant containing the input to be mapped.
Returns:
The mapping result.
virtual string getName ( ) const [private, pure virtual]

Gets Key's name.

Returns:
The Key's name.

Implemented in Traits< ElementType, StdVector, NoMap >, Traits< double, StdSingle, NoMap >, and Traits< ElementType, StdSingle, NoMap >.

Generated on Sat Mar 20 14:15:05 2010 for KeyValue by doxygen 1.6.1


KeyValue: NonMonotone Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::NonMonotone

NonMonotone Class Reference

NonMonotone class. More...

#include "keyvalue/key/generic/monotone/NonMonotone.h"

List of all members.

Static Public Member Functions

template<typename ElementType >
static bool | check (const ElementType &x, const ElementType &y)
Returns true.
static const char * | getName ()
Does not do anything.

Detailed Description

NonMonotone class.

Used for keys with non monotone values.

Member Function Documentation

static bool check | ( | const ElementType & | x,
 |  | const ElementType & | y |
 | ) |  |  | [inline, static]

Returns true.

Parameters:
x | : Ignored;
y | : Ignored.
ElementType | : (template parameter) Type of x. Accepted types are double, ptime, string and unsigned int. (Other types will generate a link error.)
Returns:
true.
static const char* getName ( ) [static]

Does not do anything.

This method must not be called. Otherwise we a LogicError will be thrown. It is here just to comply with comparison classes specifications.

Returns:
N/A.
Exceptions:
LogicError.
Generated on Sat Mar 20 14:15:00 2010 for KeyValue by doxygen 1.6.1


KeyValue: NotFound Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::Repository::NotFound

NotFound Class Reference

Exception thrown by get() when a DataSet is not found. More...

#include <Repository.h>

Inherits exception::RuntimeError.

List of all members.

Public Member Functions

NotFound (string name)
const string & | getName () const

Private Attributes

const string | name_

Detailed Description

Exception thrown by get() when a DataSet is not found.

Generated on Sat Mar 20 14:14:53 2010 for KeyValue by doxygen 1.6.1


KeyValue: Nothing Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::value::Nothing

Nothing Class Reference

Empty class to represent empty data. More...

#include "keyvalue/value/Nothing.h"

Detailed Description

Empty class to represent empty data.

Generated on Sat Mar 20 14:15:20 2010 for KeyValue by doxygen 1.6.1


KeyValue: NullDeleter Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::util::NullDeleter

NullDeleter Class Reference

A shared_ptr deleter that does not do anything. More...

#include "keyvalue/util/NullDeleter.h"

List of all members.

Public Member Functions

void | operator() (void const *) const

Private Member Functions

NullDeleter & | operator= (const NullDeleter &original)

Detailed Description

A shared_ptr deleter that does not do anything.

Generated on Sat Mar 20 14:15:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: ObjectMap< OutputType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::ObjectMap

ObjectMap< OutputType > Class Template Reference

Maps names to objects. More...

#include "keyvalue/key/map/ObjectMap.h"

List of all members.

Public Types

typedef shared_ptr< OutputType > | OutputType_

Public Member Functions

shared_ptr< OutputType > | map (const value::Variant &variant) const
Performs the mapping.

Private Member Functions

virtual string | getName () const =0
Gets Key's name.

Detailed Description

template<typename OutputType>
class keyvalue::key::ObjectMap< OutputType >

Maps names to objects.

A name (string) is mapped to (a pointer to) an object with that name. The mapping is performed by the Repository.

When the object's name is not found in the Repository, an attempt to build one from the given input (which, in fact, is a value::Variant) is done.

This map policy is automatically chosen by Traits when OutputType is not considered a basic type (see Default documentation). Hence, most users can ignore this map.

Parameters:
OutputType : (template parameter) Output type.
Return values:
OutputType_ : Same as shared_ptr<OutputType>.

Member Function Documentation

shared_ptr< OutputType > map ( const value::Variant & variant ) const [inline]

Performs the mapping.

Parameters:
variant : A value::Variant containing the object's name.
Returns:
The mapping result.
virtual string getName ( ) const [private, pure virtual]

Gets Key's name.

Returns:
The Key's name.
Generated on Sat Mar 20 14:15:05 2010 for KeyValue by doxygen 1.6.1


KeyValue: ObjectPtr Class Reference

  • Class List
  • Class Hierarchy
  • Class Members

ObjectPtr Class Reference

Pointer to objects. More...

#include "keyvalue/value/Result.h"

Detailed Description

Pointer to objects.

Builders return pointers to objects which are converted to pointer to void.

typedef shared_ptr<void> ObjectPtr;

Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Parent< T > Struct Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::value::Parent

Parent< T > Struct Template Reference

Primary Parent template meta-function. More...

#include <Parent.h>

Detailed Description

template<typename T>
struct keyvalue::value::Parent< T >

Primary Parent template meta-function.

The types in namespace value follow an hierarchy NOT built through inheritance. Before explaining how this hierarchy is implemented, we will consider the reason for its existence by an explanatory example.

Consider a Calculator whose result is a double x. Since all Calculators are expected to return Values, x must be converted before being returned. Recall that Value is a container for Matrix, Vector or Single. Obviously, Single is the right choice to carry x. However, Single is a container for Variants. Hence, firstly x must be converted to Variant. We conclude that x must to pass trough a series of conversions provided by copy-constructors. Therefore, the Calculator might return x as follows:

return Value(Single(Variant(x)));

It would be more convenient if these conversions were automatic. That is the reason for the hierarchy of types. Any type might be copy-constructed or assigned from any other type in a lower level of the hierarchy. In the example, returning x directly from the Calculator would imply in all the conversions up to Value.

Let T be a type (a basic one or one created by a Builder) and N be of type size_t. The hierarchy has Result on the top level and is as follows:

   Result
   `- Result::DataType_
      +- ObjectPtr
      |  `- shared_ptr<T>
      |     `- T*
      `- Value
         `- Value::DataType_
            +- Single
            |  `- Variant
            |     `- Variant::DataType_
            |        +- Nothing
            |        +- bool
            |        +- double
            |        |  +- unsigned int
            |        |  `- long unsigned int
            |        +- string
            |        |  +- char[]
            |        |  +- const char[N]
            |        |  +- char[N]
            |        |  `- char*
            |        `- ptime
            +- Vector
            |  `- vector<T>
            `- Matrix

Remarks:

  • Do not bother with types Result::DataType_, Value::DataType_ and Variant::DataType_. They act as intermediary steps before conversions to their respective owner classes. You are not intent to directly create objects of those types.
  • The presence of T* just below shared_ptr<T> provides an extra level of safety. Indeed, if a raw pointer to T is assigned or copy-constructed to a Result or any other type between them, then it will be immediately wrapped by a shared_ptr<T>.

Finally, Parent a template meta-function which returns the parent of a type according to the value hierarchy. Each for each type in the hierarchy (excluding Result) there should be a specialization.

Parameters:
T : The type whose parent should be returned.
Return values:
Parent<T>::Type_ : T's parent type.
Generated on Sat Mar 20 14:15:20 2010 for KeyValue by doxygen 1.6.1


KeyValue: PartialMap< OutputType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::PartialMap

PartialMap< OutputType > Class Template Reference

Partially maps names to constants. More...

#include "keyvalue/key/map/PartialMap.h"

List of all members.

Public Types

typedef OutputType | OutputType_

Public Member Functions

OutputType | map (const value::Variant &variant) const
Performs the mapping.
virtual OutputType | get (const string &name) const =0
Performs the mapping from string to OutputType.

Private Types

typedef boost::is_same
< OutputType, double >::type 		IsDouble_
typedef boost::is_same
< OutputType, ptime >::type 		IsPtime_
typedef boost::is_same
< OutputType, unsigned int >
::type 		IsUInt_

Private Member Functions

virtual string | getName () const =0
Gets Key's name.
BOOST_STATIC_ASSERT (IsDouble_::value||IsPtime_::value||IsUInt_::value)

Detailed Description

template<typename OutputType>
class keyvalue::key::PartialMap< OutputType >

Partially maps names to constants.

Use this map, when a special double, ptime or unsigned int value has a name.

For instance, when asked for the number of edges of a regular polygon, the answer must be an unsigned int greater than 2. For some special values (not all) there correspond a polygon name (e.g 'Triangle' for 3 or 'Square' for 4). There is no special name for a regular polygon with 1111 edges.

Traits derived classes which uses this map must implement a method to perform the mapping. This method has the following signature

Output get(const string& name) const;

Parameters:
OutputType : (template parameter) Output type.
Return values:
OutputType_ : Same as OutputType.

Member Function Documentation

OutputType map ( const value::Variant & variant ) const

Performs the mapping.

This method converts the input from value::Variant to string and calls get().

Parameters:
variant : A value::Variant containing the input string to be mapped.
Returns:
The mapping result.
virtual OutputType get ( const string & name ) const [pure virtual]

Performs the mapping from string to OutputType.

Must be implemented by real keys which use this map.

Parameters:
name : The string to be mapped.
Returns:
The mapping result.
virtual string getName ( ) const [private, pure virtual]

Gets Key's name.

Returns:
The Key's name.
Generated on Sat Mar 20 14:15:05 2010 for KeyValue by doxygen 1.6.1


KeyValue: Pattern Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::pattern::Pattern

Pattern Class Reference

Protocol class which defines the interface for pattern recognition classes. More...

#include "keyvalue/pattern/Pattern.h"

Inheritance diagram for Pattern:
[legend]

List of all members.

Classes

class | QueueRaii
This class implements RAII for a frontend::Queue. More...

Public Member Functions

virtual bool | parse (frontend::Queue &queue)=0
Parses the beginning of a frontend::Queue.
virtual std::pair< string,
value::Value > 		pop ()=0
Gets and removes the next stored key-value pair.
virtual bool | isEmpty () const =0
Checks if the list of recognized key-value pairs is empty.

Detailed Description

Protocol class which defines the interface for pattern recognition classes.

Each derived class is able to parse the beginning of a queue in an attempt to recognize a specific pattern of key-value pairs.

When a pattern is recognized (by parse()), the corresponding key-value pairs are stored in a list to be extracted later (by pop()).

Member Function Documentation

virtual bool parse ( frontend::Queue & queue ) [pure virtual]

Parses the beginning of a frontend::Queue.

When a pattern is recognized, the value::Value objects which make it are removed from frontend::Queue and all corresponding key-value pairs are stored inside the this class for later queries.

Parameters:
queue : frontend::Queue to be parsed.
Returns:
If the pattern is recognized, then this method returns true. Otherwise, it returns false.

Implemented in KeyInSingle, KeysInMatrix, KeysInVector, and Table.

virtual std::pair<string, value::Value> pop ( ) [pure virtual]

Gets and removes the next stored key-value pair.

The debug version checks if there is any key-value pair be popped (by calling isEmpty()) and throw an exception when the check fails. Release version has undefined behavior when the list is empty.

Returns:
The key-value pair.
Exceptions:
LogicError : (Debug build only) When the list is empty.

Implemented in KeyInSingle, KeysInMatrix, KeysInVector, and Table.

virtual bool isEmpty ( ) const [pure virtual]

Checks if the list of recognized key-value pairs is empty.

Returns:
If the list is empty, this method returns true. Otherwise, it returns false.

Implemented in KeyInSingle, KeysInMatrix, KeysInVector, and Table.

Generated on Sat Mar 20 14:15:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: Positive Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Positive

Positive Class Reference

A general key for positive values. More...

#include "keyvalue/key/generic/Positive.h"

Inheritance diagram for Positive:
[legend]

List of all members.

Public Types

enum
typedef Traits< double,
StdSingle, NoMap > 		Traits_
typedef StdSingle< typename
NoMap< double >::OutputType_ > 		ConverterType_
typedef ConverterType_::InputType_ | InputType_
typedef ConverterType_::OutputType_ | OutputType_

Public Member Functions

Positive (const string &name)
Constructs key and sets its name.
void | checkOutput (doubleelement) const
Compares element against the bound(s).
string | getName () const
Gets Key's name.
void | setName (const string &name)
Sets name.
double | map (const value::Variant &variant) const
Performs the mapping.

Detailed Description

A general key for positive values.

Constructor & Destructor Documentation

Positive ( const string & name ) [explicit]

Constructs key and sets its name.

This class is derived from Bounded<double, Geq> and set its lower bound to 0.0 at construction time.

Member Function Documentation

void checkOutput ( double element ) const [inherited]

Compares element against the bound(s).

Parameters:
element : Element to be checked.
Exceptions:
RuntimeError : If element is out of bound(s).
string getName ( ) const [inherited]

Gets Key's name.

Returns:
The Key's name.

Reimplemented from Key.

void setName ( const string & name ) [inherited]

Sets name.

Parameters:
name : The name.
double map ( const value::Variant & variant ) const [inherited]

Performs the mapping.

This method retrieves the content of value::Variant and, by considering enabled lexical convertions, converts it to Output. (See LexicalToolKit documentation.)

Parameters:
variant : A value::Variant containing the input to be mapped.
Returns:
The mapping result.
Generated on Sat Mar 20 14:15:02 2010 for KeyValue by doxygen 1.6.1


KeyValue: ProcessNow Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::ProcessNow

ProcessNow Class Reference

ProcessNow key. More...

#include "keyvalue/key/specific/ProcessNow.h"

Inheritance diagram for ProcessNow:
[legend]

List of all members.

Public Types

enum
typedef Traits< bool,
StdSingle, Default > 		Traits_
typedef StdSingle< typename
Default< bool >::OutputType_ > 		ConverterType_
typedef ConverterType_::InputType_ | InputType_
typedef ConverterType_::OutputType_ | OutputType_

Public Member Functions

ProcessNow ()
Constructs key and set its name.
string | getName () const
Gets Key's name.
void | setName (const string &name)
Sets name.

Detailed Description

ProcessNow key.

Key's name is "ProcessNow".

Constructor & Destructor Documentation

ProcessNow ( )

Constructs key and set its name.

Member Function Documentation

string getName ( ) const [inherited]

Gets Key's name.

Returns:
The Key's name.

Reimplemented from Key.

void setName ( const string & name ) [inherited]

Sets name.

Parameters:
name : The name.
Generated on Sat Mar 20 14:15:07 2010 for KeyValue by doxygen 1.6.1


KeyValue: Processor Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Processor

Processor Class Reference

Processor key. More...

#include "keyvalue/key/specific/Processor.h"

Inheritance diagram for Processor:
[legend]

List of all members.

Public Types

enum
typedef Traits< string,
StdSingle, Default > 		Traits_
typedef StdSingle< typename
Default< string >::OutputType_ > 		ConverterType_
typedef ConverterType_::InputType_ | InputType_
typedef ConverterType_::OutputType_ | OutputType_

Public Member Functions

Processor ()
Constructs key and sets its name.
string | getName () const
Gets Key's name.
void | setName (const string &name)
Sets name.

Detailed Description

Processor key.

Key's name is "Processor".

Constructor & Destructor Documentation

Processor ( )

Constructs key and sets its name.

Member Function Documentation

string getName ( ) const [inherited]

Gets Key's name.

Returns:
The Key's name.

Reimplemented from Key.

void setName ( const string & name ) [inherited]

Sets name.

Parameters:
name : The name.
Generated on Sat Mar 20 14:15:07 2010 for KeyValue by doxygen 1.6.1


KeyValue: Processor Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::Processor

Processor Class Reference

Protocol class that defines Processor interface. More...

#include "keyvalue/mngt/Processor.h"

Inheritance diagram for Processor:
[legend]

List of all members.

Public Member Functions

virtual const char * | getName () const =0
Gets Processor's name.
virtual value::Result | getResult (const DataSet &data) const =0
Gets result of processing a DataSet.
virtual value::Result | getResult (const value::Variant &data) const =0
Gets result of processing a value::Variant.

Detailed Description

Protocol class that defines Processor interface.

Member Function Documentation

virtual const char* getName ( ) const [pure virtual]

Gets Processor's name.

Returns:
The name.

Implemented in Builder< ObjectType >, and Calculator< Tag >.

virtual value::Result getResult ( const DataSet & data ) const [pure virtual]

Gets result of processing a DataSet.

Parameters:
data : DataSet to be processed.

This is a low level method which bypasses the memoization technique implemented by DataSet (see DataSet::mustUpdate()). Therefore, if processor is a Processor and data is a DataSet, then rather than processor.getResult(data); call data.process(processor);

processor.getResult(const DataSet& data) call data.process(processor).

Returns:
The result.

Implemented in Builder< ObjectType >, and Calculator< Tag >.

virtual value::Result getResult ( const value::Variant & data ) const [pure virtual]

Gets result of processing a value::Variant.

In general, the data that processors need to perform their duties is so rich that must be stored in a DataSet. Nevertheless, in some particular cases, a single value::Variant might be enough. For instance, consider a builder that creates a curve given a few points on it. Normally, this processor needs the set of points together with interpolator and extrapolator methods. In this general case, a DataSet is necessary to hold all this information. However, when the curve is known to be constant, then a single number - the constant - is enough to build the whole curve. Rather than creating a DataSet to store a single double value, it would be more convenient if the processor could accept just this value (or more generally, a value::Variant). That is the reason for this method.

Parameters:
data : value::Variant to be processed.
Returns:
The result.

Implemented in Builder< ObjectType >, and Calculator< Tag >.

Generated on Sat Mar 20 14:14:53 2010 for KeyValue by doxygen 1.6.1


KeyValue: ProcessorMngr Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::ProcessorMngr

ProcessorMngr Class Reference

The processor manager. More...

#include "keyvalue/mngt/ProcessorMngr.h"

List of all members.

Public Member Functions

void | add (const Processor *processor)
Registers a Processor.
const Processor & | getProcessor (const string &name) const
Gets Processor of a given type.

Static Public Member Functions

static ProcessorMngr & | getInstance ()
Gets the unique instance of this class.

Private Types

typedef std::map< string,
const Processor * > 		MapType_

Private Attributes

MapType_ | map_
bool | dummy

Static Private Attributes

static const Processor * | kvProcessors_ []
static const Processor * | processors_ []

Detailed Description

The processor manager.

This class centralizes the processing of all types of results. It maps Processor's names to a corresponding pointer to Processor.

Given the Processor's name and an input sufficient for the processing, this class redirects the input to the correct Processor.

This class is a singleton that is constructed only when its getInstance() method is called for the first time.

Member Function Documentation

static ProcessorMngr& getInstance ( ) [static]

Gets the unique instance of this class.

Returns:
A reference to the unique instance.
void add ( const Processor * processor )

Registers a Processor.

Parameters:
processor : A pointer to the Processor to be registered.
const Processor& getProcessor ( const string & name ) const

Gets Processor of a given type.

Parameters:
type : The type Processor's type;
Returns:
The Processor.
Exceptions:
RuntimeError() : If there is no registered Processor for type.

Member Data Documentation

const Processor* kvProcessors_[] [static, private]

An array of registers of KeyValue Processor implementations is needed to have at least one symbol in KeyValue library which refer to the registers. Otherwise they won't be included by the linker and, consequently, registration won't occur.

This variable is set in keyvalue/mngt/Register.cpp

const Processor* processors_[] [static, private]

Similarly to kvProcessors_ but for Processors of core library objects and results.

This variable must be set by the bridge library.

Generated on Sat Mar 20 14:14:53 2010 for KeyValue by doxygen 1.6.1


KeyValue: Queue Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::frontend::Queue

Queue Class Reference

Protocol class which defines the Queue interface. More...

#include "keyvalue/frontend/Queue.h"

List of all members.

Public Member Functions

virtual string | getName () const =0
virtual bool | isEmpty () const =0
Checks if this Queue is empty.
virtual value::Value | pop ()=0
Gets the next element and mark it for latter removal.
virtual void | remove ()=0
Removes popped elements definitely from the Queue.
virtual void | putBack ()=0
Puts popped elements back on the Queue.

Detailed Description

Protocol class which defines the Queue interface.

Each front-end (spreadsheet add-in, XML parser, ...) has to implement a Queue which is responsible for converting from its own types to value::Value objects which become elements of the Queue.

Elements can be popped (throw pop()) one by one. When one element is popped, it is marked for later removal. Marked elements can be put back on the Queue (throw putBack()) or they can be definitely removed from it (throw remove()).

Member Function Documentation

virtual bool isEmpty ( ) const [pure virtual]

Checks if this Queue is empty.

Returns:
If this Queue is empty or all its elements are marked for removal, then this methods returns true. Otherwise, it returns false.
virtual value::Value pop ( ) [pure virtual]

Gets the next element and mark it for latter removal.

The debug version should check if there is any element to be popped (by calling isEmpty()) and throw an exception when the check fails. The release version has undefined behavior when this Queue is empty.

Returns:
Next value which is not marked for removal.
Exceptions:
LogicError : (Debug build only) When there is no element to be popped.
virtual void remove ( ) [pure virtual]

Removes popped elements definitely from the Queue.

The implementation should be such that it is safe to call this method even when there is no element to be removed.

virtual void putBack ( ) [pure virtual]

Puts popped elements back on the Queue.

The implementation should be such that it is safe to call this method even when there is no element to be put back.

Generated on Sat Mar 20 14:14:57 2010 for KeyValue by doxygen 1.6.1


KeyValue: QueueRaii Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::pattern::Pattern::QueueRaii

QueueRaii Class Reference

This class implements RAII for a frontend::Queue. More...

#include "keyvalue/pattern/Pattern.h"

List of all members.

Public Member Functions

QueueRaii (frontend::Queue &queue)
Acquires resource (frontend::Queue).

Private Attributes

frontend::Queue & queue_

Detailed Description

This class implements RAII for a frontend::Queue.

By constructing an instance of this class at the beginning of parse() we assure a commit-or-roolback semantics for the Queue and, thus, a strong exception safety guarantee for the parse() method.

Constructor & Destructor Documentation

QueueRaii ( frontend::Queue & queue )

Acquires resource (frontend::Queue).

Parameters:
queue : frontend::Queue which will have the commit-or-rollback semantics.
Generated on Sat Mar 20 14:15:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: Record Struct Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::DataSet::Record

Record Struct Reference

A wrapper around a value::Value. More...

List of all members.

Public Types

typedef boost::weak_ptr< Record > | WeakPtr

Public Member Functions

Record (const value::Value &rawValue)
Record (WeakPtr next, WeakPtr driver)

Public Attributes

value::Value | rawValue_
bool | isBusy_
WeakPtr | next_
WeakPtr | driver_
boost::any | cache_
std::type_info * | keyType_

Detailed Description

A wrapper around a value::Value.

Beside each key-value pair the DataSet must stores data needed to process the value (e.g., cached results). This struct wrapps a value::Value and all those extra information.

Generated on Sat Mar 20 14:14:52 2010 for KeyValue by doxygen 1.6.1


KeyValue: Report Class Reference

  • Class List
  • Class Hierarchy
  • Class Members

Report Class Reference

MessageImpl instance used for reporting results. More...

#include "keyvalue/sys/message/MessageImpl.h"

Detailed Description

MessageImpl instance used for reporting results.

typedef MessageImpl<3> Report;

Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Repository Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::Repository

Repository Class Reference

The Repository of DataSets. More...

#include "keyvalue/mngt/Repository.h"

List of all members.

Classes

class | NotFound
Exception thrown by get() when a DataSet is not found. More...

Public Member Functions

void | add (shared_ptr< DataSet > dataSet)
Inserts a DataSet to Repository.
bool | erase (const string &name)
Erases a DataSet from Repository.
size_t | clear ()
Erases all DataSets from Repository.
shared_ptr< DataSet > | find (const string &name) const
Gets a DataSet stored in the Repository.
shared_ptr< DataSet > | getDataSet (const string &name) const
Gets a DataSet stored in the Repository.
size_t | getSize () const
Gets the current number of stored DataSets.
value::Vector | getList () const
Gets the list of all stored DataSets.

Static Public Member Functions

static Repository & | getInstance ()
Gets the unique instance of this class.

Private Types

typedef std::map< string,
shared_ptr< DataSet > > 		Map_
typedef Map_::value_type | Pair_

Private Attributes

Map_ | map_

Detailed Description

The Repository of DataSets.

This class is a singleton that is constructed only when its getInstance() method is called for the first time.

Member Function Documentation

static Repository& getInstance ( ) [static]

Gets the unique instance of this class.

Returns:
A reference to the unique instance.
void add ( shared_ptr< DataSet > dataSet )

Inserts a DataSet to Repository.

If a DataSet with the same name already exists in the repository, then it will be destroyed and replaced by the new one.

If the DataSet name starts with '#', then nothing will be done.

Debug build asserts that name is not empty. Relase build has undefined behavior in this circumstance.

Parameters:
dataSet : Pointer to the DataSet to be inserted.
Exceptions:
LogicError : (Debug build only) If DataSet name is empty.
bool erase ( const string & name )

Erases a DataSet from Repository.

Parameters:
name : The name of DataSet to be erased.
Returns:
This method returns true if the DataSet was found and erased. Otherwise it returns false.
size_t clear ( )

Erases all DataSets from Repository.

Returns:
The number of DataSets erased.
shared_ptr<DataSet> find ( const string & name ) const

Gets a DataSet stored in the Repository.

Parameters:
name : The name of the required DataSet.
Returns:
If DataSet is fond, then this method returns a pointer to it. Otherwise, it returns a null pointer.
shared_ptr<DataSet> getDataSet ( const string & name ) const

Gets a DataSet stored in the Repository.

Parameters:
name : The name of the required DataSet.
Exceptions:
NotFound : If DataSet name is not found.
Returns:
A pointer to the DataSet.
size_t getSize ( ) const

Gets the current number of stored DataSets.

Returns:
The number of stored DataSets.
value::Vector getList ( ) const

Gets the list of all stored DataSets.

Returns:
The vector to be filled in with names of stored DataSets.
Generated on Sat Mar 20 14:14:53 2010 for KeyValue by doxygen 1.6.1


KeyValue: Result Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::value::Result

Result Class Reference

A single-valued container for ObjectPtr or Value. More...

#include "keyvalue/value/Result.h"

List of all members.

Public Types

typedef boost::variant
< ObjectPtr, Value > 		DataType_

Public Member Functions

Result ()
Default constructor sets content to null ObjectPtr.
Result (const DataType_ &data)
Builds and sets content.
template<typename Rhs >
Result (const Rhs &rhs)
Builds and sets content.
template<typename Rhs >
Result & | operator= (const Rhs &rhs)
Assignment operator.
ObjectPtr | getObjectPtr () const
Gets content.
ObjectPtr | getObjectPtr ()
Non const getObjectPtr().
const Value * | getValue () const
Gets content.
Value * getValue ()
Non const getValue().

Private Attributes

DataType_ | data_

Detailed Description

A single-valued container for ObjectPtr or Value.

Constructor & Destructor Documentation

Result ( )

Default constructor sets content to null ObjectPtr.

Result ( const DataType_ & data )

Builds and sets content.

Takes type on the 1-level-down on the value hierarchy.

Parameters:
data : The content.
Result ( const Rhs & rhs ) [inline]

Builds and sets content.

Takes type on a 2-or-more-levels-down on the value hierarchy.

Parameters:
rhs : The content.

If you get an error here about 'keyvaluevalue::Parent<Rhs>', this means that Rhs isn't in a lower level in the hierarchy.

Member Function Documentation

Result & operator= ( const Rhs & rhs ) [inline]

Assignment operator.

Takes type on a 2-or-more-levels-down on the value hierarchy.

Parameters:
rhs : The data to be assigned.
Returns:
A reference to this.

If you get an error here about 'keyvaluevalue::Parent<P>', this means that Rhs isn't in a lower level in the hierarchy.

ObjectPtr getObjectPtr ( ) const

Gets content.

Returns:
A const pointer to the content, if it is an ObjectPtr. Otherwise, a null pointer.
ObjectPtr getObjectPtr ( )

Non const getObjectPtr().

const Value* getValue ( ) const

Gets content.

Returns:
A const pointer to the content, if it is a Value. Otherwise, a null pointer.
Value* getValue ( )

Non const getValue().

Generated on Sat Mar 20 14:15:20 2010 for KeyValue by doxygen 1.6.1


KeyValue: RuntimeError Class Reference

  • Class List
  • Class Hierarchy
  • Class Members

RuntimeError Class Reference

Base class for all KeyValue exceptions occurring at runtime. More...

#include "keyvalue/sys/exception/Exception.h"

Detailed Description

Base class for all KeyValue exceptions occurring at runtime.

typedef ExceptionImpl<std::runtime_error, Error> RuntimeError;

Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Saver< SavedType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::util::Saver

Saver< SavedType > Class Template Reference

Saves a variable reference at construction time to restore/set its value at destruction time. More...

#include "keyvalue/util/NullDeleter.h"

List of all members.

Public Member Functions

Saver (SavedType &data)
Constructs a Saver for a variable.
Saver (SavedType &data, const SavedType &onExit)
Constructs a Saver for a variable and sets the value it will get at time the of Saver's destruction.
SavedType | getSaved () const
Gets saved value.

Private Attributes

SavedType & | data_
SavedType | onExit_

Detailed Description

template<typename SavedType>
class keyvalue::util::Saver< SavedType >

Saves a variable reference at construction time to restore/set its value at destruction time.

This class applies Stroustrup's RAII technique to reset a (probably, static) variable when Saver go out of scope. The variable can be reset to the value it had when Saver was constructed or set to another given value.

Parameters:
SavedType : (template parameter) The type of saved value.

Constructor & Destructor Documentation

Saver ( SavedType & data ) [inline, explicit]

Constructs a Saver for a variable.

Parameters:
data : the variable to be saved.
Saver | ( | SavedType & | data,
 |  | const SavedType & | onExit |
 | ) |  |  | [inline]

Constructs a Saver for a variable and sets the value it will get at time the of Saver's destruction.

Parameters:
data | : the variable to be saved.
onExit | : the value that data is set to when Saver is destroyed.

Member Function Documentation

SavedType getSaved ( ) const [inline]

Gets saved value.

Returns:
The value.
Generated on Sat Mar 20 14:15:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: Single Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::value::Single

Single Class Reference

A 1 x 1 Matrix. More...

#include "keyvalue/value/Single.h"

Inheritance diagram for Single:
[legend]

List of all members.

Public Member Functions

Single ()
Default constructor sets content to Variant's default.
Single (const Variant &data)
Builds and sets content.
template<typename Rhs >
Single (const Rhs &rhs)
Builds and sets content.
template<typename Rhs >
Single & | operator= (const Rhs &rhs)
Assignment operator.
size_t | getSize () const
Gets Vector size.
void | resize (size_t size)
Resizes the vector.
void | resize (size_t nRows, size_t nCols)
Resizes the matrix.
const Variant & | operator() (size_t i) const
Provides access to the i-th element.
Variant & | operator() (size_t i)
Non const operator()().
const Variant & | operator() (size_t i, size_t j) const
Provides access to the element in the i-th row and j-th column.
Variant & | operator() (size_t i, size_t j)
Non const operator()().
void | transpose ()
Transposes the vector.
size_t | getNRows () const
Gets number of rows.
size_t | getNCols () const
Gets number of columns.
bool | operator== (const Matrix &rhs) const
Comparison operator.

Protected Member Functions

void | transposeVector ()
Transposes the matrix if one of its dimensions is 1.

Detailed Description

A 1 x 1 Matrix.

See Matrix documentation for more details.

Constructor & Destructor Documentation

Single ( )

Default constructor sets content to Variant's default.

Single ( const Variant & data )

Builds and sets content.

Takes type on the 1-level-down on the value hierarchy.

Parameters:
data : The content.
Single ( const Rhs & rhs ) [inline]

Builds and sets content.

Takes type on a 2-or-more-levels-down on the value hierarchy.

Parameters:
rhs : The content.

If you get an error here about 'keyvaluevalue::Parent<Rhs>', this means that Rhs isn't in a lower level in the hierarchy.

Member Function Documentation

Single & operator= ( const Rhs & rhs ) [inline]

Assignment operator.

Takes type on a 2-or-more-levels-down on the value hierarchy.

Parameters:
rhs : The data to be assigned.
Returns:
A reference to this.

If you get an error here about 'keyvaluevalue::Parent<Rhs>', this means that Rhs isn't in a lower level in the hierarchy.

size_t getSize ( ) const [inherited]

Gets Vector size.

Returns:
The size.
void resize ( size_t size ) [inherited]

Resizes the vector.

The size of a vector can not increase. Debug build check for this and an exception is thrown when the test fails. Release build has undefined behavior in this case.

Parameters:
size : New size.
Exceptions:
LogicError : (Debug build only) If the new dimension is greater than the original one.
void resize | ( | size_t | nRows,
 |  | size_t | nCols |
 | ) |  |  | [inherited]

Resizes the matrix.

The size of a matrix (i.e., number of rows times number of columns) can not increase. Debug build check for this and an exception is thrown when the test fails. Release build has undefined behavior in this case.

The contents of a matrix after resizing is undefined.

Parameters:
nRows | : number of rows;
nCols | : number of columns.
Exceptions:
LogicError : (Debug build only) If the new size is greater than the original one.
const Variant& operator() ( size_t i ) const [inherited]

Provides access to the i-th element.

Debug build performs bound check and throws an exception when the check fail. Release build has undefined behavior in that circumstance.

Parameters:
i : Element's index.
Returns:
A const reference to the i-th element.
Exceptions:
LogicError : (Debug build only) When i is not smaller than vector's dimension.
Variant& operator() ( size_t i ) [inherited]

Non const operator()().

const Variant& operator() | ( | size_t | i,
 |  | size_t | j |
 | ) |  |  | const [inherited]

Provides access to the element in the i-th row and j-th column.

Debug build perform bound checks and throws an exception on failure. Release build has undefined behavior in that case.

Parameters:
i | : Row index;
j | : Column index.
Returns:
A const reference to (i, j)-th element.
Exceptions:
LogicError : (Debug build only) If i is not smaller than the number of rows or j is not smaller than the number of columns.
Variant& operator() | ( | size_t | i,
 |  | size_t | j |
 | ) |  |  | [inherited]

Non const operator()().

void transpose ( ) [inherited]

Transposes the vector.

size_t getNRows ( ) const [inherited]

Gets number of rows.

Returns:
The number of rows.
size_t getNCols ( ) const [inherited]

Gets number of columns.

Returns:
The number of columns.
bool operator== ( const Matrix & rhs ) const [inherited]

Comparison operator.

Recall that Matrix has reference semantics. Consider the code:

Matrix m1(2,2);
m1(0,0) = m1(0,1) = m1(1,0) = m1(1,1) = 1.0;
Matrix m2(2,2); m2(0,0) = m2(0,1) = m2(1,0) = m2(1,1) = 1.0;
Matrix m3(m1);

Then m1 == m2 is false and m1 == m3 is true.

Parameters:
rhs : The Value to be compared against.
Returns:
This method returns true if *this and rhs refer to the same data. Otherwise it returns false.
void transposeVector ( ) [protected, inherited]

Transposes the matrix if one of its dimensions is 1.

In-place matrix transposition is a complicated stuff. See

http://en.wikipedia.org/wiki/In-place_matrix_transposition

However, since the storage is linear, the memory layouts of n x 1 and 1 x n matrix, are the same. Hence, we only need to swap dimensions. This method is intent to perform only this simple transposition and it is protected to be called by Vector which derives from this class.

Debug build checks if either of the dimensions is 1 and throws an exception if the test fails. Release build has undefined behaviour in that circumstance.

Exceptions:
LogicError : (Debug build only) If none of dimensions is 1.
Generated on Sat Mar 20 14:15:21 2010 for KeyValue by doxygen 1.6.1


KeyValue: Single< ElementType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Single

Single< ElementType > Class Template Reference

Generic key whose converter type is StdSingle. More...

#include "keyvalue/key/generic/Single.h"

Inheritance diagram for Single< ElementType >:
[legend]

List of all members.

Public Types

enum
typedef Traits< ElementType,
StdSingle, Default > 		Traits_
typedef StdSingle< typename
Default< ElementType >
::OutputType_ > 		ConverterType_
typedef ConverterType_::InputType_ | InputType_
typedef ConverterType_::OutputType_ | OutputType_

Public Member Functions

Single (const string &name)
Constructs the key and sets its name.
string | getName () const
Gets Key's name.
void | setName (const string &name)
Sets name.

Detailed Description

template<typename ElementType>
class keyvalue::key::Single< ElementType >

Generic key whose converter type is StdSingle.

Parameters:
ElementType : (template parameter) The output type.

Constructor & Destructor Documentation

Single ( const string & name ) [inline, explicit]

Constructs the key and sets its name.

Member Function Documentation

string getName ( ) const [inherited]

Gets Key's name.

Returns:
The Key's name.

Reimplemented from Key.

void setName ( const string & name ) [inherited]

Sets name.

Parameters:
name : The name.
Generated on Sat Mar 20 14:15:02 2010 for KeyValue by doxygen 1.6.1


KeyValue: StdMatrix< ElementType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::StdMatrix

StdMatrix< ElementType > Class Template Reference

Converter from value::Matrix to shared_ptr<std::vector<std::vector<ElementType>>>. More...

#include "keyvalue/key/converter/StdMatrix.h"

List of all members.

Public Types

typedef value::Matrix | InputType_
Compulsory member.
typedef shared_ptr
< std::vector< std::vector
< ElementType > > > 		OutputType_
Compulsory member.

Public Member Functions

StdMatrix (const InputType_ &input, OutputType_ *cache)
Compulsory constructor.
bool | isEmpty () const
Compulsory member: Checks if conversion has finished.
value::Variant pop ()
Compulsory member: Gets next input element.
void | insert (const ElementType &element)
Compulsory member: Inserts a new element into the output container.
OutputType_ | getOutput () const
Compulsory member: Gets output container.
bool | mustUpdate () const
Compulsory member: Informs if cached value is up to date.

Private Attributes

const InputType_ & | input_
OutputType_ | output_
OutputType_ * | cache_
size_t | nRows_
size_t | nCols_
size_t | i_
size_t | j_
bool | mustUpdate_

Detailed Description

template<typename ElementType>
class keyvalue::key::StdMatrix< ElementType >

Converter from value::Matrix to shared_ptr<std::vector<std::vector<ElementType>>>.

StdSingle together with StdMatrix and StdMatrix might serve as samples for bridge developers who want to implement their own converters. A few constraints have to be verified. Reading documentation for these three classes before implement any converter is strongly advisable.

Parameters:
ElementType : The output container's element type.
Return values:
InputType_ | : value::Matrix;
OutputType_ | : shared_ptr<std::vector<std::vector<Element>>>.

Member Typedef Documentation

typedef value::Matrix InputType_

Compulsory member.

typedef shared_ptr<std::vector<std::vector<ElementType> > > OutputType_

Compulsory member.

Notice that getOutput() returns an OutputType_ object by value. Hence, it is advisable for this type to be cheap-to-copy.

Constructor & Destructor Documentation

StdMatrix | ( | const InputType_ & | input,
 |  | OutputType_ * | cache |
 | ) |  |  | [inline]

Compulsory constructor.

Internally, the converter must store a copy of the input and a copy of previously cached output (if any). It have also to compare the new computed output with the cached one to see if anything dependent on the cached output must bu updated. (See mustUpdate().)

Parameters:
input | : Input data.
cache | : A pointer to the previoulsy cached value if there exist one. Otherwise, a null pointer must be given.

Member Function Documentation

bool isEmpty ( ) const [inline]

Compulsory member: Checks if conversion has finished.

Returns:
This methods must return true if all elements of input data have been processed. Otherwise, it must returns false.
value::Variant pop ( ) [inline]

Compulsory member: Gets next input element.

Returns:
A copy of next input element to be processed.
void insert ( const ElementType & element ) [inline]

Compulsory member: Inserts a new element into the output container.

Parameters:
element : The element to be inserted into the output container.
StdMatrix< ElementType >::OutputType_ getOutput ( ) const [inline]

Compulsory member: Gets output container.

Returns:
A copy of output container.
bool mustUpdate ( ) const [inline]

Compulsory member: Informs if cached value is up to date.

Returns:
This method returns true if cached value is out of date. Otherwise it returns false.
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: StdSingle< ElementType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::StdSingle

StdSingle< ElementType > Class Template Reference

Converter from value::Single to ElementType. More...

#include "keyvalue/key/converter/StdSingle.h"

List of all members.

Public Types

typedef value::Single | InputType_
Compulsory member.
typedef ElementType | OutputType_
Compulsory member.

Public Member Functions

StdSingle (const InputType_ &input, OutputType_ *cache)
Compulsory constructor.
bool | isEmpty () const
Compulsory member: Checks if conversion has finished.
value::Variant pop ()
Compulsory member: Gets next input element.
void | insert (const ElementType &element)
Compulsory member: Inserts a new element into the output container.
OutputType_ | getOutput () const
Compulsory member: Gets output container.
bool | mustUpdate () const
Compulsory member: Informs if cached value is up to date.

Private Attributes

const InputType_ & | input_
OutputType_ *const | cache_
OutputType_ | output_
bool | empty_
bool | mustUpdate_

Detailed Description

template<typename ElementType>
class keyvalue::key::StdSingle< ElementType >

Converter from value::Single to ElementType.

Values provided by the end users must be converted to other types before being forwarded to the core library. This converter is used when the input value is a value::Single.

StdSingle together with StdVector and StdMatrix might serve as samples for bridge developers who want to implement their own converters. A few constraints have to be verified. Reading documentation for these three classes before implement any converter is strongly advisable.

These constraints are such that for converters taking value::Single as input there is little (if any) room for other converters. However, converters taking value::Vector or value::Matrix can be tailored to specific core library needs.

The constraints are composed by certain typedefs and methods that must be member of any converter. They will be explained below.

Parameters:
ElementType : The output type.
Return values:
InputType_ | : value::Single;
OutputType_ | : ElementType.

Member Typedef Documentation

typedef value::Single InputType_

Compulsory member.

typedef ElementType OutputType_

Compulsory member.

Notice that getOutput() returns an OutputType_ object by value. Hence, it is advisable for this type to be cheap-to-copy.

Constructor & Destructor Documentation

StdSingle | ( | const InputType_ & | input,
 |  | OutputType_ * | cache |
 | ) |  |  | [inline]

Compulsory constructor.

Internally, the converter must store a copy of the input and a copy of previously cached output (if any). It have also to compare the new computed output with the cached one to see if anything dependent on the cached output must bu updated. (See mustUpdate().)

Parameters:
input | : Input data.
cache | : A pointer to the previoulsy cached value if there exist one. Otherwise, a null pointer must be given.

Member Function Documentation

bool isEmpty ( ) const [inline]

Compulsory member: Checks if conversion has finished.

Returns:
This methods must return true if all elements of input data have been processed. Otherwise, it must returns false.
value::Variant pop ( ) [inline]

Compulsory member: Gets next input element.

Returns:
A copy of next input element to be processed.
void insert ( const ElementType & element ) [inline]

Compulsory member: Inserts a new element into the output container.

Parameters:
element : The element to be inserted into the output container.
StdSingle< ElementType >::OutputType_ getOutput ( ) const [inline]

Compulsory member: Gets output container.

Returns:
A copy of output container.
bool mustUpdate ( ) const [inline]

Compulsory member: Informs if cached value is up to date.

Returns:
This method returns true if cached value is out of date. Otherwise it returns false.
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: StdVector< ElementType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::StdVector

StdVector< ElementType > Class Template Reference

Converter from value::Vector to shared_ptr<std::vector<ElementType>>. More...

#include "keyvalue/key/converter/StdVector.h"

List of all members.

Public Types

typedef value::Vector | InputType_
Compulsory member.
typedef shared_ptr
< std::vector< ElementType > > 		OutputType_
Compulsory member.

Public Member Functions

StdVector (const InputType_ &input, OutputType_ *cache)
Compulsory constructor.
bool | isEmpty () const
Compulsory member: Check if conversion has finished.
value::Variant pop ()
Compulsory member: Gets next input element.
void | insert (const ElementType &element)
Compulsory member: Inserts a new element into the output container.
OutputType_ | getOutput () const
Compulsory member: Gets output container.
bool | mustUpdate () const
Compulsory member: Informs if cached value is up to date.

Private Attributes

const InputType_ & | input_
OutputType_ | output_
OutputType_ *const | cache_
const size_t | size_
size_t | i_
bool | mustUpdate_

Detailed Description

template<typename ElementType>
class keyvalue::key::StdVector< ElementType >

Converter from value::Vector to shared_ptr<std::vector<ElementType>>.

StdSingle together with StdVector and StdMatrix might serve as samples for bridge developers who want to implement their own converters. A few constraints have to be verified. Reading documentation for these three classes before implement any converter is strongly advisable.

Parameters:
ElementType : The output container's element type.
Return values:
InputType_ | : value::Vector;
OutputType_ | : shared_ptr<std::vector<Element>>.

Member Typedef Documentation

typedef value::Vector InputType_

Compulsory member.

typedef shared_ptr<std::vector<ElementType> > OutputType_

Compulsory member.

Notice that getOutput() returns an OutputType_ object by value. Hence, it is advisable for this type to be cheap-to-copy.

Constructor & Destructor Documentation

StdVector | ( | const InputType_ & | input,
 |  | OutputType_ * | cache |
 | ) |  |  | [inline]

Compulsory constructor.

Internally, the converter must store a copy of the input and a copy of previously cached output (if any). It have also to compare the new computed output with the cached one to see if anything dependent on the cached output must bu updated. (See mustUpdate().)

Parameters:
input | : Input data.
cache | : A pointer to the previoulsy cached value if there exist one. Otherwise, a null pointer must be given.

Member Function Documentation

bool isEmpty ( ) const [inline]

Compulsory member: Check if conversion has finished.

Returns:
This methods must return true if all elements of input data have been processed. Otherwise, it must returns false.
value::Variant pop ( ) [inline]

Compulsory member: Gets next input element.

Returns:
A copy of next input element to be processed.
void insert ( const ElementType & element ) [inline]

Compulsory member: Inserts a new element into the output container.

Parameters:
element : The element to be inserted into the output container.
StdVector< ElementType >::OutputType_ getOutput ( ) const [inline]

Compulsory member: Gets output container.

Returns:
A copy of output container.
bool mustUpdate ( ) const [inline]

Compulsory member: Informs if cached value is up to date.

Returns:
This method returns true if cached value is out of date. Otherwise it returns false.
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: StrictlyDecreasing Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::StrictlyDecreasing

StrictlyDecreasing Class Reference

StrictlyDecreasing monotone class. More...

#include "keyvalue/key/generic/monotone/StrictlyDecreasing.h"

List of all members.

Static Public Member Functions

template<typename ElementType >
static bool | check (const ElementType &x, const ElementType &y)
Performs the comparison.
static const char * | getName ()
Gets type name.

Detailed Description

StrictlyDecreasing monotone class.

Given two consecutive values of a sequence, x[i] and x[i+1], this class checks if x[i] > x[i+1].

Member Function Documentation

static bool check | ( | const ElementType & | x,
 |  | const ElementType & | y |
 | ) |  |  | [inline, static]

Performs the comparison.

Parameters:
x | : 1st value to be checked;
y | : 2nd value to be checked.
ElementType | : (template parameter) Type of x and y. Accepted types are double, ptime, string and unsigned int. (Other types will generate a link error.)
Returns:
(x > y).
static const char* getName ( ) [static]

Gets type name.

Returns:
"strictly decreasing".
Generated on Sat Mar 20 14:15:00 2010 for KeyValue by doxygen 1.6.1


KeyValue: StrictlyIncreasing Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::StrictlyIncreasing

StrictlyIncreasing Class Reference

StrictlyIncreasing monotone class. More...

#include "keyvalue/key/generic/monotone/StrictlyIncreasing.h"

List of all members.

Static Public Member Functions

template<typename ElementType >
static bool | check (const ElementType &x, const ElementType &y)
Performs the comparison.
static const char * | getName ()
Gets type name.

Detailed Description

StrictlyIncreasing monotone class.

Given two consecutive values of a sequence, x[i] and x[i+1], this class checks if x[i] < x[i+1].

Member Function Documentation

static bool check | ( | const ElementType & | x,
 |  | const ElementType & | y |
 | ) |  |  | [inline, static]

Performs the comparison.

Parameters:
x | : 1st value to be checked;
y | : 2nd value to be checked.
ElementType | : (template parameter) Type of x and y. Accepted types are double, ptime, string and unsigned int. (Other types will generate a link error.)
Returns:
(x < y).
static const char* getName ( ) [static]

Gets type name.

Returns:
"strictly increasing".
Generated on Sat Mar 20 14:15:00 2010 for KeyValue by doxygen 1.6.1


KeyValue: StrictlyPositive Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::StrictlyPositive

StrictlyPositive Class Reference

A general key whose value is a strictly positive number. More...

#include "keyvalue/key/generic/StrictlyPositive.h"

Inheritance diagram for StrictlyPositive:
[legend]

List of all members.

Public Types

enum
typedef Traits< double,
StdSingle, NoMap > 		Traits_
typedef StdSingle< typename
NoMap< double >::OutputType_ > 		ConverterType_
typedef ConverterType_::InputType_ | InputType_
typedef ConverterType_::OutputType_ | OutputType_

Public Member Functions

StrictlyPositive (const string &name)
Constructs key and sets its name.
void | checkOutput (doubleelement) const
Compares element against the bound(s).
string | getName () const
Gets Key's name.
void | setName (const string &name)
Sets name.
double | map (const value::Variant &variant) const
Performs the mapping.

Detailed Description

A general key whose value is a strictly positive number.

Constructor & Destructor Documentation

StrictlyPositive ( const string & name ) [explicit]

Constructs key and sets its name.

Member Function Documentation

void checkOutput ( double element ) const [inherited]

Compares element against the bound(s).

Parameters:
element : Element to be checked.
Exceptions:
RuntimeError : If element is out of bound(s).
string getName ( ) const [inherited]

Gets Key's name.

Returns:
The Key's name.

Reimplemented from Key.

void setName ( const string & name ) [inherited]

Sets name.

Parameters:
name : The name.
double map ( const value::Variant & variant ) const [inherited]

Performs the mapping.

This method retrieves the content of value::Variant and, by considering enabled lexical convertions, converts it to Output. (See LexicalToolKit documentation.)

Parameters:
variant : A value::Variant containing the input to be mapped.
Returns:
The mapping result.
Generated on Sat Mar 20 14:15:03 2010 for KeyValue by doxygen 1.6.1


KeyValue: Table Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::pattern::Table

Table Class Reference

Pattern where a value::Matrix contains the row, column and table keys. More...

#include "keyvalue/pattern/Pattern.h"

Inheritance diagram for Table:
[legend]

List of all members.

Public Member Functions

bool | parse (frontend::Queue &queue)
Parses the beginning of a frontend::Queue.
std::pair< string, value::Value > | pop ()
Gets and removes the next stored key-value pair.
bool | isEmpty () const
Checks if the list of recognized key-value pairs is empty.

Private Attributes

size_t | next_
string | keys_ [3]
value::Value | values_ [3]

Detailed Description

Pattern where a value::Matrix contains the row, column and table keys.

The value::Matrix M=M(i, j) is a m x n matrix with m > 2 and n > 2. It defines three key-value pairs (row, column and table) which can be given in two different formats.

  • Format 1: Row key is in M(1, 0) and its value is the vector M(i, 0) for i = 2, ..., m. Column key is in M(0, 1) and its value is the vector M(0, j) for j = 2, ..., n.
  • Format 2: Row key is in M(2, 0) and its value is the vector M(i, 1) for i = 2, ..., m. Column key is in M(0, 2) and its value is the vector M(1, j) for j = 2, ..., n.

For both formats, key table is in M(0, 0) and its value is the matrix M(i, j) for i = 2, ..., m and j = 2, ..., n.

Member Function Documentation

bool parse ( frontend::Queue & queue ) [virtual]

Parses the beginning of a frontend::Queue.

When a pattern is recognized, the value::Value objects which make it are removed from frontend::Queue and all corresponding key-value pairs are stored inside the this class for later queries.

Parameters:
queue : frontend::Queue to be parsed.
Returns:
If the pattern is recognized, then this method returns true. Otherwise, it returns false.

Implements Pattern.

std::pair<string, value::Value> pop ( ) [virtual]

Gets and removes the next stored key-value pair.

The debug version checks if there is any key-value pair be popped (by calling isEmpty()) and throw an exception when the check fails. Release version has undefined behavior when the list is empty.

Returns:
The key-value pair.
Exceptions:
LogicError : (Debug build only) When the list is empty.

Implements Pattern.

bool isEmpty ( ) const [virtual]

Checks if the list of recognized key-value pairs is empty.

Returns:
If the list is empty, this method returns true. Otherwise, it returns false.

Implements Pattern.

Generated on Sat Mar 20 14:15:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: Traits< ElementType, ConverterType, MapType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Traits

Traits< ElementType, ConverterType, MapType > Class Template Reference

Real keys must derive from adequate instance of this template class. More...

#include "keyvalue/key/Traits.h"

Inheritance diagram for Traits< ElementType, ConverterType, MapType >:
[legend]

List of all members.

Public Types

enum | { isBasicOrEnum_ = util::IsBasicOrEnum<ElementType>::value_ }
typedef Traits< ElementType,
ConverterType, MapType > 		Traits_
typedef ConverterType
< typename MapType
< ElementType >::OutputType_ > 		ConverterType_
typedef ConverterType_::InputType_ | InputType_
typedef ConverterType_::OutputType_ | OutputType_

Public Member Functions

Traits (const string &name)
Initializes Key's name.
string | getName () const
Gets Key's name.
void | setName (const string &name)
Sets name.

Detailed Description

template<typename ElementType, template< typename > class ConverterType = StdSingle, template< typename > class MapType = Default>
class keyvalue::key::Traits< ElementType, ConverterType, MapType >

Real keys must derive from adequate instance of this template class.

Keys have more than a just name: Each of them is associated to a value which need to be processed. The processing depends on many types which are passed as template parameters stored inside this class.

The input value stored in the DataSet, can be either value::Single, value::Vector or value::Matrix. It must be converted to another kind of container suitable for the core library. For instance, a key named "Length" might be associated to a value::Single type of input which must be converted to a double. On the same way, a key named "Lengths" might be associated to an input of type value::Vector which should be converted to a std::vector<double>.

To allow more flexibility, conversions are responsibility of converter classes. Traits takes a converter ConverterType as a parameter. KeyValue library provides three standard implementations: StdSingle, StdVector and StdMatrix.

Without get into details, notice that ConverterType is a template depending on a type T. Essentially, StdSingle<T> converts from value::Single to T; StdVector<T> converts from value::Vector to std::vector<T>; StdMatrix<T> converts from value::Matrix to std::vector<std::vector<T>>. Bridge developers might implement converters whose output is more suitable for the core library (e.g. a converter from value::Matrix to boost::matrix<T>). (For more details, in particular, the requirements on converters, see StdSingle, StdVector and StdMatrix documentation.)

In some cases, the value contains strings (names) which must be mapped to corresponding instances of ElementType. For instance, the value associated to the key 'Logger' is supposed to be a logger::Logger. The user refers to the correct logger::Logger object through its name (e.g. 'GlobalLogger'). In this case, there must be a map that, provided the name, retrieves a pointer to the corresponding object. Indeed, this mapping is performed with Repository's help. Other kinds of maps are available.

Traits takes a map, MapType, and it implies constraints on Traits' derived classes. For more details see the relevant map documentation.

If MapType is not specified, then Default will be selected.

Finally, values associated to some keys are expected to fulfill certain criteria (e.g. a price cannot be negative.) Therefore, some sanity checks on the value might be needed. Those checks are performed by Checker which is a template class that Traits derives from.

Parameters:
ElementType | : (template parameter) Type of elements in converter's output;
ConverterType | : (template template parameter) Type of container converter.
MapType | : (template parameter) Type of map. (See description above.)
Return values:
Traits_ | : Complete instance of Traits;
ConverterType_ | : Complete instance of ConverterType;
InputType_ | : Converter's input type;
OutputType_ | : Converter's output type.

Constructor & Destructor Documentation

Traits ( const string & name ) [inline]

Initializes Key's name.

Parameters:
name : The Key's name.

Member Function Documentation

string getName ( ) const [inline]

Gets Key's name.

Returns:
The Key's name.

Reimplemented from Key.

void setName ( const string & name ) [inherited]

Sets name.

Parameters:
name : The name.
Generated on Sat Mar 20 14:15:09 2010 for KeyValue by doxygen 1.6.1


KeyValue: TypeName< Type > Struct Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::value::TypeName

TypeName< Type > Struct Template Reference

Meta function which returns the name of type. More...

#include "keyvalue/value/TypeName.h"

List of all members.

Static Public Attributes

static const char * value_

Detailed Description

template<typename Type>
struct keyvalue::value::TypeName< Type >

Meta function which returns the name of type.

Parameters:
Type : (template parameter) The type.
Generated on Sat Mar 20 14:15:21 2010 for KeyValue by doxygen 1.6.1


KeyValue: Value Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::value::Value

Value Class Reference

A single-valued container for Single, Vector or Matrix. More...

#include "keyvalue/value/Value.h"

List of all members.

Public Types

typedef boost::variant< Single,
Vector, Matrix > 		DataType_

Public Member Functions

Value ()
Default constructor sets content to Singles's default.
Value (const DataType_ &data)
Builds and sets content.
template<typename Rhs >
Value (const Rhs &rhs)
Builds and sets content.
template<typename Rhs >
Value & | operator= (const Rhs &rhs)
Assignment operator.
bool | operator== (const Value &rhs) const
Comparison operator.
template<typename Type >
const Type * | get () const
Gets content if it has a certain type.
template<typename Type >
Type * | get ()
Non const get().

Private Attributes

DataType_ | data_

Detailed Description

A single-valued container for Single, Vector or Matrix.

Constructor & Destructor Documentation

Value ( )

Default constructor sets content to Singles's default.

Value ( const DataType_ & data )

Builds and sets content.

Takes type on the 1-level-down on the value hierarchy.

Parameters:
data : The content.
Value ( const Rhs & rhs ) [inline]

Builds and sets content.

Takes type on a 2-or-more-levels-down on the value hierarchy.

Parameters:
rhs : The content.

If you get an error here about 'keyvaluevalue::Parent<Rhs>', this means that Rhs isn't in a lower level in the hierarchy.

Member Function Documentation

Value & operator= ( const Rhs & rhs ) [inline]

Assignment operator.

Takes type on a 2-or-more-levels-down on the value hierarchy.

Parameters:
rhs : The data to be assigned.
Returns:
A reference to this.

If you get an error here about 'keyvaluevalue::Parent<P>', this means that Rhs isn't in a lower level in the hierarchy.

bool operator== ( const Value & rhs ) const

Comparison operator.

const Type* get ( ) const [inline]

Gets content if it has a certain type.

Parameters:
Type : (template parameter) The expected content's type.
Returns:
A const pointer to the content, if it is of type Type. Otherwise, a null pointer.
Type* get ( ) [inline]

Non const get().

Generated on Sat Mar 20 14:15:21 2010 for KeyValue by doxygen 1.6.1


KeyValue: Variant Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::value::Variant

Variant Class Reference

Single-value multi-type container. More...

#include "keyvalue/value/Variant.h"

List of all members.

Public Types

typedef boost::variant
< Nothing, bool, double, ptime,
string > 		DataType_

Public Member Functions

Variant ()
Default constructor sets content to Nothing.
Variant (const DataType_ &data)
Builds and sets content.
template<typename Rhs >
Variant (const Rhs &rhs)
Builds and sets content.
Variant (const Single &data)
Builds and sets content.
template<typename Rhs >
Variant & | operator= (const Rhs &rhs)
Assingment operator.
template<typename ElementType >
bool | is (frontend::LexicalToolKit::IO io) const
Checks if content is convertible to ElementType.
template<typename ElementType >
ElementType | get (frontend::LexicalToolKit::IO io) const
Gets content converted ElementType.

Private Member Functions

template<typename ElementType >
const ElementType * | get () const
Gets content.

Private Attributes

DataType_ | data_

Friends

std::ostream & | operator<< (std::ostream &os, const Variant &variant)

Detailed Description

Single-value multi-type container.

A Variant is a single-value container for one of the following types:

  • Nothing;
  • bool;
  • double;
  • ptime;
  • string.

Constructor & Destructor Documentation

Variant ( )

Default constructor sets content to Nothing.

Variant ( const DataType_ & data )

Builds and sets content.

Takes type on the 1-level-down on the value hierarchy.

Parameters:
data : The content.
Variant ( const Rhs & rhs ) [inline]

Builds and sets content.

Takes type on a 2-or-more-levels-down on the value hierarchy.

Parameters:
rhs : The content.

If you get an error here about 'keyvaluevalue::Parent<Rhs>', this means that Rhs isn't in a lower level in the hierarchy.

Variant ( const Single & data )

Builds and sets content.

Takes type on the 1-level-up on the value hierarchy.

Parameters:
data : The content.

Member Function Documentation

Variant & operator= ( const Rhs & rhs ) [inline]

Assingment operator.

Takes type on a 2-or-more-levels-below of the value hierarchy.

Parameters:
rhs : The data to be assigned.
Returns:
A reference to this.

If you get an error here about 'keyvaluevalue::Parent<P>', this means that Rhs isn't in a lower level in the hierarchy.

bool is ( frontend::LexicalToolKit::IO io ) const [inline]

Checks if content is convertible to ElementType.

If ElementType and content's type are the same, then this method returns true. If not, this method also considers lexical conversions (see documentation of get()) but only partially: Indeed, it returns true if the current frontend::FrontEnd enables lexical conversion from content's type to ElementType. However, it does not guarantee that the conversion will succeed when performed. For instance, suppose *this stores the string "foo". Assume also ElementType is double and conversion from string to double is enabled by frontend::FrontEnd. Then this method will return true but the method get<double>() will (probably) fail because "foo" is not convertible to a double (nevertheless, remind that what happens depends on the lexical converter which can do whatever it wants!)

ElementType can be any Variant allowed type. Additionally, this method allows for ElementType to be unsigned int. In this case, it checks if content type is a double whose value is a positive integer.

See get() for more details on lexical conversions.

Parameters:
ElementType | : (template parameter) the type to be checked;
io | : Direction for required conversion (see frontend::LexicalToolKit).
Returns:
If content's type is convertible to ElementType, then this method returns true. Otherwise, it returns false.
ElementType get ( frontend::LexicalToolKit::IO io ) const [inline]

Gets content converted ElementType.

Debug build firstly checks whether content is convertible to ElementType (through is<ElementType>()). If not, an exception is thrown. Release build does not check and has undefined behavior if content is not convertible to ElementType.

Conversion follows these steps: First it checks if content's type and ElementType coincide, in which case, it returns a copy of content. Otherwise, it calls enabled and meaningful frontend::FrontEnd lexical converter functions (see frontend::FrontEnd and frontend::LexicalToolKit) in the following order:

  • from double to ElementType;
  • from string to ElementType;
  • from bool to ElementType;
  • from ptime to ElementType.

ElementType can be any Variant allowed type. Additionally, this method allows for the special ElementType unsigned int. In this case, it checks if content type is a double whose value is a positive integer.

Parameters:
ElementType | : (template parameter) the target type;
io | : Direction of required conversion (see frontend::LexicalToolKit).
Returns:
The converted content if conversion succeeds.
Exceptions:
LogicError | : (Debug built only) if content is not convertible to ElementType.
frontend::LexicalToolKit::Failure& | : if conversion fails.
const ElementType* get ( ) const [inline, private]

Gets content.

This private low-level method which is a helper to public methods is() and get(). No lexical conversions are considered.

Parameters:
ElementType : (template parameter) expected content's type.
Returns:
A const pointer to the content, if it is of type ElementType. Otherwise, a null pointer.
Generated on Sat Mar 20 14:15:21 2010 for KeyValue by doxygen 1.6.1


KeyValue: Vector< ElementType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::Vector

Vector< ElementType > Class Template Reference

Generic key whose converter type is StdVector. More...

#include "keyvalue/key/generic/Vector.h"

Inheritance diagram for Vector< ElementType >:
[legend]

List of all members.

Public Types

enum
typedef Traits< ElementType,
StdVector, Default > 		Traits_
typedef StdVector< typename
Default< ElementType >
::OutputType_ > 		ConverterType_
typedef ConverterType_::InputType_ | InputType_
typedef ConverterType_::OutputType_ | OutputType_

Public Member Functions

Vector (const string &name, size_t size=0)
Constructs the key and sets its name and the expected size of the StdVector content.
string | getName () const
Gets Key's name.
void | setName (const string &name)
Sets name.

Private Member Functions

void | checkSize (size_t size) const
Checks if size matches expected size.

Private Attributes

size_t | size_

Detailed Description

template<typename ElementType>
class keyvalue::key::Vector< ElementType >

Generic key whose converter type is StdVector.

On construction, the key name and the expected size of the StdVector content are fixed. (Recall that StdVector holds a std::vector.) At the time the value for this key is requested, the size of StdVector content and its expected size will be compared. If they do not match, then an exception::RuntimeError will be thrown.

Parameters:
ElementType : (template parameter) Vector element type.

Constructor & Destructor Documentation

Vector | ( | const string & | name,
 |  | size_t | size = 0 |
 | ) |  |  | [inline, explicit]

Constructs the key and sets its name and the expected size of the StdVector content.

Parameters:
name | : The key name;
size | : Expected size. By default, size = 0 which means there is no expected size, i.e., any stricktly positive size for the StdVector content will be accepted.

Member Function Documentation

void checkSize ( size_t size ) const [inline, private]

Checks if size matches expected size.

Parameters:
size : The size.

RuntimeError : If size does not match expected size.

string getName ( ) const [inherited]

Gets Key's name.

Returns:
The Key's name.

Reimplemented from Key.

void setName ( const string & name ) [inherited]

Sets name.

Parameters:
name : The name.
Generated on Sat Mar 20 14:15:04 2010 for KeyValue by doxygen 1.6.1


KeyValue: Vector Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::value::Vector

Vector Class Reference

A m x 1 or 1 x n Matrix. More...

#include "keyvalue/value/Vector.h"

Inheritance diagram for Vector:
[legend]

List of all members.

Public Member Functions

Vector (size_t size=1, bool isRow=false)
Constructs a Vector with a given size.
template<typename ElementType >
Vector (const vector< ElementType > &data, bool isRow=false)
Builds a Vector from a std::vector<ElementType>.
size_t | getSize () const
Gets Vector size.
void | resize (size_t size)
Resizes the vector.
const Variant & | operator() (size_t i) const
Provides access to the i-th element.
Variant & | operator() (size_t i)
Non const operator()().
void | transpose ()
Transposes the vector.
size_t | getNRows () const
Gets number of rows.
size_t | getNCols () const
Gets number of columns.
void | resize (size_t nRows, size_t nCols)
Resizes the matrix.
const Variant & | operator() (size_t i, size_t j) const
Provides access to the element in the i-th row and j-th column.
Variant & | operator() (size_t i, size_t j)
Non const operator()().
bool | operator== (const Matrix &rhs) const
Comparison operator.

Protected Member Functions

void | transposeVector ()
Transposes the matrix if one of its dimensions is 1.

Detailed Description

A m x 1 or 1 x n Matrix.

See Matrix documentation for more details.

Constructor & Destructor Documentation

Vector | ( | size_t | size = 1,
 |  | bool | isRow = false |
 | ) |  |  | [explicit]

Constructs a Vector with a given size.

Debug build throws an exception when size is zero. Release build has undefined behavior in that circumstance.

Parameters:
size | : Vector size;
isRow | : When this parameter is true (default), a 1 x dim Matrix is built. Otherwise a dim x 1 Matrix is built.
Exceptions:
LogicError : (Debug build only) When dim = 0.
Vector | ( | const vector< ElementType > & | data,
 |  | bool | isRow = false |
 | ) |  |  | [inline]

Builds a Vector from a std::vector<ElementType>.

ElementType must be one of the following types,

  • bool;
  • double;
  • ptime;
  • string.
Parameters:
ElementType | : (template parameter) The input vector element type;
data | : A vector defining the content.
isRow | : When this parameter is true (default), a 1 x dim Matrix is built. Otherwise a dim x 1 Matrix is built.

Member Function Documentation

size_t getSize ( ) const

Gets Vector size.

Returns:
The size.
void resize ( size_t size )

Resizes the vector.

The size of a vector can not increase. Debug build check for this and an exception is thrown when the test fails. Release build has undefined behavior in this case.

Parameters:
size : New size.
Exceptions:
LogicError : (Debug build only) If the new dimension is greater than the original one.
const Variant& operator() ( size_t i ) const

Provides access to the i-th element.

Debug build performs bound check and throws an exception when the check fail. Release build has undefined behavior in that circumstance.

Parameters:
i : Element's index.
Returns:
A const reference to the i-th element.
Exceptions:
LogicError : (Debug build only) When i is not smaller than vector's dimension.
Variant& operator() ( size_t i )

Non const operator()().

void transpose ( )

Transposes the vector.

size_t getNRows ( ) const [inherited]

Gets number of rows.

Returns:
The number of rows.
size_t getNCols ( ) const [inherited]

Gets number of columns.

Returns:
The number of columns.
void resize | ( | size_t | nRows,
 |  | size_t | nCols |
 | ) |  |  | [inherited]

Resizes the matrix.

The size of a matrix (i.e., number of rows times number of columns) can not increase. Debug build check for this and an exception is thrown when the test fails. Release build has undefined behavior in this case.

The contents of a matrix after resizing is undefined.

Parameters:
nRows | : number of rows;
nCols | : number of columns.
Exceptions:
LogicError : (Debug build only) If the new size is greater than the original one.
const Variant& operator() | ( | size_t | i,
 |  | size_t | j |
 | ) |  |  | const [inherited]

Provides access to the element in the i-th row and j-th column.

Debug build perform bound checks and throws an exception on failure. Release build has undefined behavior in that case.

Parameters:
i | : Row index;
j | : Column index.
Returns:
A const reference to (i, j)-th element.
Exceptions:
LogicError : (Debug build only) If i is not smaller than the number of rows or j is not smaller than the number of columns.
Variant& operator() | ( | size_t | i,
 |  | size_t | j |
 | ) |  |  | [inherited]

Non const operator()().

bool operator== ( const Matrix & rhs ) const [inherited]

Comparison operator.

Recall that Matrix has reference semantics. Consider the code:

Matrix m1(2,2);
m1(0,0) = m1(0,1) = m1(1,0) = m1(1,1) = 1.0;
Matrix m2(2,2); m2(0,0) = m2(0,1) = m2(1,0) = m2(1,1) = 1.0;
Matrix m3(m1);

Then m1 == m2 is false and m1 == m3 is true.

Parameters:
rhs : The Value to be compared against.
Returns:
This method returns true if *this and rhs refer to the same data. Otherwise it returns false.
void transposeVector ( ) [protected, inherited]

Transposes the matrix if one of its dimensions is 1.

In-place matrix transposition is a complicated stuff. See

http://en.wikipedia.org/wiki/In-place_matrix_transposition

However, since the storage is linear, the memory layouts of n x 1 and 1 x n matrix, are the same. Hence, we only need to swap dimensions. This method is intent to perform only this simple transposition and it is protected to be called by Vector which derives from this class.

Debug build checks if either of the dimensions is 1 and throws an exception if the test fails. Release build has undefined behaviour in that circumstance.

Exceptions:
LogicError : (Debug build only) If none of dimensions is 1.
Generated on Sat Mar 20 14:15:21 2010 for KeyValue by doxygen 1.6.1


KeyValue: VectorOutput Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::VectorOutput

VectorOutput Class Reference

VectorOutput key. More...

#include "keyvalue/key/specific/VectorOutput.h"

Inheritance diagram for VectorOutput:
[legend]

List of all members.

Public Types

enum | Flag { AsIs, Row, Column }

Defines the possible values for VectorOutput.

More...
enum
typedef Traits
< VectorOutputBase::Flag,
StdSingle, FlagMap > 		Traits_
typedef StdSingle< typename
FlagMap
< VectorOutputBase::Flag >
::OutputType_ > 		ConverterType_
typedef ConverterType_::InputType_ | InputType_
typedef ConverterType_::OutputType_ | OutputType_

Public Member Functions

Flag | get (const string &name) const
Partially maps names into flags.
string | getName () const
Gets Key's name.
void | setName (const string &name)
Sets name.
VectorOutputBase::Flag | map (const value::Variant &variant) const
Performs the mapping.

Detailed Description

VectorOutput key.

Key's name is "VectorOutput".

Member Enumeration Documentation

enum Flag [inherited]

Defines the possible values for VectorOutput.

Member Function Documentation

Flag get ( const string & name ) const [virtual]

Partially maps names into flags.

Maps "AsIs", "Row", and "Column", resp., to AsIs, Row and Column.

Parameters:
name : Name to be mapped;
Returns:
Flag corresponding to name.
Exceptions:
keyvalue::RuntimeError : If name is unknown.

Implements FlagMap< VectorOutputBase::Flag >.

string getName ( ) const [inherited]

Gets Key's name.

Returns:
The Key's name.

Reimplemented from Key.

void setName ( const string & name ) [inherited]

Sets name.

Parameters:
name : The name.
VectorOutputBase::Flag map ( const value::Variant & variant ) const [inherited]

Performs the mapping.

This method converts the input from value::Variant to string and calls get().

Parameters:
variant : A value::Variant containing the input string to be mapped.
Returns:
The mapping result.
Generated on Sat Mar 20 14:15:09 2010 for KeyValue by doxygen 1.6.1


KeyValue: VectorOutputBase Struct Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::key::VectorOutputBase

VectorOutputBase Struct Reference

VectorOutput's base class. More...

#include "keyvalue/key/specific/VectorOutput.h"

Inheritance diagram for VectorOutputBase:
[legend]

List of all members.

Public Types

enum Flag { AsIs, Row, Column }

Defines the possible values for VectorOutput.

More...

Detailed Description

VectorOutput's base class.

The sole purpose of this class is to define enum Flag which is inherited by VectorOutput.

Member Enumeration Documentation

enum Flag

Defines the possible values for VectorOutput.

Generated on Sat Mar 20 14:15:08 2010 for KeyValue by doxygen 1.6.1


KeyValue: Warning Class Reference

  • Class List
  • Class Hierarchy
  • Class Members

Warning Class Reference

MessageImpl instance used for warning messages. More...

#include "keyvalue/sys/message/MessageImpl.h"

Detailed Description

MessageImpl instance used for warning messages.

typedef MessageImpl<2> Warning;

Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: WindowsConsole Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::logger::WindowsConsole

WindowsConsole Class Reference

This class implements a Windows console Logger. More...

#include "keyvalue/sys/logger/WindowsConsole.h"

Inheritance diagram for WindowsConsole:
[legend]

List of all members.

Public Types

typedef LoggerImpl
< keyvalue::logger::AddPrefix,
keyvalue::logger::XtermColor,
keyvalue::logger::ForwardToGlobalLogger > 		MyBase_
typedef LoggerImpl< AddPrefix,
XtermColor,
ForwardToGlobalLogger > 		LoggerImpl_
enum | Device { Console, File, Standard }

Public Member Functions

WindowsConsole (unsigned int level, const string &title, const string &path)
unsigned int | getLevel () const
Gets Logger's current level.
void | setLevel (unsigned int level)
Sets Logger's current level.
bool | log (const Message &message)
Logs a Message.

Protected Member Functions

bool | sendHeader ()
Sends the header message.

Private Member Functions

bool | send (const string &message)
Sends a raw string message to the Logger's underlying device.

Private Attributes

HANDLE | childStdInWrite_
PROCESS_INFORMATION | childProcess_

Detailed Description

This class implements a Windows console Logger.

Member Function Documentation

bool send ( const string & message ) [private, virtual]

Sends a raw string message to the Logger's underlying device.

Parameters:
message : Message to be sent.
Returns:
This method returns false if it fails. Otherwise, it returns true.

Implements LoggerImpl< AddPrefix, XtermColor, ForwardToGlobalLogger >.

unsigned int getLevel ( ) const [virtual, inherited]

Gets Logger's current level.

Returns:
The level.

Implements Logger.

void setLevel ( unsigned int level ) [virtual, inherited]

Sets Logger's current level.

Parameters:
level : New level.

Implements Logger.

bool log ( const Message & message ) [virtual, inherited]

Logs a Message.

This method may fail if the implemented Logger cannot process the message (e.g. a console Logger that has no longer a console window).

Parameters:
message : Message to be logged.
Returns:
This method returns true if it is successful.

Implements Logger.

bool sendHeader ( ) [protected, inherited]

Sends the header message.

This method sends (throw send()) an opening header message to the underlying device of the Logger.

Returns:
This method returns what print() does.
Generated on Sat Mar 20 14:15:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: XBuilder< ObjectType > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::XBuilder

XBuilder< ObjectType > Class Template Reference

Primary template class for XBuilder's specializations. More...

#include "keyvalue/mngt/XBuilder.h"

Inheritance diagram for XBuilder< ObjectType >:
[legend]

List of all members.

Public Member Functions

shared_ptr< ObjectType > | getObject (const value::Variant &data) const
Gets the result of processing a value::Variant.
const char * | getName () const
Gets Builder's name.
value::Result | getResult (const DataSet &data) const
Gets result of processing a DataSet.
value::Result | getResult (const value::Variant &data) const
Gets result of processing a value::Variant.
virtual shared_ptr< ObjectType > | getObject (const DataSet &data) const
Gets the result of processing a DataSet.

Static Public Member Functions

static Builder & | getInstance ()
Gets the unique instance of a XBuilder specialization.

Static Protected Member Functions

static void | setGetter (Builder &(*getter)())
Sets the point of acess to the unique instance of a Builder specialization.

Static Private Member Functions

static Builder & | getSingleton ()
Gets the unique instance of an XBuilder specialization.

Detailed Description

template<typename ObjectType>
class keyvalue::XBuilder< ObjectType >

Primary template class for XBuilder's specializations.

This template class<> extends Builder through public inheritance. While a regular Builder specialization needs a DataSet to store the data needed to construct an object, the XBuilder can construct from a single value::Variant input.

Member Function Documentation

Builder< ObjectType > & getInstance ( ) [inline, static]

Gets the unique instance of a XBuilder specialization.

This method calls Builder::setGetter() to set method getSingleton() below as the point of access to the unique instance of the corresponding Builder specialization. Then it returns this instance.

return A reference to the unique instance of an XBuilder specialization.

Reimplemented from Builder< ObjectType >.

shared_ptr<ObjectType> getObject ( const value::Variant & data ) const [virtual]

Gets the result of processing a value::Variant.

The implementation must be provided by specializations.

Parameters:
data : Input value::Variant.
Returns:
A pointer to the object built.

Reimplemented from Builder< ObjectType >.

Builder< ObjectType > & getSingleton ( ) [inline, static, private]

Gets the unique instance of an XBuilder specialization.

return A reference to the unique instance of an XBuilder specialization.

Reimplemented from Builder< ObjectType >.

const char* getName ( ) const [virtual, inherited]

Gets Builder's name.

The implementation must be provided by specializations. (For an example see keyvalue/bridge/processor/Logger.cpp.)

Returns:
The name.

Implements Processor.

value::Result getResult ( const DataSet & data ) const [inline, virtual, inherited]

Gets result of processing a DataSet.

A redirection to getObject(const DataSet& data).

Parameters:
data : DataSet to be processed.
Returns:
The result.

Implements Processor.

value::Result getResult ( const value::Variant & data ) const [inline, virtual, inherited]

Gets result of processing a value::Variant.

A redirection to getObject(const value::Variant& data).

Parameters:
data : value::Variant to be processed.
Returns:
The result.

Implements Processor.

virtual shared_ptr<ObjectType> getObject ( const DataSet & data ) const [virtual, inherited]

Gets the result of processing a DataSet.

The implementation must be provided by specializations. (For an example see keyvalue/bridge/processor/Logger.cpp.)

Parameters:
data : Input DataSet.
Returns:
A pointer to the object built.
void setGetter ( Builder< ObjectType > &(*)() getter ) [inline, static, protected, inherited]

Sets the point of acess to the unique instance of a Builder specialization.

Each specialization of this template class must be a singleton and the getInstance() method above gives acess to this unique instance.

However, trough public inheritance, a Buider specialization can be extended to an XBuilder one. In this case, the unique accesible instance of a Builder specialization must be an instance of an XBuilder specialization. Therefore, each XBuilder specialization must register itself as the provider of the unique instance of the Builder specialization which is returned by getInstance().

The registration is done by calling this method and providing a global point of access to the unique instance of the Builder specialization.

Parameters:
: A pointer to a funtion which returns a reference to the unique instance of a Builder specialization.
Generated on Sat Mar 20 14:14:54 2010 for KeyValue by doxygen 1.6.1


KeyValue: XCalculator< Tag > Class Template Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::XCalculator

XCalculator< Tag > Class Template Reference

Primary template class for XCalculator's specializations. More...

#include "keyvalue/mngt/XCalculator.h"

Inheritance diagram for XCalculator< Tag >:
[legend]

List of all members.

Public Member Functions

value::Value | getValue (const value::Variant &data) const
Gets the result of processing a value::Variant.
const char * | getName () const
Gets Calculator's name.
value::Result | getResult (const DataSet &data) const
Gets result of processing a DataSet.
value::Result | getResult (const value::Variant &data) const
Gets result of processing a value::Variant.
virtual value::Value | getValue (const DataSet &data) const
Gets the result of processing a DataSet.

Static Public Member Functions

static Calculator & | getInstance ()
Gets the unique instance of a XCalculator specialization.

Static Protected Member Functions

static void | setGetter (Calculator &(*getter)())
Sets the point of acess to the unique instance of a Calculator specialization.

Static Private Member Functions

static Calculator & | getSingleton ()
Gets the unique instance of an XCalculator specialization.

Detailed Description

template<typename Tag>
class keyvalue::XCalculator< Tag >

Primary template class for XCalculator's specializations.

This template class<> extends Calculator through public inheritance. While a regular Calculator specialization needs a DataSet to store the data needed to compute the result, the XCalculator can calculates from a single value::Variant input.

Member Function Documentation

Calculator< Tag > & getInstance ( ) [inline, static]

Gets the unique instance of a XCalculator specialization.

This method calls Calculator::setGetter() to set method getSingleton() below as the point of access to the unique instance of the corresponding Calculator specialization. Then it returns this instance.

return A reference to the unique instance of an XCalculator specialization.

Reimplemented from Calculator< Tag >.

value::Value getValue ( const value::Variant & data ) const [virtual]

Gets the result of processing a value::Variant.

The implementation must be provided by specializations.

Parameters:
data : Input value::Variant.
Returns:
The calculated value.

Reimplemented from Calculator< Tag >.

Calculator< Tag > & getSingleton ( ) [inline, static, private]

Gets the unique instance of an XCalculator specialization.

return A reference to the unique instance of an XCalculator specialization.

Reimplemented from Calculator< Tag >.

const char* getName ( ) const [virtual, inherited]

Gets Calculator's name.

Implementation must be provided by specializations. (For an example see keyvalue/bridge/processor/DataSetNames.cpp.)

Returns:
The name.

Implements Processor.

value::Result getResult ( const DataSet & data ) const [inline, virtual, inherited]

Gets result of processing a DataSet.

A redirection to getValue(const DataSet& data).

Parameters:
data : DataSet to be processed.
Returns:
The result.

Implements Processor.

value::Result getResult ( const value::Variant & data ) const [inline, virtual, inherited]

Gets result of processing a value::Variant.

A redirection to getValue(const value::Variant& data).

Parameters:
data : value::Variant to be processed.
Returns:
The result.

Implements Processor.

virtual value::Value getValue ( const DataSet & data ) const [virtual, inherited]

Gets the result of processing a DataSet.

Implementation must be provided by specializations. (For an example see keyvalue/bridge/processor/DataSetNames.cpp.)

Parameters:
data : Input DataSet.
Returns:
The calculated value.
void setGetter ( Calculator< Tag > &(*)() getter ) [inline, static, protected, inherited]

Sets the point of acess to the unique instance of a Calculator specialization.

Each specialization of this template class must be a singleton and the getInstance() method above gives acess to this unique instance.

However, trough public inheritance, a Buider specialization can be extended to an XCalculator one. In this case, the unique accesible instance of a Calculator specialization must be an instance of an XCalculator specialization. Therefore, each XCalculator specialization must register itself as the provider of the unique instance of the Calculator specialization which is returned by getInstance().

The registration is done by calling this method and providing a global point of access to the unique instance of the Calculator specialization.

Parameters:
: A pointer to a funtion which returns a reference to the unique instance of a Calculator specialization.
Generated on Sat Mar 20 14:14:54 2010 for KeyValue by doxygen 1.6.1


KeyValue: XtermColor Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::logger::XtermColor

XtermColor Class Reference

Defines a policy for Message color, which is, to set the underlying device of the Logger to print in Message's color. More...

#include "keyvalue/sys/logger/policy/XtermColor.h"

Inheritance diagram for XtermColor:
[legend]

List of all members.

Protected Member Functions

bool | apply (const Message &message)
virtual bool | send (const string &message)=0

Detailed Description

Defines a policy for Message color, which is, to set the underlying device of the Logger to print in Message's color.

Generated on Sat Mar 20 14:15:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: XtermConsole Class Reference

  • Class List
  • Class Hierarchy
  • Class Members
keyvalue::logger::XtermConsole

XtermConsole Class Reference

Implements an xterm console Logger. More...

#include "keyvalue/sys/logger/XtermConsole.h"

Inheritance diagram for XtermConsole:
[legend]

List of all members.

Classes

class | FileRaii
XtermConsole's helper class for file management. More...

Public Types

typedef LoggerImpl< AddPrefix,
XtermColor,
ForwardToGlobalLogger > 		LoggerImpl_
enum | Device { Console, File, Standard }

Public Member Functions

XtermConsole (unsigned int level, const string &title)
unsigned int | getLevel () const
Gets Logger's current level.
void | setLevel (unsigned int level)
Sets Logger's current level.
bool | log (const Message &message)
Logs a Message.

Protected Member Functions

bool | sendHeader ()
Sends the header message.

Private Member Functions

bool | send (const string &message)
Sends a raw string message to the Logger's underlying device.

Private Attributes

unsigned int | level_
pid_t | childPid_
FileRaii | writeSlave_

Detailed Description

Implements an xterm console Logger.

Member Function Documentation

bool send ( const string & message ) [private, virtual]

Sends a raw string message to the Logger's underlying device.

Parameters:
message : Message to be sent.
Returns:
This method returns false if it fails. Otherwise, it returns true.

Implements LoggerImpl< AddPrefix, XtermColor >.

unsigned int getLevel ( ) const [virtual, inherited]

Gets Logger's current level.

Returns:
The level.

Implements Logger.

void setLevel ( unsigned int level ) [virtual, inherited]

Sets Logger's current level.

Parameters:
level : New level.

Implements Logger.

bool log ( const Message & message ) [virtual, inherited]

Logs a Message.

This method may fail if the implemented Logger cannot process the message (e.g. a console Logger that has no longer a console window).

Parameters:
message : Message to be logged.
Returns:
This method returns true if it is successful.

Implements Logger.

bool sendHeader ( ) [protected, inherited]

Sends the header message.

This method sends (throw send()) an opening header message to the underlying device of the Logger.

Returns:
This method returns what print() does.
Generated on Sat Mar 20 14:15:16 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- a -

  • add() : DataSet , ProcessorMngr , Repository
  • apply() : ForwardToGlobalLogger , IgnoreFailure
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Graphical Class Hierarchy

  • Class List
  • Class Hierarchy
  • Class Members

Graphical Class Hierarchy

Go to the textual class hierarchy

Generated on Sat Mar 20 14:14:51 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue Namespace Reference

  • Namespace List
  • Namespace Members

keyvalue Namespace Reference

All functionalities of KeyValue library are inside this namespace. More...

Namespaces

namespace | bridge

Pointers to processors (those used for registration into ProcessorMngr) belong to this namespace.

namespace | key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

namespace | frontend

All classes and functions needed by front-ends are inside this namespace.

namespace | value

All KeyValue containers belong to this namespace.

namespace | pattern

Key-value pattern recognition class are members of this namespace.

namespace | exception

All exception functionalities are inside this namespace.

namespace | logger

All logger functionalities are inside this namespace.

namespace | util

Utility classes and functions are member of this namespace.

Classes

class | Bridge
Bridge's specific data. More...
class | Builder
Primary template class for Builder's specializations. More...
class | Calculator
Primary template class for Calculator's specializations. More...
class | DataSet
A named map from keys to values. More...
class | Processor
Protocol class that defines Processor interface. More...
class | ProcessorMngr
The processor manager. More...
class | Repository
The Repository of DataSets. More...
class | XBuilder
Primary template class for XBuilder's specializations. More...
class | XCalculator
Primary template class for XCalculator's specializations. More...
class | Message
Abstract class which defines the interface for all types of message. More...
class | MessageImpl
Implementation of class Message. More...

Typedefs

typedef MessageImpl< 0 > | Error
typedef MessageImpl< 1 > | Logic
typedef MessageImpl< 2 > | Info
typedef MessageImpl< 3 > | Warning
typedef MessageImpl< 4 > | Report
typedef MessageImpl< 5 > | Debug

Functions

value::Value | process (frontend::Queue &data)
Processes a frontend::Queue.
value::Value | process (shared_ptr< DataSet > data)
Processes a DataSet.
std::ostream & | operator<< (std::ostream &os, const Message &message)
ostream operator<<() for Message.

Variables

Builder< ObjectType > &(* | Builder )()
Calculator< Tag > &(* | Calculator )()

Detailed Description

All functionalities of KeyValue library are inside this namespace.

This class implements a standard Logger.

Function Documentation

value::Value keyvalue::process ( frontend::Queue & data )

Processes a frontend::Queue.

This function creates a DataSet from a frontend::Queue. The DataSet gets the frontend::Queue's name after leading and trailing white spaces are removed. Key-value patterns are parsed at this stage.

Then the DataSet is sent to process(shared_ptr<DataSet>).

Parameters:
data : the original frontend::Queue.
Returns:
The DataSet's name or the result of DataSet processing.
value::Value keyvalue::process ( shared_ptr< DataSet > data )

Processes a DataSet.

This function adds a DataSet to the Repository and, if requested, process it.

By default, the DataSet is not processed, unless its name is empty or key 'ProcessNow' is 'TRUE'.

Parameters:
data : The DataSet to be added to the Repository;
Returns:
When the DataSet is processed, the result of this processing is returned. Otherwise DataSet's name is returned.
std::ostream& keyvalue::operator<< | ( | std::ostream & | os,
 |  | const Message & | message
 | ) |  |

ostream operator<<() for Message.

Variable Documentation

Builder<ObjectType>&(* Builder)()
Initial value:

  Builder<ObjectType>::getSingleton
Calculator<Tag>&(* Calculator)()
Initial value:

  Calculator<Tag>::getSingleton
Generated on Sat Mar 20 14:14:51 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue::bridge Namespace Reference

  • Namespace List
  • Namespace Members
keyvalue::bridge

keyvalue::bridge Namespace Reference

Pointers to processors (those used for registration into ProcessorMngr) belong to this namespace. More...

Detailed Description

Pointers to processors (those used for registration into ProcessorMngr) belong to this namespace.

Generated on Sat Mar 20 14:14:55 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue::exception Namespace Reference

  • Namespace List
  • Namespace Members
keyvalue::exception

keyvalue::exception Namespace Reference

All exception functionalities are inside this namespace. More...

Classes

class | Exception
Base protocol class for all exceptions. More...
class | ExceptionImpl
Concrete template class which implements Exception's pure virtual methods. More...

Typedefs

typedef ExceptionImpl
< std::runtime_error, Error > 		RuntimeError
typedef ExceptionImpl
< std::logic_error, Logic > 		LogicError

Functions

std::ostream & | operator<< (std::ostream &os, const Exception &exception)
ostream operator<<() for Exception.
template<typename LhsType , typename RhsType >
LhsType & | operator& (const LhsType &lhs, const RhsType &rhs)
Non member operator& for exceptions.

Detailed Description

All exception functionalities are inside this namespace.

This namespace was created mainly to surround operator& which, otherwise, could conflict with the standard bitwise and operator, &.

The main classes inside this namespace are exception::Exception, exception::RuntimeError and exception::LogicError. They are all exported to the outer namespace, namely, keyvalue.

Function Documentation

std::ostream& keyvalue::exception::operator<< | ( | std::ostream & | os,
 |  | const Exception & | exception
 | ) |  |

ostream operator<<() for Exception.

LhsType& keyvalue::exception::operator& | ( | const LhsType & | lhs,
 |  | const RhsType & | rhs |
 | ) |  |  | [inline]

Non member operator& for exceptions.

This function appends data to an ExceptionImpl by forwarding the call to ExceptionImpl::operator&. Additionally, this function provides two services:

  • Cast the const-ness away: Consider this typical use of operator&:

throw RuntimeError() & "Invalid price." ...

Notice that the RuntimeError object is a temporary and, thus, automatically qualified as const. This const-ness must be casted away inside this function since the 'temporary' must change.

  • Prevent up casting: Exception classes derived from any instance of ExceptionImpl inherit ExceptionImpl::operator& which returns a reference to the base class. This causes a problem when throwing derived objects which make use of ExceptionImpl::operator&. For instance, recall that Repository::NotFound derives from RuntimeError which is an instance of ExceptionImpl and consider the following piece of code:

try {
  throw Repository::NotFound() & "Foo";
}
catch(Repository::NotFound&) {
  // do something
}

If the operator& above is the ExceptionImpl's member, then the result of Repository::NotFound() & "Foo" is a ExceptionImpl and not a Repository::NotFound. Hence, the catch block will not be executed.

The type of the left operand of operator& given here is a template parameter. Hence, this function provides a better type match to Repository::NotFound than ExceptionImpl::operator& because the latter needs to up cast the left operand. Moreover, this function can return the same type of its left operand. We conclude that this function takes precedence over ExceptionImpl::operator& and its result has same type as its left operand. Therefore, the issue described above vanishes.

Last but not least. This class is inside the namespace exception. Thanks to Koenig look-up, it prevents name clashes with the bitwise 'AND' operator &.

Parameters:
LhsType | : (template parameter) Type of left operand;
RhsType | : (template parameter) Type of right operand;
lhs | : Left operand;
rhs | : Left operand.
Returns:
A non const reference to the result of lhs.operator&(rhs).
Generated on Sat Mar 20 14:14:55 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue::frontend Namespace Reference

  • Namespace List
  • Namespace Members
keyvalue::frontend

keyvalue::frontend Namespace Reference

All classes and functions needed by front-ends are inside this namespace. More...

Classes

class | FrontEnd
Front-end's specific data. More...
class | LexicalToolKit
Manager of all lexical converters needed for front-end input/output. More...
class | Queue
Protocol class which defines the Queue interface. More...

Detailed Description

All classes and functions needed by front-ends are inside this namespace.

Generated on Sat Mar 20 14:14:57 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue::key Namespace Reference

  • Namespace List
  • Namespace Members
keyvalue::key

keyvalue::key Namespace Reference

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace. More...

Classes

class | Device
Device key. More...
class | Global
Global key. More...
class | Level
Level key. More...
class | Checker
Primary key checker template class. More...
class | Checker< ConverterType, value::Single >
Specialization of Checker for InputType equal to value::Single. More...
class | Checker< ConverterType, value::Vector >
Specialization of Checker for InputType equal to value::Vector. More...
class | Checker< ConverterType, value::Matrix >
Specialization of Checker for InputType equal to value::Matrix. More...
class | StdMatrix
Converter from value::Matrix to shared_ptr<std::vector<std::vector<ElementType>>>. More...
class | StdSingle
Converter from value::Single to ElementType. More...
class | StdVector
Converter from value::Vector to shared_ptr<std::vector<ElementType>>. More...
class | Geq
Greater-than-or-equal-to bound class. More...
class | Greater
Greater-than bound class. More...
class | Leq
Less-than-or-equal-to bound class. More...
class | Less
Less-than bound class. More...
class | NoBound
NoBound bound class. More...
class | Bounded
Key for bounded values. More...
class | Matrix
Generic key whose converter type is StdMatrix. More...
class | Decreasing
Decreasing monotone class. More...
class | Increasing
Increasing monotone class. More...
class | NonMonotone
NonMonotone class. More...
class | StrictlyDecreasing
StrictlyDecreasing monotone class. More...
class | StrictlyIncreasing
StrictlyIncreasing monotone class. More...
class | MonotoneBoundedVector
Key for monotone bounded vectors. More...
class | Positive
A general key for positive values. More...
class | Single
Generic key whose converter type is StdSingle. More...
class | StrictlyPositive
A general key whose value is a strictly positive number. More...
class | Vector
Generic key whose converter type is StdVector. More...
class | Key
Base for all real keys. More...
struct | DefaultMap
Meta-function which defines Traits' default map type. More...
struct | Default
Meta-function which defines Traits' default map type. More...
class | FlagMap
Maps names to constants. More...
class | NoMap
Identity map (aka, NoMap). More...
class | ObjectMap
Maps names to objects. More...
class | PartialMap
Partially maps names to constants. More...
class | Export
Export key. More...
class | Imports
Imports key. More...
class | ProcessNow
ProcessNow key. More...
class | Processor
Processor key. More...
struct | VectorOutputBase
VectorOutput's base class. More...
class | VectorOutput
VectorOutput key. More...
class | Traits
Real keys must derive from adequate instance of this template class. More...

Detailed Description

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Generated on Sat Mar 20 14:14:57 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue::logger Namespace Reference

  • Namespace List
  • Namespace Members
keyvalue::logger

keyvalue::logger Namespace Reference

All logger functionalities are inside this namespace. More...

Classes

class | ConsoleLogger
Implements a console Logger. More...
class | FileLogger
Implements a file Logger. More...
class | GlobalLogger
The global logger class. More...
class | Logger
Protocol class which defines the interface for all types of logger. More...
class | LoggerImpl
Abstract class which implements main methods of concrete Loggers. More...
class | AddPrefix
Defines a policy for Message prefixes, which is, to send the prefix to the underlying Logger's device. More...
class | ForwardToGlobalLogger
Defines a policy to apply when the Logger fails to process a Message, namely, forward it to GlobalLogger. More...
class | IgnoreColor
Defines a policy for Message colors, which is, to ignore them. More...
class | IgnoreFailure
Defines a policy to apply when the logger fails, which is, to ignore the failure. More...
class | IgnorePrefix
Defines a policy for Message prefixes, which is, to ignore them. More...
class | XtermColor
Defines a policy for Message color, which is, to set the underlying device of the Logger to print in Message's color. More...
class | WindowsConsole
This class implements a Windows console Logger. More...
class | XtermConsole
Implements an xterm console Logger. More...

Enumerations

enum Color {
black = 0, red, green, yellow,
blue, pink, cyan, white,
grey, bold_red, bold_green, bold_yellow,
bold_blue, bold_pink, bold_cyan, bold_white
}

Console colors.

More...

Detailed Description

All logger functionalities are inside this namespace.

Enumeration Type Documentation

enum Color

Console colors.

Generated on Sat Mar 20 14:15:09 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue::pattern Namespace Reference

  • Namespace List
  • Namespace Members
keyvalue::pattern

keyvalue::pattern Namespace Reference

Key-value pattern recognition class are members of this namespace. More...

Classes

class | KeyInSingle
Pattern where a value::Single object, recognized as a key, is followed by any value::Value. More...
class | KeysInMatrix
Pattern made by a value::Matrix where all elements either in the first row or in the first column are keys. More...
class | KeysInVector
Pattern made by a value::Vector whose entries are keys followed by a value::Vector or value::Matrix. More...
class | Pattern
Protocol class which defines the interface for pattern recognition classes. More...
class | Table
Pattern where a value::Matrix contains the row, column and table keys. More...

Functions

bool | isKey (const value::Variant &variant)
Checks if variant may be considered as a key.
string | getKey (const value::Variant &variant)
Gets the key held by variant.

Detailed Description

Key-value pattern recognition class are members of this namespace.

Function Documentation

bool keyvalue::pattern::isKey ( const value::Variant & variant )

Checks if variant may be considered as a key.

The check is successful if the following conditions hold:

  • it contains a value::Single holding a string S;
  • excluding trailing spaces, S ends in " =" (space + equal sign);
  • excluding the ending '=', S has a non space character.
Parameters:
variant : value::Variant to be checked.
Returns:
If variant may be considered as a key, then this method returns true. Otherwise it returns false.
string keyvalue::pattern::getKey ( const value::Variant & variant )

Gets the key held by variant.

More precisely, the key is what remains after the following operations are performed in the string held by variant :

  • the last '=' (equal sign) is replaced by ' ' (space);
  • trailing spaces are removed;
  • leading spaces are removed.

The debug version of this method checks if variant may be considered as a key (by calling isKey()) and throws an exception when the check fails. The release version of this method has undefined behavior when variant may not be considered as a key.

Parameters:
variant : value::Variant to be checked.
Returns:
The key held by variant.
Exceptions:
LogicError : (Debug built only) if variant may not be considered as a key.
Generated on Sat Mar 20 14:15:16 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue::util Namespace Reference

  • Namespace List
  • Namespace Members
keyvalue::util

keyvalue::util Namespace Reference

Utility classes and functions are member of this namespace. More...

Classes

struct | IsBasic
This meta-function checks if a type is either bool, double, string, ptime or unsigned int or not. More...
struct | IsBasicOrEnum
This meta-function checks if a type is either bool, double, string, ptime, unsigned int or enum or not. More...
class | NullDeleter
A shared_ptr deleter that does not do anything. More...
class | Saver
Saves a variable reference at construction time to restore/set its value at destruction time. More...

Functions

template<typename From , typename To >
To | Lexical (const From &input)
Converts from type From to type To.
ptime | tenor2ptime (const ptime &start, const string &tenor)
Convert a tenor string (from a start date) into the corresponding date.

Detailed Description

Utility classes and functions are member of this namespace.

Function Documentation

To keyvalue::util::Lexical ( const From & input ) [inline]

Converts from type From to type To.

Parameters:
From | : (template parameter) The input type;
To | : (template parameter) The output type;
input | : Data to be converted.
Return values:
For | <From, To> = <double, bool> : It returns true if input != 0.0. Otherwise, it returns false.
For | <From, To> = <bool, double> : It returns 1.0 if input = true and 0.0 if input = false.
For | <From, To> = <string, bool> : It returns true if input is either "TRUE", "True", "true", "YES", "Yes", "yes", "Y" or "y". It returns false if input is either "FALSE", "False", "false", "NO", "No", "no", "N" or "n".
For | <From, To> = <bool, string> : It returns "True" if input = true and "False" if input = false.
For | <From, To> = <string, double> : It returns the double represented by string input.
For | <From, To> = <double, string> : It returns the string representation of input.

throw RuntimeError : If required converstion is invalid.

ptime keyvalue::util::tenor2ptime | ( | const ptime & | start,
 |  | const string & | tenor
 | ) |  |

Convert a tenor string (from a start date) into the corresponding date.

A tenor is a string of the form nP, where n is a positive integer and P is a char defining a period of time. Possible values for P are:

  • 'd' or 'D' for day;
  • 'w' or 'W' for week;
  • 'm' or 'M' for month; or
  • 'y' or 'Y' for year.

This function returns the date which follows start by the amount of time defined by the tenor.

Parameters:
start | : The start date;
tenor | : The tenor.
Returns:
A ptime value corresponding to the tenor amount of time from start date.
Generated on Sat Mar 20 14:15:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue::value Namespace Reference

  • Namespace List
  • Namespace Members
keyvalue::value

keyvalue::value Namespace Reference

All KeyValue containers belong to this namespace. More...

Classes

class | Matrix
Matrix of Variants. More...
class | Nothing
Empty class to represent empty data. More...
struct | Parent
Primary Parent template meta-function. More...
class | Result
A single-valued container for ObjectPtr or Value. More...
class | Single
A 1 x 1 Matrix. More...
struct | TypeName
Meta function which returns the name of type. More...
class | Value
A single-valued container for Single, Vector or Matrix. More...
class | Variant
Single-value multi-type container. More...
class | Vector
A m x 1 or 1 x n Matrix. More...

Typedefs

typedef shared_ptr< void > | ObjectPtr

Functions

void | intrusive_ptr_add_ref (Matrix::Impl *pimpl)
void | intrusive_ptr_release (Matrix::Impl *pimpl)
std::ostream & | operator<< (std::ostream &os, const Matrix &matrix)
ostream operator<<() for Matrix.
std::ostream & | operator<< (std::ostream &os, const Nothing &nothing)
ostream operator<<() for Nothing.
std::ostream & | operator<< (std::ostream &os, const Result &rhs)
ostream operator<<() for Result.
std::ostream & | operator<< (std::ostream &os, const Single &rhs)
ostream operator<<() for Single.
std::ostream & | operator<< (std::ostream &os, const Value &rhs)
ostream operator<<() for Value.
std::ostream & | operator<< (std::ostream &os, const Variant &rhs)
ostream operator<<() for Variant.
std::ostream & | operator<< (std::ostream &os, const Vector &vector)
ostream operator<<() for Vector.

Detailed Description

All KeyValue containers belong to this namespace.

Function Documentation

void keyvalue::value::intrusive_ptr_add_ref ( Matrix::Impl * pimpl )

headerfile Matrix.h "keyvalue/value/Matrix.h"

brief Increment Matrix reference counting.

See documentation of intrusive_ptr in the Smart Ptr (Boost) library.

param Pointer to Matrix::Impl storing the counter.

void keyvalue::value::intrusive_ptr_release ( Matrix::Impl * pimpl )

headerfile Matrix.h "keyvalue/value/Matrix.h"

brief Decrement Matrix reference counting.

See documentation of intrusive_ptr in the Smart Ptr (Boost) library.

param Pointer to Matrix::Impl storing the counter.

std::ostream& keyvalue::value::operator<< | ( | std::ostream & | os,
 |  | const Matrix & | matrix
 | ) |  |

ostream operator<<() for Matrix.

std::ostream& keyvalue::value::operator<< | ( | std::ostream & | os,
 |  | const Nothing & | nothing
 | ) |  |

ostream operator<<() for Nothing.

std::ostream& keyvalue::value::operator<< | ( | std::ostream & | os,
 |  | const Result & | rhs
 | ) |  |

ostream operator<<() for Result.

std::ostream& keyvalue::value::operator<< | ( | std::ostream & | os,
 |  | const Single & | rhs
 | ) |  |

ostream operator<<() for Single.

std::ostream& keyvalue::value::operator<< | ( | std::ostream & | os,
 |  | const Value & | rhs
 | ) |  |

ostream operator<<() for Value.

std::ostream& keyvalue::value::operator<< | ( | std::ostream & | os,
 |  | const Variant & | rhs
 | ) |  |

ostream operator<<() for Variant.

std::ostream& keyvalue::value::operator<< | ( | std::ostream & | os,
 |  | const Vector & | vector
 | ) |  |

ostream operator<<() for Vector.

Generated on Sat Mar 20 14:15:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Namespace List
  • Namespace Members
  • All
  • Functions
  • Enumerations
Here is a list of all documented namespace members with links to the namespaces they belong to:
  • Color : keyvalue::logger
  • getKey() : keyvalue::pattern
  • intrusive_ptr_add_ref() : keyvalue::value
  • intrusive_ptr_release() : keyvalue::value
  • isKey() : keyvalue::pattern
  • Lexical() : keyvalue::util
  • operator&() : keyvalue::exception
  • operator<<() : keyvalue::value , keyvalue , keyvalue::exception
  • process() : keyvalue
  • tenor2ptime() : keyvalue::util
Generated on Sat Mar 20 14:15:21 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/keyvalue.h File Reference

  • File List
  • File Members
keyvalue

keyvalue.h File Reference

Main page of KeyValue's reference manual. More...

Go to the source code of this file.

Namespaces

namespace keyvalue

All functionalities of KeyValue library are inside this namespace.

Detailed Description

Main page of KeyValue's reference manual.

Generated on Sat Mar 20 14:13:56 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/bridge/Bridge.h File Reference

  • File List
  • File Members
keyvalue » bridge

Bridge.h File Reference

Declaration of class Bridge. More...

#include <boost/utility.hpp>
Include dependency graph for Bridge.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Bridge
Bridge's specific data. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::bridge

Pointers to processors (those used for registration into ProcessorMngr) belong to this namespace.

Detailed Description

Declaration of class Bridge.

Generated on Sat Mar 20 14:13:17 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/bridge/Register.h File Reference

  • File List
  • File Members
keyvalue » bridge

Register.h File Reference

Registration of reserved processors. More...

Go to the source code of this file.

Detailed Description

Registration of reserved processors.

This file lists all reserved processors that will be registered into keyvalue::ProcessorMngr.

The XMacro technique is used.

Generated on Sat Mar 20 14:13:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/bridge/key/Device.h File Reference

  • File List
  • File Members
keyvalue » bridge » key

Device.h File Reference

Declaration of class Device. More...

#include "keyvalue/key/converter/StdSingle.h"
#include "keyvalue/key/map/FlagMap.h"
#include "keyvalue/key/Traits.h"
#include "keyvalue/sys/logger/Logger.h"
Include dependency graph for Device.h:

Go to the source code of this file.

Classes

class | Device
Device key. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of class Device.

Generated on Sat Mar 20 14:13:17 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/bridge/key/Global.h File Reference

  • File List
  • File Members
keyvalue » bridge » key

Global.h File Reference

Declaration of class Global. More...

#include "keyvalue/key/Traits.h"
Include dependency graph for Global.h:

Go to the source code of this file.

Classes

class | Global
Global key. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of class Global.

Generated on Sat Mar 20 14:13:18 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/bridge/key/Level.h File Reference

  • File List
  • File Members
keyvalue » bridge » key

Level.h File Reference

Declaration of class Level. More...

#include "keyvalue/key/Traits.h"
Include dependency graph for Level.h:

Go to the source code of this file.

Classes

class | Level
Level key. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of class Level.

Generated on Sat Mar 20 14:13:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/extern/Ptime.h File Reference

  • File List
  • File Members
keyvalue » extern

Ptime.h File Reference

Export boost::ptime to namespace keyvalue. More...

#include <boost/date_time/posix_time/posix_time.hpp>
Include dependency graph for Ptime.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace keyvalue

All functionalities of KeyValue library are inside this namespace.

Detailed Description

Export boost::ptime to namespace keyvalue.

Generated on Sat Mar 20 14:13:20 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/extern/SharedPtr.h File Reference

  • File List
  • File Members
keyvalue » extern

SharedPtr.h File Reference

Export boost::shared_ptr to namespace keyvalue. More...

#include <boost/shared_ptr.hpp>
#include <boost/make_shared.hpp>
Include dependency graph for SharedPtr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace keyvalue

All functionalities of KeyValue library are inside this namespace.

Detailed Description

Export boost::shared_ptr to namespace keyvalue.

Generated on Sat Mar 20 14:13:21 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/extern/String.h File Reference

  • File List
  • File Members
keyvalue » extern

String.h File Reference

Export std::string to namespace keyvalue. More...

#include <string>
Include dependency graph for String.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace keyvalue

All functionalities of KeyValue library are inside this namespace.

Detailed Description

Export std::string to namespace keyvalue.

Generated on Sat Mar 20 14:13:23 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/extern/Vector.h File Reference

  • File List
  • File Members
keyvalue » extern

Vector.h File Reference

Export std::vector to namespace keyvalue. More...

#include <vector>
Include dependency graph for Vector.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace keyvalue

All functionalities of KeyValue library are inside this namespace.

Detailed Description

Export std::vector to namespace keyvalue.

Generated on Sat Mar 20 14:13:24 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/frontend/FrontEnd.h File Reference

  • File List
  • File Members
keyvalue » frontend

FrontEnd.h File Reference

Declaration of class FrontEnd. More...

#include <boost/utility.hpp>
#include "keyvalue/extern/String.h"
#include "keyvalue/frontend/LexicalToolKit.h"
Include dependency graph for FrontEnd.h:

Go to the source code of this file.

Classes

class | FrontEnd
Front-end's specific data. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::frontend

All classes and functions needed by front-ends are inside this namespace.

Detailed Description

Declaration of class FrontEnd.

Generated on Sat Mar 20 14:13:27 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/frontend/LexicalToolKit.h File Reference

  • File List
  • File Members
keyvalue » frontend

LexicalToolKit.h File Reference

Definition of class LexicalToolKit. More...

#include <boost/utility.hpp>
#include "keyvalue/extern/String.h"
#include "keyvalue/extern/Ptime.h"
#include "keyvalue/sys/exception/Exception.h"
#include "keyvalue/util/Lexical.h"
#include "keyvalue/frontend/LexicalToolKitPairs.h"
Include dependency graph for LexicalToolKit.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | LexicalToolKit
Manager of all lexical converters needed for front-end input/output. More...
struct | Helper< From, To >
Helper class of LexicalToolKit. More...
class | Failure
This class is thrown when LexicalToolKit::convert() fails. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::frontend

All classes and functions needed by front-ends are inside this namespace.

Defines

#define | KV_LEXICAL_TOOL_KIT_PAIR(From, To)

Detailed Description

Definition of class LexicalToolKit.

Define Documentation

#define KV_LEXICAL_TOOL_KIT_PAIR | ( | From,
 |  | To | )
Value:
Helper<From, To>::Type_ From##2##To##_; \
  IO                      From##2##To##_io_;

For each pair of types in LexicalToolKitPairs.h, this code declares two LexicalToolKit's members. For instance, for (double, bool) they are

Helper<From, To>::Type_ double2bool_; IO double2bool_io_.

Generated on Sat Mar 20 14:13:28 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/frontend/LexicalToolKitPairs.h File Reference

  • File List
  • File Members
keyvalue » frontend

LexicalToolKitPairs.h File Reference

X Macro helper for class LexicalToolkit. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Detailed Description

X Macro helper for class LexicalToolkit.

Generated on Sat Mar 20 14:13:29 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/frontend/Queue.h File Reference

  • File List
  • File Members
keyvalue » frontend

Queue.h File Reference

Declaration of class Queue. More...

#include <boost/utility.hpp>
#include "keyvalue/extern/String.h"
#include "keyvalue/value/Value.h"
Include dependency graph for Queue.h:

Go to the source code of this file.

Classes

class | Queue
Protocol class which defines the Queue interface. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::frontend

All classes and functions needed by front-ends are inside this namespace.

Detailed Description

Declaration of class Queue.

Generated on Sat Mar 20 14:13:29 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/Checker.h File Reference

  • File List
  • File Members
keyvalue » key

Checker.h File Reference

Declaration of template class Checker. More...

#include "keyvalue/value/Single.h"
#include "keyvalue/value/Vector.h"
Include dependency graph for Checker.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Checker< ConverterType, InputType >
Primary key checker template class. More...
class | Checker< ConverterType, value::Single >
Specialization of Checker for InputType equal to value::Single. More...
class | Checker< ConverterType, value::Vector >
Specialization of Checker for InputType equal to value::Vector. More...
class | Checker< ConverterType, value::Matrix >
Specialization of Checker for InputType equal to value::Matrix. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of template class Checker.

Generated on Sat Mar 20 14:13:31 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/Key.h File Reference

  • File List
  • File Members
keyvalue » key

Key.h File Reference

Declaration and implementation of class Key. More...

#include <boost/noncopyable.hpp>
#include "keyvalue/extern/String.h"
Include dependency graph for Key.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Key
Base for all real keys. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration and implementation of class Key.

Generated on Sat Mar 20 14:13:44 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/Traits.h File Reference

  • File List
  • File Members
keyvalue » key

Traits.h File Reference

Declaration and implementation of template class Traits. More...

#include "keyvalue/key/converter/StdSingle.h"
#include "keyvalue/key/map/Default.h"
#include "keyvalue/key/Checker.h"
#include "keyvalue/key/Key.h"
#include "keyvalue/util/IsBasic.h"
Include dependency graph for Traits.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Traits< ElementType, ConverterType, MapType >
Real keys must derive from adequate instance of this template class. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration and implementation of template class Traits.

Generated on Sat Mar 20 14:13:56 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/converter/StdMatrix.h File Reference

  • File List
  • File Members
keyvalue » key » converter

StdMatrix.h File Reference

Declaration and implementation of template class StdMatrix. More...

#include "keyvalue/extern/SharedPtr.h"
#include "keyvalue/extern/Vector.h"
#include "keyvalue/sys/exception/KV_ASSERT.h"
#include "keyvalue/value/Variant.h"
#include "keyvalue/value/Matrix.h"
Include dependency graph for StdMatrix.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | StdMatrix< ElementType >
Converter from value::Matrix to shared_ptr<std::vector<std::vector<ElementType>>>. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration and implementation of template class StdMatrix.

Generated on Sat Mar 20 14:13:32 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/converter/StdSingle.h File Reference

  • File List
  • File Members
keyvalue » key » converter

StdSingle.h File Reference

Declaration and implementation of template class StdSingle. More...

#include "keyvalue/sys/exception/KV_ASSERT.h"
#include "keyvalue/value/Single.h"
#include "keyvalue/value/Variant.h"
Include dependency graph for StdSingle.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | StdSingle< ElementType >
Converter from value::Single to ElementType. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration and implementation of template class StdSingle.

Generated on Sat Mar 20 14:13:33 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/converter/StdVector.h File Reference

  • File List
  • File Members
keyvalue » key » converter

StdVector.h File Reference

Declaration and implementation of template class StdVector. More...

#include "keyvalue/extern/SharedPtr.h"
#include "keyvalue/extern/Vector.h"
#include "keyvalue/sys/exception/KV_ASSERT.h"
#include "keyvalue/value/Variant.h"
#include "keyvalue/value/Vector.h"
Include dependency graph for StdVector.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | StdVector< ElementType >
Converter from value::Vector to shared_ptr<std::vector<ElementType>>. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration and implementation of template class StdVector.

Generated on Sat Mar 20 14:13:34 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/Bounded.h File Reference

  • File List
  • File Members
keyvalue » key » generic

Bounded.h File Reference

Declaration and implementation of template class Bounded. More...

#include "keyvalue/key/converter/StdSingle.h"
#include "keyvalue/key/generic/bound/NoBound.h"
#include "keyvalue/key/Traits.h"
Include dependency graph for Bounded.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Bounded< ElementType, Bound1, Bound2 >
Key for bounded values. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration and implementation of template class Bounded.

Generated on Sat Mar 20 14:13:37 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/Matrix.h File Reference

  • File List
  • File Members
keyvalue » key » generic

Matrix.h File Reference

Declaration and implementation of template class Matrix (generic key). More...

#include "keyvalue/extern/String.h"
#include "keyvalue/key/converter/StdMatrix.h"
#include "keyvalue/key/Traits.h"
Include dependency graph for Matrix.h:

Go to the source code of this file.

Classes

class | Matrix< ElementType >
Generic key whose converter type is StdMatrix. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration and implementation of template class Matrix (generic key).

Generated on Sat Mar 20 14:13:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/MonotoneBoundedVector.h File Reference

  • File List
  • File Members
keyvalue » key » generic

MonotoneBoundedVector.h File Reference

Declaration and implementation of template class MonotoneBoundedVector. More...

#include "keyvalue/key/converter/StdVector.h"
#include "keyvalue/key/generic/bound/NoBound.h"
#include "keyvalue/key/Traits.h"
Include dependency graph for MonotoneBoundedVector.h:

Go to the source code of this file.

Classes

class | MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 >
Key for monotone bounded vectors. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration and implementation of template class MonotoneBoundedVector.

Generated on Sat Mar 20 14:13:40 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/Positive.h File Reference

  • File List
  • File Members
keyvalue » key » generic

Positive.h File Reference

Declaration of class Positive. More...

#include "keyvalue/extern/String.h"
#include "keyvalue/key/generic/bound/Geq.h"
#include "keyvalue/key/generic/Bounded.h"
Include dependency graph for Positive.h:

Go to the source code of this file.

Classes

class | Positive
A general key for positive values. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of class Positive.

Generated on Sat Mar 20 14:13:41 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/Single.h File Reference

  • File List
  • File Members
keyvalue » key » generic

Single.h File Reference

Declaration and implementation of template class Single (generic key). More...

#include "keyvalue/extern/String.h"
#include "keyvalue/key/converter/StdSingle.h"
#include "keyvalue/key/Traits.h"
Include dependency graph for Single.h:

Go to the source code of this file.

Classes

class | Single< ElementType >
Generic key whose converter type is StdSingle. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration and implementation of template class Single (generic key).

Generated on Sat Mar 20 14:13:41 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/StrictlyPositive.h File Reference

  • File List
  • File Members
keyvalue » key » generic

StrictlyPositive.h File Reference

Declaration of class StrictlyPositive. More...

#include "keyvalue/extern/String.h"
#include "keyvalue/key/generic/bound/Greater.h"
#include "keyvalue/key/generic/Bounded.h"
Include dependency graph for StrictlyPositive.h:

Go to the source code of this file.

Classes

class | StrictlyPositive
A general key whose value is a strictly positive number. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of class StrictlyPositive.

Generated on Sat Mar 20 14:13:43 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/Vector.h File Reference

  • File List
  • File Members
keyvalue » key » generic

Vector.h File Reference

Declaration and implementation of template class Vector (generic key). More...

#include "keyvalue/extern/String.h"
#include "keyvalue/key/converter/StdVector.h"
#include "keyvalue/key/Traits.h"
Include dependency graph for Vector.h:

Go to the source code of this file.

Classes

class | Vector< ElementType >
Generic key whose converter type is StdVector. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration and implementation of template class Vector (generic key).

Generated on Sat Mar 20 14:13:25 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/bound/Geq.h File Reference

  • File List
  • File Members
keyvalue » key » generic » bound

Geq.h File Reference

Declaration of template class Geq. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Geq< ElementType >
Greater-than-or-equal-to bound class. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of template class Geq.

Generated on Sat Mar 20 14:13:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/bound/Greater.h File Reference

  • File List
  • File Members
keyvalue » key » generic » bound

Greater.h File Reference

Declaration of template class Greater. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Greater< ElementType >
Greater-than bound class. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of template class Greater.

Generated on Sat Mar 20 14:13:36 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/bound/Leq.h File Reference

  • File List
  • File Members
keyvalue » key » generic » bound

Leq.h File Reference

Declaration of template class Leq. More...

Go to the source code of this file.

Classes

class | Leq< ElementType >
Less-than-or-equal-to bound class. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of template class Leq.

Generated on Sat Mar 20 14:13:36 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/bound/Less.h File Reference

  • File List
  • File Members
keyvalue » key » generic » bound

Less.h File Reference

Declaration of template class Less. More...

Go to the source code of this file.

Classes

class | Less< ElementType >
Less-than bound class. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of template class Less.

Generated on Sat Mar 20 14:13:36 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/bound/NoBound.h File Reference

  • File List
  • File Members
keyvalue » key » generic » bound

NoBound.h File Reference

Declaration of template class NoBound. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | NoBound< ElementType >
NoBound bound class. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of template class NoBound.

Generated on Sat Mar 20 14:13:36 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/monotone/Decreasing.h File Reference

  • File List
  • File Members
keyvalue » key » generic » monotone

Decreasing.h File Reference

Declaration of class Decreasing. More...

Go to the source code of this file.

Classes

class | Decreasing
Decreasing monotone class. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of class Decreasing.

Generated on Sat Mar 20 14:13:39 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/monotone/Increasing.h File Reference

  • File List
  • File Members
keyvalue » key » generic » monotone

Increasing.h File Reference

Declaration of class Increasing. More...

Go to the source code of this file.

Classes

class | Increasing
Increasing monotone class. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of class Increasing.

Generated on Sat Mar 20 14:13:39 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/monotone/NonMonotone.h File Reference

  • File List
  • File Members
keyvalue » key » generic » monotone

NonMonotone.h File Reference

Declaration of class NonMonotone. More...

Go to the source code of this file.

Classes

class | NonMonotone
NonMonotone class. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of class NonMonotone.

Generated on Sat Mar 20 14:13:39 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/monotone/StrictlyDecreasing.h File Reference

  • File List
  • File Members
keyvalue » key » generic » monotone

StrictlyDecreasing.h File Reference

Declaration of class StrictlyDecreasing. More...

Go to the source code of this file.

Classes

class | StrictlyDecreasing
StrictlyDecreasing monotone class. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of class StrictlyDecreasing.

Generated on Sat Mar 20 14:13:39 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/monotone/StrictlyIncreasing.h File Reference

  • File List
  • File Members
keyvalue » key » generic » monotone

StrictlyIncreasing.h File Reference

Declaration of class StrictlyIncreasing. More...

Go to the source code of this file.

Classes

class | StrictlyIncreasing
StrictlyIncreasing monotone class. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of class StrictlyIncreasing.

Generated on Sat Mar 20 14:13:39 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/map/Default.h File Reference

  • File List
  • File Members
keyvalue » key » map

Default.h File Reference

Declaration and implementation of template class Default. More...

#include "keyvalue/key/map/NoMap.h"
#include "keyvalue/key/map/ObjectMap.h"
#include "keyvalue/util/IsBasic.h"
Include dependency graph for Default.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct | DefaultMap< OutputType, isBasic >
Meta-function which defines Traits' default map type. More...
struct | Default< OutputType >
Meta-function which defines Traits' default map type. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration and implementation of template class Default.

Generated on Sat Mar 20 14:13:46 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/map/FlagMap.h File Reference

  • File List
  • File Members
keyvalue » key » map

FlagMap.h File Reference

Declaration and implementation of template class FlagMap. More...

#include "keyvalue/extern/String.h"
#include "keyvalue/key/Key.h"
#include "keyvalue/sys/exception/Exception.h"
#include "keyvalue/value/Variant.h"
Include dependency graph for FlagMap.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | FlagMap< OutputType >
Maps names to constants. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration and implementation of template class FlagMap.

Generated on Sat Mar 20 14:13:47 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/map/NoMap.h File Reference

  • File List
  • File Members
keyvalue » key » map

NoMap.h File Reference

Declaration of template class NoMap. More...

#include <boost/static_assert.hpp>
#include <boost/type_traits/is_same.hpp>
#include "keyvalue/extern/String.h"
#include "keyvalue/extern/Ptime.h"
#include "keyvalue/key/Key.h"
Include dependency graph for NoMap.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | NoMap< OutputType >
Identity map (aka, NoMap). More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::value

All KeyValue containers belong to this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of template class NoMap.

Generated on Sat Mar 20 14:13:48 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/map/ObjectMap.h File Reference

  • File List
  • File Members
keyvalue » key » map

ObjectMap.h File Reference

Declaration and implementation of template class ObjectMap. More...

#include "keyvalue/extern/String.h"
#include "keyvalue/frontend/LexicalToolKit.h"
#include "keyvalue/mngt/Builder.h"
#include "keyvalue/mngt/DataSet.h"
#include "keyvalue/mngt/Repository.h"
#include "keyvalue/sys/exception/KV_ASSERT.h"
#include "keyvalue/value/Variant.h"
Include dependency graph for ObjectMap.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | ObjectMap< OutputType >
Maps names to objects. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration and implementation of template class ObjectMap.

Generated on Sat Mar 20 14:13:49 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/map/PartialMap.h File Reference

  • File List
  • File Members
keyvalue » key » map

PartialMap.h File Reference

Declaration of template class PartialMap. More...

#include <boost/static_assert.hpp>
#include <boost/type_traits/is_same.hpp>
#include "keyvalue/extern/String.h"
#include "keyvalue/extern/Ptime.h"
#include "keyvalue/key/Key.h"
Include dependency graph for PartialMap.h:

Go to the source code of this file.

Classes

class | PartialMap< OutputType >
Partially maps names to constants. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::value

All KeyValue containers belong to this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of template class PartialMap.

Generated on Sat Mar 20 14:13:50 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/specific/Export.h File Reference

  • File List
  • File Members
keyvalue » key » specific

Export.h File Reference

Declaration of class Export. More...

#include "keyvalue/key/Traits.h"
Include dependency graph for Export.h:

Go to the source code of this file.

Classes

class | Export
Export key. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of class Export.

Generated on Sat Mar 20 14:13:51 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/specific/Imports.h File Reference

  • File List
  • File Members
keyvalue » key » specific

Imports.h File Reference

Declaration of class Imports. More...

#include "keyvalue/extern/String.h"
#include "keyvalue/key/converter/StdVector.h"
#include "keyvalue/key/Traits.h"
Include dependency graph for Imports.h:

Go to the source code of this file.

Classes

class | Imports
Imports key. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of class Imports.

Generated on Sat Mar 20 14:13:51 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/specific/ProcessNow.h File Reference

  • File List
  • File Members
keyvalue » key » specific

ProcessNow.h File Reference

Declaration of class ProcessNow. More...

#include "keyvalue/key/Traits.h"
Include dependency graph for ProcessNow.h:

Go to the source code of this file.

Classes

class | ProcessNow
ProcessNow key. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of class ProcessNow.

Generated on Sat Mar 20 14:13:52 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/specific/Processor.h File Reference

  • File List
  • File Members
keyvalue » key » specific

Processor.h File Reference

Declaration of class Processor (key). More...

#include "keyvalue/extern/String.h"
#include "keyvalue/key/Traits.h"
Include dependency graph for Processor.h:

Go to the source code of this file.

Classes

class | Processor
Processor key. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of class Processor (key).

Generated on Sat Mar 20 14:13:53 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/specific/VectorOutput.h File Reference

  • File List
  • File Members
keyvalue » key » specific

VectorOutput.h File Reference

Declaration of class VectorOutput. More...

#include "keyvalue/key/map/FlagMap.h"
#include "keyvalue/key/converter/StdSingle.h"
#include "keyvalue/key/Traits.h"
Include dependency graph for VectorOutput.h:

Go to the source code of this file.

Classes

struct | VectorOutputBase
VectorOutput's base class. More...
class | VectorOutput
VectorOutput key. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::key

All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace.

Detailed Description

Declaration of class VectorOutput.

Generated on Sat Mar 20 14:13:54 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/Builder.h File Reference

  • File List
  • File Members
keyvalue » mngt

Builder.h File Reference

Declaration and (partial) implementation of template class Builder. More...

#include "keyvalue/mngt/Processor.h"
#include "keyvalue/mngt/ProcessorMngr.h"
#include "keyvalue/sys/exception/Exception.h"
#include "keyvalue/value/Variant.h"
Include dependency graph for Builder.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Builder< ObjectType >
Primary template class for Builder's specializations. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

Variables

Builder< ObjectType > &(* | Builder )()

Detailed Description

Declaration and (partial) implementation of template class Builder.

Generated on Sat Mar 20 14:13:57 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/Calculator.h File Reference

  • File List
  • File Members
keyvalue » mngt

Calculator.h File Reference

Declaration and (partial) implementation of template class Calculator. More...

#include "keyvalue/mngt/Processor.h"
#include "keyvalue/mngt/ProcessorMngr.h"
#include "keyvalue/sys/exception/Exception.h"
#include "keyvalue/value/Variant.h"
Include dependency graph for Calculator.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Calculator< Tag >
Primary template class for Calculator's specializations. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

Variables

Calculator< Tag > &(* | Calculator )()

Detailed Description

Declaration and (partial) implementation of template class Calculator.

Generated on Sat Mar 20 14:13:58 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/DataSet.h File Reference

  • File List
  • File Members
keyvalue » mngt

DataSet.h File Reference

Declaration of class DataSet. More...

#include <map>
#include <typeinfo>
#include <boost/any.hpp>
#include <boost/utility.hpp>
#include <boost/weak_ptr.hpp>
#include "keyvalue/extern/String.h"
#include "keyvalue/extern/SharedPtr.h"
#include "keyvalue/key/Key.h"
#include "keyvalue/value/Result.h"
#include "keyvalue/value/TypeName.h"
#include "keyvalue/value/Value.h"
#include "keyvalue/sys/exception/Exception.h"
#include "keyvalue/sys/logger/GlobalLogger.h"
Include dependency graph for DataSet.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | DataSet
A named map from keys to values. More...
struct | Record
A wrapper around a value::Value. More...
struct | Graph
Simplified dependency graph. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

Detailed Description

Declaration of class DataSet.

Generated on Sat Mar 20 14:14:00 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/process.h File Reference

  • File List
  • File Members
keyvalue » mngt

process.h File Reference

Declaration of function keyvalue::process(). More...

#include "keyvalue/extern/SharedPtr.h"
#include "keyvalue/value/Value.h"
Include dependency graph for process.h:

Go to the source code of this file.

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::frontend

All classes and functions needed by front-ends are inside this namespace.

Functions

value::Value | process (frontend::Queue &data)
Processes a frontend::Queue.
value::Value | process (shared_ptr< DataSet > data)
Processes a DataSet.

Detailed Description

Declaration of function keyvalue::process().

Generated on Sat Mar 20 14:14:00 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/Processor.h File Reference

  • File List
  • File Members
keyvalue » mngt

Processor.h File Reference

Declaration of class Processor. More...

#include <boost/utility.hpp>
#include "keyvalue/value/Result.h"
Include dependency graph for Processor.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Processor
Protocol class that defines Processor interface. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::value

All KeyValue containers belong to this namespace.

Detailed Description

Declaration of class Processor.

Generated on Sat Mar 20 14:13:54 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/ProcessorMngr.h File Reference

  • File List
  • File Members
keyvalue » mngt

ProcessorMngr.h File Reference

Declaration of class ProcessorMngr. More...

#include <map>
#include "keyvalue/extern/SharedPtr.h"
#include "keyvalue/extern/String.h"
Include dependency graph for ProcessorMngr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | ProcessorMngr
The processor manager. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::value

All KeyValue containers belong to this namespace.

Detailed Description

Declaration of class ProcessorMngr.

Generated on Sat Mar 20 14:14:02 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/Repository.h File Reference

  • File List
  • File Members
keyvalue » mngt

Repository.h File Reference

Declaration of class Repository. More...

#include <map>
#include <boost/utility.hpp>
#include "keyvalue/extern/SharedPtr.h"
#include "keyvalue/sys/exception/Exception.h"
#include "keyvalue/value/Vector.h"
Include dependency graph for Repository.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Repository
The Repository of DataSets. More...
class | NotFound
Exception thrown by get() when a DataSet is not found. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

Detailed Description

Declaration of class Repository.

Generated on Sat Mar 20 14:14:03 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/XBuilder.h File Reference

  • File List
  • File Members
keyvalue » mngt

XBuilder.h File Reference

Declaration and (partial) implementation of template class XBuilder. More...

#include "keyvalue/mngt/Builder.h"
#include "keyvalue/value/Variant.h"
Include dependency graph for XBuilder.h:

Go to the source code of this file.

Classes

class | XBuilder< ObjectType >
Primary template class for XBuilder's specializations. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

Detailed Description

Declaration and (partial) implementation of template class XBuilder.

Generated on Sat Mar 20 14:14:04 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/XCalculator.h File Reference

  • File List
  • File Members
keyvalue » mngt

XCalculator.h File Reference

Declaration and (partial) implementation of template class XCalculator. More...

#include "keyvalue/mngt/Calculator.h"
#include "keyvalue/value/Variant.h"
Include dependency graph for XCalculator.h:

Go to the source code of this file.

Classes

class | XCalculator< Tag >
Primary template class for XCalculator's specializations. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

Detailed Description

Declaration and (partial) implementation of template class XCalculator.

Generated on Sat Mar 20 14:14:04 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/pattern/KeyInSingle.h File Reference

  • File List
  • File Members
keyvalue » pattern

KeyInSingle.h File Reference

Declaration of class KeyInSingle. More...

#include "keyvalue/pattern/Pattern.h"
Include dependency graph for KeyInSingle.h:

Go to the source code of this file.

Classes

class | KeyInSingle
Pattern where a value::Single object, recognized as a key, is followed by any value::Value. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::pattern

Key-value pattern recognition class are members of this namespace.

Detailed Description

Declaration of class KeyInSingle.

Generated on Sat Mar 20 14:14:05 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/pattern/KeysInMatrix.h File Reference

  • File List
  • File Members
keyvalue » pattern

KeysInMatrix.h File Reference

Declaration of class KeysInMatrix. More...

#include "keyvalue/extern/Vector.h"
#include "keyvalue/pattern/Pattern.h"
Include dependency graph for KeysInMatrix.h:

Go to the source code of this file.

Classes

class | KeysInMatrix
Pattern made by a value::Matrix where all elements either in the first row or in the first column are keys. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::pattern

Key-value pattern recognition class are members of this namespace.

Detailed Description

Declaration of class KeysInMatrix.

Generated on Sat Mar 20 14:14:05 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/pattern/KeysInVector.h File Reference

  • File List
  • File Members
keyvalue » pattern

KeysInVector.h File Reference

Declaration of class KeysInVector. More...

#include "keyvalue/extern/Vector.h"
#include "keyvalue/pattern/Pattern.h"
Include dependency graph for KeysInVector.h:

Go to the source code of this file.

Classes

class | KeysInVector
Pattern made by a value::Vector whose entries are keys followed by a value::Vector or value::Matrix. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::pattern

Key-value pattern recognition class are members of this namespace.

Detailed Description

Declaration of class KeysInVector.

Generated on Sat Mar 20 14:14:06 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/pattern/Pattern.h File Reference

  • File List
  • File Members
keyvalue » pattern

Pattern.h File Reference

Declaration of class Pattern and functions keyvalue::pattern::isKey() and keyvalue::pattern::getKey(). More...

#include <boost/utility.hpp>
#include "keyvalue/extern/String.h"
#include "keyvalue/value/Value.h"
Include dependency graph for Pattern.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Pattern
Protocol class which defines the interface for pattern recognition classes. More...
class | QueueRaii
This class implements RAII for a frontend::Queue. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::frontend

All classes and functions needed by front-ends are inside this namespace.

namespace | keyvalue::pattern

Key-value pattern recognition class are members of this namespace.

Functions

bool | isKey (const value::Variant &variant)
Checks if variant may be considered as a key.
string | getKey (const value::Variant &variant)
Gets the key held by variant.

Detailed Description

Declaration of class Pattern and functions keyvalue::pattern::isKey() and keyvalue::pattern::getKey().

Generated on Sat Mar 20 14:14:07 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/pattern/Table.h File Reference

  • File List
  • File Members
keyvalue » pattern

Table.h File Reference

Declaration of class Table. More...

#include "keyvalue/pattern/Pattern.h"
Include dependency graph for Table.h:

Go to the source code of this file.

Classes

class | Table
Pattern where a value::Matrix contains the row, column and table keys. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::pattern

Key-value pattern recognition class are members of this namespace.

Detailed Description

Declaration of class Table.

Generated on Sat Mar 20 14:14:08 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/exception/Exception.h File Reference

  • File List
  • File Members
keyvalue » sys » exception

Exception.h File Reference

Declaration of classes Exception, RuntimeError and LogicError. More...

#include <iosfwd>
#include <stdexcept>
#include "keyvalue/sys/message/MessageImpl.h"
Include dependency graph for Exception.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Exception
Base protocol class for all exceptions. More...
class | ExceptionImpl< StdExcept, MessageType >
Concrete template class which implements Exception's pure virtual methods. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::exception

All exception functionalities are inside this namespace.

Typedefs

typedef ExceptionImpl
< std::runtime_error, Error > 		RuntimeError
typedef ExceptionImpl
< std::logic_error, Logic > 		LogicError

Functions

std::ostream & | operator<< (std::ostream &os, const Exception &exception)
ostream operator<<() for Exception.
template<typename LhsType , typename RhsType >
LhsType & | operator& (const LhsType &lhs, const RhsType &rhs)
Non member operator& for exceptions.

Detailed Description

Declaration of classes Exception, RuntimeError and LogicError.

Generated on Sat Mar 20 14:14:09 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/exception/KV_ASSERT.h File Reference

  • File List
  • File Members
keyvalue » sys » exception

KV_ASSERT.h File Reference

Implementation of macro KV_ASSERT. More...

#include "keyvalue/sys/exception/Exception.h"
Include dependency graph for KV_ASSERT.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define KV_ASSERT(cond, msg)
The assert macro.

Detailed Description

Implementation of macro KV_ASSERT.

Define Documentation

#define KV_ASSERT | ( | cond,
 |  | msg | )
Value:
{                                             \
  if (!(cond))                                                             \
    throw ::keyvalue::LogicError() & __FILE__ & " (" & __LINE__ & ") :\n" &\
      msg;                                                                 \
}

The assert macro.

This macro is a replacement for the C standard assert macro. Its definition depends on whether the macro NDEBUG is defined or not.

When NDEBUG is not defined, KV_ASSERT checks if a condition holds and, when it does not, it throws a LogicError carrying information on the invalid condition and where it has occurred.

When NDEBUG is defined, KV_ASSERT does not do anything.

Parameters:
cond | : Condition to be tested;
msg | : Error message to be reported.
Generated on Sat Mar 20 14:14:10 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/ConsoleColors.h File Reference

  • File List
  • File Members
keyvalue » sys » logger

ConsoleColors.h File Reference

Definition of enum Color. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::logger

All logger functionalities are inside this namespace.

Enumerations

enum Color {
black = 0, red, green, yellow,
blue, pink, cyan, white,
grey, bold_red, bold_green, bold_yellow,
bold_blue, bold_pink, bold_cyan, bold_white
}

Console colors.

More...

Detailed Description

Definition of enum Color.

Generated on Sat Mar 20 14:14:11 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/ConsoleLogger.h File Reference

  • File List
  • File Members
keyvalue » sys » logger

ConsoleLogger.h File Reference

Declaration of class ConsoleLogger. More...

#include "keyvalue/sys/logger/XtermConsole.h"
#include "keyvalue/sys/logger/WindowsConsole.h"
Include dependency graph for ConsoleLogger.h:

Go to the source code of this file.

Classes

class | ConsoleLogger
Implements a console Logger. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::logger

All logger functionalities are inside this namespace.

Defines

#define | CONSOLELOGGER XtermConsole

Detailed Description

Declaration of class ConsoleLogger.

Generated on Sat Mar 20 14:14:12 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/FileLogger.h File Reference

  • File List
  • File Members
keyvalue » sys » logger

FileLogger.h File Reference

Declaration of class FileLogger. More...

#include <fstream>
#include "keyvalue/sys/logger/LoggerImpl.h"
Include dependency graph for FileLogger.h:

Go to the source code of this file.

Classes

class | FileLogger
Implements a file Logger. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::logger

All logger functionalities are inside this namespace.

Detailed Description

Declaration of class FileLogger.

Generated on Sat Mar 20 14:14:12 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/GlobalLogger.h File Reference

  • File List
  • File Members
keyvalue » sys » logger

GlobalLogger.h File Reference

Declaration of class GlobalLogger. More...

#include "keyvalue/extern/SharedPtr.h"
#include "keyvalue/sys/logger/Logger.h"
#include "keyvalue/sys/logger/StdLogger.h"
Include dependency graph for GlobalLogger.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | GlobalLogger
The global logger class. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::logger

All logger functionalities are inside this namespace.

Detailed Description

Declaration of class GlobalLogger.

Generated on Sat Mar 20 14:14:14 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/Logger.h File Reference

  • File List
  • File Members
keyvalue » sys » logger

Logger.h File Reference

Declaration of class Logger. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Logger
Protocol class which defines the interface for all types of logger. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::logger

All logger functionalities are inside this namespace.

Detailed Description

Declaration of class Logger.

Generated on Sat Mar 20 14:14:14 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/LoggerImpl.h File Reference

  • File List
  • File Members
keyvalue » sys » logger

LoggerImpl.h File Reference

Declaration and implementation of template class LoggerImpl. More...

#include "keyvalue/bridge/Bridge.h"
#include "keyvalue/sys/logger/Logger.h"
#include "keyvalue/sys/logger/policy/AddPrefix.h"
#include "keyvalue/sys/logger/policy/ForwardToGlobalLogger.h"
#include "keyvalue/sys/logger/policy/IgnoreColor.h"
#include "keyvalue/sys/message/MessageImpl.h"
Include dependency graph for LoggerImpl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy >
Abstract class which implements main methods of concrete Loggers. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::logger

All logger functionalities are inside this namespace.

Detailed Description

Declaration and implementation of template class LoggerImpl.

Generated on Sat Mar 20 14:14:16 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/StdLogger.h File Reference

  • File List
  • File Members
keyvalue » sys » logger

StdLogger.h File Reference

Declaration of class StdLogger. More...

#include "keyvalue/sys/logger/LoggerImpl.h"
Include dependency graph for StdLogger.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::logger

All logger functionalities are inside this namespace.

Detailed Description

Declaration of class StdLogger.

Generated on Sat Mar 20 14:14:23 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/WindowsConsole.h File Reference

  • File List
  • File Members
keyvalue » sys » logger

WindowsConsole.h File Reference

Declaration of class WindowsConsole. More...

#include <windows.h>
#include "keyvalue/extern/String.h"
#include "keyvalue/sys/logger/LoggerImpl.h"
#include "keyvalue/sys/logger/policy/AddPrefix.h"
#include "keyvalue/sys/logger/policy/XtermColor.h"
#include "keyvalue/sys/logger/policy/ForwardToGlobalLogger.h"
Include dependency graph for WindowsConsole.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | WindowsConsole
This class implements a Windows console Logger. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::logger

All logger functionalities are inside this namespace.

Detailed Description

Declaration of class WindowsConsole.

Generated on Sat Mar 20 14:14:24 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/XtermConsole.h File Reference

  • File List
  • File Members
keyvalue » sys » logger

XtermConsole.h File Reference

Declaration of class XtermConsole. More...

#include <cstdio>
#include "keyvalue/sys/logger/LoggerImpl.h"
#include "keyvalue/sys/logger/policy/AddPrefix.h"
#include "keyvalue/sys/logger/policy/XtermColor.h"
Include dependency graph for XtermConsole.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | XtermConsole
Implements an xterm console Logger. More...
class | FileRaii
XtermConsole's helper class for file management. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::logger

All logger functionalities are inside this namespace.

Detailed Description

Declaration of class XtermConsole.

Generated on Sat Mar 20 14:14:26 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/policy/AddPrefix.h File Reference

  • File List
  • File Members
keyvalue » sys » logger » policy

AddPrefix.h File Reference

Declaration of class AddPrefix. More...

#include <boost/utility.hpp>
#include "keyvalue/extern/String.h"
Include dependency graph for AddPrefix.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | AddPrefix
Defines a policy for Message prefixes, which is, to send the prefix to the underlying Logger's device. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::logger

All logger functionalities are inside this namespace.

Detailed Description

Declaration of class AddPrefix.

Generated on Sat Mar 20 14:14:17 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/policy/ForwardToGlobalLogger.h File Reference

  • File List
  • File Members
keyvalue » sys » logger » policy

ForwardToGlobalLogger.h File Reference

Declaration of class ForwardToGlobalLogger. More...

#include <boost/utility.hpp>
Include dependency graph for ForwardToGlobalLogger.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | ForwardToGlobalLogger
Defines a policy to apply when the Logger fails to process a Message, namely, forward it to GlobalLogger. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::logger

All logger functionalities are inside this namespace.

Detailed Description

Declaration of class ForwardToGlobalLogger.

Generated on Sat Mar 20 14:14:18 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/policy/IgnoreColor.h File Reference

  • File List
  • File Members
keyvalue » sys » logger » policy

IgnoreColor.h File Reference

Declaration of class IgnoreColor. More...

#include <boost/utility.hpp>
Include dependency graph for IgnoreColor.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | IgnoreColor
Defines a policy for Message colors, which is, to ignore them. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::logger

All logger functionalities are inside this namespace.

Detailed Description

Declaration of class IgnoreColor.

Generated on Sat Mar 20 14:14:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/policy/IgnoreFailure.h File Reference

  • File List
  • File Members
keyvalue » sys » logger » policy

IgnoreFailure.h File Reference

Declaration of class IgnoreFailure. More...

#include <boost/utility.hpp>
Include dependency graph for IgnoreFailure.h:

Go to the source code of this file.

Classes

class | IgnoreFailure
Defines a policy to apply when the logger fails, which is, to ignore the failure. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::logger

All logger functionalities are inside this namespace.

Detailed Description

Declaration of class IgnoreFailure.

Generated on Sat Mar 20 14:14:20 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/policy/IgnorePrefix.h File Reference

  • File List
  • File Members
keyvalue » sys » logger » policy

IgnorePrefix.h File Reference

Declaration of class IgnorePrefix. More...

#include <boost/utility.hpp>
Include dependency graph for IgnorePrefix.h:

Go to the source code of this file.

Classes

class | IgnorePrefix
Defines a policy for Message prefixes, which is, to ignore them. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::logger

All logger functionalities are inside this namespace.

Detailed Description

Declaration of class IgnorePrefix.

Generated on Sat Mar 20 14:14:21 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/policy/XtermColor.h File Reference

  • File List
  • File Members
keyvalue » sys » logger » policy

XtermColor.h File Reference

Declaration of class XtermColor. More...

#include <boost/utility.hpp>
#include "keyvalue/extern/String.h"
Include dependency graph for XtermColor.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | XtermColor
Defines a policy for Message color, which is, to set the underlying device of the Logger to print in Message's color. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::logger

All logger functionalities are inside this namespace.

Detailed Description

Declaration of class XtermColor.

Generated on Sat Mar 20 14:14:22 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/message/Message.h File Reference

  • File List
  • File Members
keyvalue » sys » message

Message.h File Reference

Declaration of class Message. More...

#include <iosfwd>
#include <sstream>
#include "keyvalue/extern/String.h"
#include "keyvalue/sys/logger/ConsoleColors.h"
Include dependency graph for Message.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Message
Abstract class which defines the interface for all types of message. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

Functions

std::ostream & | operator<< (std::ostream &os, const Message &message)
ostream operator<<() for Message.

Detailed Description

Declaration of class Message.

Generated on Sat Mar 20 14:14:27 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/message/MessageImpl.h File Reference

  • File List
  • File Members
keyvalue » sys » message

MessageImpl.h File Reference

Declaration of classes MessageImpl, Error, Info, Warning, Report and Debug. More...

#include <boost/static_assert.hpp>
#include "keyvalue/sys/message/Message.h"
Include dependency graph for MessageImpl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | MessageImpl< id >
Implementation of class Message. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

Typedefs

typedef MessageImpl< 0 > | Error
typedef MessageImpl< 1 > | Logic
typedef MessageImpl< 2 > | Info
typedef MessageImpl< 3 > | Warning
typedef MessageImpl< 4 > | Report
typedef MessageImpl< 5 > | Debug

Detailed Description

Declaration of classes MessageImpl, Error, Info, Warning, Report and Debug.

Generated on Sat Mar 20 14:14:28 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/util/IsBasic.h File Reference

  • File List
  • File Members
keyvalue » util

IsBasic.h File Reference

Declaration and implementation of template class IsBasic. More...

#include <boost/type_traits/is_enum.hpp>
#include "keyvalue/extern/String.h"
#include "keyvalue/extern/Ptime.h"
Include dependency graph for IsBasic.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct | IsBasic< ElementType >
This meta-function checks if a type is either bool, double, string, ptime or unsigned int or not. More...
struct | IsBasicOrEnum< ElementType >
This meta-function checks if a type is either bool, double, string, ptime, unsigned int or enum or not. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::util

Utility classes and functions are member of this namespace.

Detailed Description

Declaration and implementation of template class IsBasic.

Generated on Sat Mar 20 14:14:29 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/util/Lexical.h File Reference

  • File List
  • File Members
keyvalue » util

Lexical.h File Reference

Declaration of template function Lexical. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::util

Utility classes and functions are member of this namespace.

Functions

template<typename From , typename To >
To | Lexical (const From &input)
Converts from type From to type To.

Detailed Description

Declaration of template function Lexical.

Generated on Sat Mar 20 14:14:30 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/util/NullDeleter.h File Reference

  • File List
  • File Members
keyvalue » util

NullDeleter.h File Reference

Declaration of class NullDeleter. More...

Go to the source code of this file.

Classes

class | NullDeleter
A shared_ptr deleter that does not do anything. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::util

Utility classes and functions are member of this namespace.

Detailed Description

Declaration of class NullDeleter.

Generated on Sat Mar 20 14:14:30 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/util/Saver.h File Reference

  • File List
  • File Members
keyvalue » util

Saver.h File Reference

Definition and implementation of template class Saver. More...

#include <boost/utility.hpp>
Include dependency graph for Saver.h:

Go to the source code of this file.

Classes

class | Saver< SavedType >
Saves a variable reference at construction time to restore/set its value at destruction time. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::util

Utility classes and functions are member of this namespace.

Detailed Description

Definition and implementation of template class Saver.

Generated on Sat Mar 20 14:14:31 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/util/tenor2ptime.h File Reference

  • File List
  • File Members
keyvalue » util

tenor2ptime.h File Reference

Declaration of function tenor2ptime(). More...

#include "keyvalue/extern/Ptime.h"
#include "keyvalue/extern/String.h"
Include dependency graph for tenor2ptime.h:

Go to the source code of this file.

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::util

Utility classes and functions are member of this namespace.

Functions

ptime | tenor2ptime (const ptime &start, const string &tenor)
Convert a tenor string (from a start date) into the corresponding date.

Detailed Description

Declaration of function tenor2ptime().

Generated on Sat Mar 20 14:14:31 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/util/Util.h File Reference

  • File List
  • File Members
keyvalue » util

Util.h File Reference

Documentation of namespace util. More...

Go to the source code of this file.

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::util

Utility classes and functions are member of this namespace.

Detailed Description

Documentation of namespace util.

Generated on Sat Mar 20 14:14:31 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/Matrix.h File Reference

  • File List
  • File Members
keyvalue » value

Matrix.h File Reference

Declaration of class Matrix (container). More...

#include <iosfwd>
#include <boost/intrusive_ptr.hpp>
#include "keyvalue/value/Variant.h"
Include dependency graph for Matrix.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Matrix
Matrix of Variants. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::value

All KeyValue containers belong to this namespace.

Functions

void | intrusive_ptr_add_ref (Matrix::Impl *pimpl)
void | intrusive_ptr_release (Matrix::Impl *pimpl)
std::ostream & | operator<< (std::ostream &os, const Matrix &matrix)
ostream operator<<() for Matrix.

Detailed Description

Declaration of class Matrix (container).

Generated on Sat Mar 20 14:13:39 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/Nothing.h File Reference

  • File List
  • File Members
keyvalue » value

Nothing.h File Reference

Declaration of class Nothing. More...

#include <iosfwd>
Include dependency graph for Nothing.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Nothing
Empty class to represent empty data. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::value

All KeyValue containers belong to this namespace.

Functions

std::ostream & | operator<< (std::ostream &os, const Nothing &nothing)
ostream operator<<() for Nothing.

Detailed Description

Declaration of class Nothing.

Generated on Sat Mar 20 14:14:32 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/Parent.h File Reference

  • File List
  • File Members
keyvalue » value

Parent.h File Reference

Declaration of template class Parent. More...

Go to the source code of this file.

Classes

struct | Parent< T >
Primary Parent template meta-function. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::value

All KeyValue containers belong to this namespace.

Detailed Description

Declaration of template class Parent.

Generated on Sat Mar 20 14:14:32 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/Result.h File Reference

  • File List
  • File Members
keyvalue » value

Result.h File Reference

Declaration of classes Result and ObjectPtr. More...

#include <iosfwd>
#include <boost/variant.hpp>
#include "keyvalue/extern/SharedPtr.h"
#include "keyvalue/value/Value.h"
Include dependency graph for Result.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Result
A single-valued container for ObjectPtr or Value. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::value

All KeyValue containers belong to this namespace.

Typedefs

typedef shared_ptr< void > | ObjectPtr

Functions

std::ostream & | operator<< (std::ostream &os, const Result &rhs)
ostream operator<<() for Result.

Detailed Description

Declaration of classes Result and ObjectPtr.

Generated on Sat Mar 20 14:14:34 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/Single.h File Reference

  • File List
  • File Members
keyvalue » value

Single.h File Reference

Declaration of class Single (container). More...

#include <iosfwd>
#include "keyvalue/value/Vector.h"
Include dependency graph for Single.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Single
A 1 x 1 Matrix. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::value

All KeyValue containers belong to this namespace.

Functions

std::ostream & | operator<< (std::ostream &os, const Single &rhs)
ostream operator<<() for Single.

Detailed Description

Declaration of class Single (container).

Generated on Sat Mar 20 14:13:42 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/TypeName.h File Reference

  • File List
  • File Members
keyvalue » value

TypeName.h File Reference

Definition of template class TypeName. More...

#include "keyvalue/extern/String.h"
Include dependency graph for TypeName.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct | TypeName< Type >
Meta function which returns the name of type. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::value

All KeyValue containers belong to this namespace.

Detailed Description

Definition of template class TypeName.

Generated on Sat Mar 20 14:14:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/Value.h File Reference

  • File List
  • File Members
keyvalue » value

Value.h File Reference

Declaration and (partial) implementation of class Value. More...

#include <iosfwd>
#include <boost/variant.hpp>
#include "keyvalue/value/Matrix.h"
#include "keyvalue/value/Single.h"
#include "keyvalue/value/Vector.h"
Include dependency graph for Value.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Value
A single-valued container for Single, Vector or Matrix. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::value

All KeyValue containers belong to this namespace.

Functions

std::ostream & | operator<< (std::ostream &os, const Value &rhs)
ostream operator<<() for Value.

Detailed Description

Declaration and (partial) implementation of class Value.

Generated on Sat Mar 20 14:14:36 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/Variant.h File Reference

  • File List
  • File Members
keyvalue » value

Variant.h File Reference

Declaration and (partial) implementation of class Variant. More...

#include <iosfwd>
#include <boost/variant.hpp>
#include "keyvalue/extern/String.h"
#include "keyvalue/extern/Ptime.h"
#include "keyvalue/frontend/LexicalToolKit.h"
#include "keyvalue/value/Nothing.h"
Include dependency graph for Variant.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Variant
Single-value multi-type container. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::value

All KeyValue containers belong to this namespace.

Functions

std::ostream & | operator<< (std::ostream &os, const Variant &rhs)
ostream operator<<() for Variant.

Detailed Description

Declaration and (partial) implementation of class Variant.

Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/Vector.h File Reference

  • File List
  • File Members
keyvalue » value

Vector.h File Reference

Declaration of class Vector (container). More...

#include <iosfwd>
#include "keyvalue/extern/Vector.h"
#include "keyvalue/value/Matrix.h"
Include dependency graph for Vector.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class | Vector
A m x 1 or 1 x n Matrix. More...

Namespaces

namespace | keyvalue

All functionalities of KeyValue library are inside this namespace.

namespace | keyvalue::value

All KeyValue containers belong to this namespace.

Functions

std::ostream & | operator<< (std::ostream &os, const Vector &vector)
ostream operator<<() for Vector.

Detailed Description

Declaration of class Vector (container).

Generated on Sat Mar 20 14:13:26 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/bridge/key/ Directory Reference

keyvalue » bridge » key

key Directory Reference

Files

file | Device.h [code]

Declaration of class Device.

file | Global.h [code]

Declaration of class Global.

file | Level.h [code]

Declaration of class Level.

Generated on Sat Mar 20 14:15:27 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/extern/ Directory Reference

keyvalue » extern

extern Directory Reference

Files

file | Ptime.h [code]

Export boost::ptime to namespace keyvalue.

file | SharedPtr.h [code]

Export boost::shared_ptr to namespace keyvalue.

file | String.h [code]

Export std::string to namespace keyvalue.

file | Vector.h [code]

Export std::vector to namespace keyvalue.

Generated on Sat Mar 20 14:15:25 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/frontend/ Directory Reference

keyvalue » frontend

frontend Directory Reference

Files

file | FrontEnd.h [code]

Declaration of class FrontEnd.

file | LexicalToolKit.h [code]

Definition of class LexicalToolKit.

file | LexicalToolKitPairs.h [code]

X Macro helper for class LexicalToolkit.

file | Queue.h [code]

Declaration of class Queue.

Generated on Sat Mar 20 14:15:25 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/converter/ Directory Reference

keyvalue » key » converter

converter Directory Reference

Files

file | StdMatrix.h [code]

Declaration and implementation of template class StdMatrix.

file | StdSingle.h [code]

Declaration and implementation of template class StdSingle.

file | StdVector.h [code]

Declaration and implementation of template class StdVector.

Generated on Sat Mar 20 14:15:23 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/bound/ Directory Reference

keyvalue » key » generic » bound

bound Directory Reference

Files

file | Geq.h [code]

Declaration of template class Geq.

file | Greater.h [code]

Declaration of template class Greater.

file | Leq.h [code]

Declaration of template class Leq.

file | Less.h [code]

Declaration of template class Less.

file | NoBound.h [code]

Declaration of template class NoBound.

Generated on Sat Mar 20 14:15:22 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/monotone/ Directory Reference

keyvalue » key » generic » monotone

monotone Directory Reference

Files

file | Decreasing.h [code]

Declaration of class Decreasing.

file | Increasing.h [code]

Declaration of class Increasing.

file | NonMonotone.h [code]

Declaration of class NonMonotone.

file | StrictlyDecreasing.h [code]

Declaration of class StrictlyDecreasing.

file | StrictlyIncreasing.h [code]

Declaration of class StrictlyIncreasing.

Generated on Sat Mar 20 14:15:31 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/map/ Directory Reference

keyvalue » key » map

map Directory Reference

Files

file | Default.h [code]

Declaration and implementation of template class Default.

file | FlagMap.h [code]

Declaration and implementation of template class FlagMap.

file | NoMap.h [code]

Declaration of template class NoMap.

file | ObjectMap.h [code]

Declaration and implementation of template class ObjectMap.

file | PartialMap.h [code]

Declaration of template class PartialMap.

Generated on Sat Mar 20 14:15:29 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/specific/ Directory Reference

keyvalue » key » specific

specific Directory Reference

Files

file | Export.h [code]

Declaration of class Export.

file | Imports.h [code]

Declaration of class Imports.

file | ProcessNow.h [code]

Declaration of class ProcessNow.

file | Processor.h [code]

Declaration of class Processor (key).

file | VectorOutput.h [code]

Declaration of class VectorOutput.

Generated on Sat Mar 20 14:15:33 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/ Directory Reference

keyvalue » mngt

mngt Directory Reference

Files

file | Builder.h [code]

Declaration and (partial) implementation of template class Builder.

file | Calculator.h [code]

Declaration and (partial) implementation of template class Calculator.

file | DataSet.h [code]

Declaration of class DataSet.

file | process.h [code]

Declaration of function keyvalue::process().

file | Processor.h [code]

Declaration of class Processor.

file | ProcessorMngr.h [code]

Declaration of class ProcessorMngr.

file | Repository.h [code]

Declaration of class Repository.

file | XBuilder.h [code]

Declaration and (partial) implementation of template class XBuilder.

file | XCalculator.h [code]

Declaration and (partial) implementation of template class XCalculator.

Generated on Sat Mar 20 14:15:31 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/pattern/ Directory Reference

keyvalue » pattern

pattern Directory Reference

Files

file | KeyInSingle.h [code]

Declaration of class KeyInSingle.

file | KeysInMatrix.h [code]

Declaration of class KeysInMatrix.

file | KeysInVector.h [code]

Declaration of class KeysInVector.

file | Pattern.h [code]

Declaration of class Pattern and functions keyvalue::pattern::isKey() and keyvalue::pattern::getKey().

file | Table.h [code]

Declaration of class Table.

Generated on Sat Mar 20 14:15:32 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/exception/ Directory Reference

keyvalue » sys » exception

exception Directory Reference

Files

file | Exception.h [code]

Declaration of classes Exception, RuntimeError and LogicError.

file | KV_ASSERT.h [code]

Implementation of macro KV_ASSERT.

Generated on Sat Mar 20 14:15:24 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/policy/ Directory Reference

keyvalue » sys » logger » policy

policy Directory Reference

Files

file | AddPrefix.h [code]

Declaration of class AddPrefix.

file | ForwardToGlobalLogger.h [code]

Declaration of class ForwardToGlobalLogger.

file | IgnoreColor.h [code]

Declaration of class IgnoreColor.

file | IgnoreFailure.h [code]

Declaration of class IgnoreFailure.

file | IgnorePrefix.h [code]

Declaration of class IgnorePrefix.

file | XtermColor.h [code]

Declaration of class XtermColor.

Generated on Sat Mar 20 14:15:32 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/message/ Directory Reference

keyvalue » sys » message

message Directory Reference

Files

file | Message.h [code]

Declaration of class Message.

file | MessageImpl.h [code]

Declaration of classes MessageImpl, Error, Info, Warning, Report and Debug.

Generated on Sat Mar 20 14:15:30 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/util/ Directory Reference

keyvalue » util

util Directory Reference

Files

file | IsBasic.h [code]

Declaration and implementation of template class IsBasic.

file | Lexical.h [code]

Declaration of template function Lexical.

file | NullDeleter.h [code]

Declaration of class NullDeleter.

file | Saver.h [code]

Definition and implementation of template class Saver.

file | tenor2ptime.h [code]

Declaration of function tenor2ptime().

file | Util.h [code]

Documentation of namespace util.

Generated on Sat Mar 20 14:15:34 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/ Directory Reference

keyvalue » value

value Directory Reference

Files

file | Matrix.h [code]

Declaration of class Matrix (container).

file | Nothing.h [code]

Declaration of class Nothing.

file | Parent.h [code]

Declaration of template class Parent.

file | Result.h [code]

Declaration of classes Result and ObjectPtr.

file | Single.h [code]

Declaration of class Single (container).

file | TypeName.h [code]

Definition of template class TypeName.

file | Value.h [code]

Declaration and (partial) implementation of class Value.

file | Variant.h [code]

Declaration and (partial) implementation of class Variant.

file | Vector.h [code]

Declaration of class Vector (container).

Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • File List
  • File Members
  • All
  • Defines
Here is a list of all documented file members with links to the documentation:
  • KV_ASSERT : KV_ASSERT.h
  • KV_LEXICAL_TOOL_KIT_PAIR : LexicalToolKit.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/policy/AddPrefix.h Source File

  • File List
  • File Members
keyvalue » sys » logger » policy

AddPrefix.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_SYS_LOGGER_POLICY_ADDPREFIX_H_
00029 #define KEYVALUE_SYS_LOGGER_POLICY_ADDPREFIX_H_
00030
00031 #include <boost/utility.hpp>
00032
00033 #include "keyvalue/extern/String.h"
00034
00035 namespace keyvalue {
00036
00037 // Forward declarations
00038
00039 class Message;
00040
00041 namespace logger {
00042
00049 class AddPrefix : private boost::noncopyable {
00050
00051 protected:
00052
00053   bool
00054   apply(const Message& message);
00055
00056   virtual bool
00057   send(const string& message) = 0;
00058
00059 }; // class AddPrefix
00060
00061 } // namespace logger
00062 } // namespace keyvalue
00063
00064 #endif // KEYVALUE_SYS_LOGGER_POLICY_ADDPREFIX_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class List

  • Class List
  • Class Hierarchy
  • Class Members

Class List

Here are the classes, structs, unions and interfaces with brief descriptions:
AddPrefix | Defines a policy for Message prefixes, which is, to send the prefix to the underlying Logger's device
Bounded< ElementType, Bound1, Bound2 > | Key for bounded values
Bridge | Bridge's specific data
Builder< ObjectType > | Primary template class for Builder's specializations
Calculator< Tag > | Primary template class for Calculator's specializations
Checker< ConverterType, InputType > | Primary key checker template class
Checker< ConverterType, value::Matrix > | Specialization of Checker for InputType equal to value::Matrix
Checker< ConverterType, value::Single > | Specialization of Checker for InputType equal to value::Single
Checker< ConverterType, value::Vector > | Specialization of Checker for InputType equal to value::Vector
ConsoleLogger | Implements a console Logger
DataSet | A named map from keys to values
Debug | MessageImpl instance used for debug messages
Decreasing | Decreasing monotone class
Default< OutputType > | Meta-function which defines Traits' default map type
DefaultMap< OutputType, isBasic > | Meta-function which defines Traits' default map type
Device | Device key
Error | MessageImpl instance used for error messages
Exception | Base protocol class for all exceptions
ExceptionImpl< StdExcept, MessageType > | Concrete template class which implements Exception's pure virtual methods
Export | Export key
Failure | This class is thrown when LexicalToolKit::convert() fails
FileLogger | Implements a file Logger
FileRaii | XtermConsole's helper class for file management
FlagMap< OutputType > | Maps names to constants
ForwardToGlobalLogger | Defines a policy to apply when the Logger fails to process a Message, namely, forward it to GlobalLogger
FrontEnd | Front-end's specific data
Geq< ElementType > | Greater-than-or-equal-to bound class
Global | Global key
GlobalLogger | The global logger class
Graph | Simplified dependency graph
Greater< ElementType > | Greater-than bound class
Helper< From, To > | Helper class of LexicalToolKit
IgnoreColor | Defines a policy for Message colors, which is, to ignore them
IgnoreFailure | Defines a policy to apply when the logger fails, which is, to ignore the failure
IgnorePrefix | Defines a policy for Message prefixes, which is, to ignore them
Imports | Imports key
Increasing | Increasing monotone class
Info | MessageImpl instance used for info messages
IsBasic< ElementType > | This meta-function checks if a type is either bool, double, string, ptime or unsigned int or not
IsBasicOrEnum< ElementType > | This meta-function checks if a type is either bool, double, string, ptime, unsigned int or enum or not
Key | Base for all real keys
KeyInSingle | Pattern where a value::Single object, recognized as a key, is followed by any value::Value
KeysInMatrix | Pattern made by a value::Matrix where all elements either in the first row or in the first column are keys
KeysInVector | Pattern made by a value::Vector whose entries are keys followed by a value::Vector or value::Matrix
Leq< ElementType > | Less-than-or-equal-to bound class
Less< ElementType > | Less-than bound class
Level | Level key
LexicalToolKit | Manager of all lexical converters needed for front-end input/output
Logger | Protocol class which defines the interface for all types of logger
LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > | Abstract class which implements main methods of concrete Loggers
Logic | MessageImpl instance used for logic error messages
LogicError | Base class for all KeyValue exceptions occurring at development time
Matrix< ElementType > | Generic key whose converter type is StdMatrix
Matrix | Matrix of Variants
Message | Abstract class which defines the interface for all types of message
MessageImpl< id > | Implementation of class Message
MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 > | Key for monotone bounded vectors
NoBound< ElementType > | NoBound bound class
NoMap< OutputType > | Identity map (aka, NoMap)
NonMonotone | NonMonotone class
NotFound | Exception thrown by get() when a DataSet is not found
Nothing | Empty class to represent empty data
NullDeleter | A shared_ptr deleter that does not do anything
ObjectMap< OutputType > | Maps names to objects
ObjectPtr | Pointer to objects
Parent< T > | Primary Parent template meta-function
PartialMap< OutputType > | Partially maps names to constants
Pattern | Protocol class which defines the interface for pattern recognition classes
Positive | A general key for positive values
ProcessNow | ProcessNow key
Processor | Processor key
Processor | Protocol class that defines Processor interface
ProcessorMngr | The processor manager
Queue | Protocol class which defines the Queue interface
QueueRaii | This class implements RAII for a frontend::Queue
Record | A wrapper around a value::Value
Report | MessageImpl instance used for reporting results
Repository | The Repository of DataSets
Result | A single-valued container for ObjectPtr or Value
RuntimeError | Base class for all KeyValue exceptions occurring at runtime
Saver< SavedType > | Saves a variable reference at construction time to restore/set its value at destruction time
Single | A 1 x 1 Matrix
Single< ElementType > | Generic key whose converter type is StdSingle
StdMatrix< ElementType > | Converter from value::Matrix to shared_ptr<std::vector<std::vector<ElementType>>>
StdSingle< ElementType > | Converter from value::Single to ElementType
StdVector< ElementType > | Converter from value::Vector to shared_ptr<std::vector<ElementType>>
StrictlyDecreasing | StrictlyDecreasing monotone class
StrictlyIncreasing | StrictlyIncreasing monotone class
StrictlyPositive | A general key whose value is a strictly positive number
Table | Pattern where a value::Matrix contains the row, column and table keys
Traits< ElementType, ConverterType, MapType > | Real keys must derive from adequate instance of this template class
TypeName< Type > | Meta function which returns the name of type
Value | A single-valued container for Single, Vector or Matrix
Variant | Single-value multi-type container
Vector< ElementType > | Generic key whose converter type is StdVector
Vector | A m x 1 or 1 x n Matrix
VectorOutput | VectorOutput key
VectorOutputBase | VectorOutput's base class
Warning | MessageImpl instance used for warning messages
WindowsConsole | This class implements a Windows console Logger
XBuilder< ObjectType > | Primary template class for XBuilder's specializations
XCalculator< Tag > | Primary template class for XCalculator's specializations
XtermColor | Defines a policy for Message color, which is, to set the underlying device of the Logger to print in Message's color
XtermConsole | Implements an xterm console Logger
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/Bounded.h Source File

  • File List
  • File Members
keyvalue » key » generic

Bounded.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_KEY_GENERIC_BOUNDED_H_
00030 #define KEYVALUE_KEY_GENERIC_BOUNDED_H_
00031
00032 #include "keyvalue/key/converter/StdSingle.h"
00033 #include "keyvalue/key/generic/bound/NoBound.h"
00034 #include "keyvalue/key/Traits.h"
00035
00036 namespace keyvalue {
00037 namespace key {
00038
00104 template<typename ElementType, template <typename> class Bound1,
00105   template <typename> class Bound2 = NoBound>
00106 class Bounded: public Traits<ElementType, StdSingle, NoMap> {
00107
00108 public:
00109
00118   Bounded(const string& name, const ElementType& bound1);
00119
00130   Bounded(const string& name, const ElementType& bound1,
00131     const ElementType& bound2);
00132
00140   void checkOutput(ElementType element) const;
00141
00142 private:
00143
00144   const Bound1<ElementType> bound1_;
00145   const Bound2<ElementType> bound2_;
00146
00147 }; // class Bounded
00148
00149 /*--------------------------------------------------------------------------
00150  * Bounded()
00151  *------------------------------------------------------------------------*/
00152
00153 template<typename ElementType, template <typename> class Bound1,
00154   template <typename> class Bound2>
00155 Bounded<ElementType, Bound1, Bound2>::Bounded(const string& name,
00156   const ElementType& bound1) : Bounded::Traits_(name), bound1_(bound1),
00157   bound2_() {
00158 }
00159
00160 template<typename ElementType, template <typename> class Bound1,
00161   template <typename> class Bound2>
00162 Bounded<ElementType, Bound1, Bound2>::Bounded(const string& name,
00163   const ElementType& bound1, const ElementType& bound2) :
00164   Key(name), bound1_(bound1), bound2_(bound2) {
00165 }
00166
00167 /*--------------------------------------------------------------------------
00168  * checkOutput()
00169  *------------------------------------------------------------------------*/
00170
00171 template<typename ElementType, template <typename> class Bound1,
00172   template <typename> class Bound2>
00173 void
00174 Bounded<ElementType, Bound1, Bound2>::checkOutput(const ElementType element)
00175   const {
00176
00177   if (!bound1_.check(element))
00178     throw RuntimeError() & "Value for key '" & Key::getName() & "' must "
00179       "be " & bound1_.getName() & " " & bound1_.getBound() & ". Got " &
00180       element & "!";
00181
00182   if (!bound2_.check(element))
00183     throw RuntimeError() & "Value for key '" & Key::getName() & "' must "
00184       "be " & bound2_.getName() & " " & bound2_.getBound() & ". Got " &
00185       element & "!";
00186 }
00187
00188 } // namespace key
00189 } // namespace keyvalue
00190
00191 #endif // KEYVALUE_KEY_GENERIC_BOUNDED_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/bridge/Bridge.h Source File

  • File List
  • File Members
keyvalue » bridge

Bridge.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUEBRIDGEBRIDGE_H_
00029 #define KEYVALUEBRIDGEBRIDGE_H_
00030
00031 #include <boost/utility.hpp>
00032
00033 namespace keyvalue {
00034
00039 namespace bridge {
00040 }
00041
00050 class Bridge : private boost::noncopyable {
00051
00052 public:
00053
00059   static Bridge&
00060   getInstance();
00061
00074   const char*
00075   getCoreLibraryName() const;
00076
00089   const char*
00090   getSimpleInfo() const;
00091
00101   const char*
00102   getCompleteInfo() const;
00103
00104 private :
00105
00106   Bridge();
00107
00108 }; // class Bridge
00109
00110 } // namespace keyvalue
00111
00112 #endif // KEYVALUEBRIDGEBRIDGE_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/Builder.h Source File

  • File List
  • File Members
keyvalue » mngt

Builder.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_MNGT_BUILDER_H_
00030 #define KEYVALUE_MNGT_BUILDER_H_
00031
00032 #include "keyvalue/mngt/Processor.h"
00033 #include "keyvalue/mngt/ProcessorMngr.h"
00034 #include "keyvalue/sys/exception/Exception.h"
00035 #include "keyvalue/value/Variant.h"
00036
00037 namespace keyvalue {
00038
00055 template <typename ObjectType>
00056 class Builder : public Processor {
00057
00058 public:
00059
00070   static Builder&
00071   getInstance();
00072
00081   const char*
00082   getName() const;
00083
00093   value::Result
00094   getResult(const DataSet& data) const;
00095
00105   value::Result
00106   getResult(const value::Variant& data) const;
00107
00118   virtual shared_ptr<ObjectType>
00119   getObject(const DataSet& data) const;
00120
00134   virtual shared_ptr<ObjectType>
00135   getObject(const value::Variant& data) const;
00136
00137 protected:
00138
00139   // Constructor registers this into the ProcessorMngr
00140   Builder();
00141
00163   static void
00164   setGetter(Builder& (*getter)());
00165
00166 private:
00167
00178   static Builder&
00179   getSingleton();
00180
00181   static Builder& (*getter_)();
00182
00183 }; // class Builder
00184
00185 /*--------------------------------------------------------------------------
00186  * getInstance()
00187  *------------------------------------------------------------------------*/
00188
00189 template <typename ObjectType>
00190 Builder<ObjectType>&
00191 Builder<ObjectType>::getInstance() {
00192   return getter_();
00193 }
00194
00195 template <typename ObjectType>
00196 Builder<ObjectType>& (*Builder<ObjectType>::getter_)() =
00197   Builder<ObjectType>::getSingleton;
00198
00199 /*--------------------------------------------------------------------------
00200  * getResult()
00201  *------------------------------------------------------------------------*/
00202
00203 template <typename ObjectType>
00204 value::Result
00205 Builder<ObjectType>::getResult(const DataSet& data) const {
00206   return getObject(data);
00207 }
00208
00209 template <typename ObjectType>
00210 value::Result
00211 Builder<ObjectType>::getResult(const value::Variant& data) const {
00212   return getObject(data);
00213 }
00214
00215 /*--------------------------------------------------------------------------
00216  * getObject()
00217  *------------------------------------------------------------------------*/
00218
00219 template <typename ObjectType>
00220 shared_ptr<ObjectType>
00221 Builder<ObjectType>::getObject(const value::Variant& data) const {
00222   throw RuntimeError() & "Builder '" & getName() & "' cannot build from "
00223     "input '" & data & "'!";
00224 }
00225
00226 /*--------------------------------------------------------------------------
00227  * Builder()
00228  *------------------------------------------------------------------------*/
00229
00230 template <typename ObjectType>
00231 Builder<ObjectType>::Builder() {
00232   ProcessorMngr::getInstance().add(this);
00233 }
00234
00235 /*--------------------------------------------------------------------------
00236  * setGetter()
00237  *------------------------------------------------------------------------*/
00238
00239 template <typename ObjectType>
00240 void
00241 Builder<ObjectType>::setGetter(Builder& (*getter)()) {
00242   getter_ = getter;
00243 }
00244
00245 /*--------------------------------------------------------------------------
00246  * getSingleton()
00247  *------------------------------------------------------------------------*/
00248
00249 template <typename ObjectType>
00250 Builder<ObjectType>&
00251 Builder<ObjectType>::getSingleton() {
00252   static Builder<ObjectType> singleton;
00253   return singleton;
00254 }
00255
00256 } // namespace keyvalue
00257
00258 #endif // KEYVALUE_MNGT_BUILDER_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/Calculator.h Source File

  • File List
  • File Members
keyvalue » mngt

Calculator.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_MNGT_CALCULATOR_H_
00030 #define KEYVALUE_MNGT_CALCULATOR_H_
00031
00032 #include "keyvalue/mngt/Processor.h"
00033 #include "keyvalue/mngt/ProcessorMngr.h"
00034 #include "keyvalue/sys/exception/Exception.h"
00035 #include "keyvalue/value/Variant.h"
00036
00037 namespace keyvalue {
00038
00056 template <typename Tag>
00057 class Calculator : public Processor {
00058
00059 public:
00060
00071   static Calculator&
00072   getInstance();
00073
00082   const char*
00083   getName() const;
00084
00094   value::Result
00095   getResult(const DataSet& data) const;
00096
00106   value::Result
00107   getResult(const value::Variant& data) const;
00108
00119   virtual value::Value
00120   getValue(const DataSet& data) const;
00121
00133   virtual value::Value
00134   getValue(const value::Variant& data) const;
00135
00136 protected:
00137
00138   // Constructor registers this into the ProcessorMngr
00139   Calculator();
00140
00163   static void
00164   setGetter(Calculator& (*getter)());
00165
00166 private:
00167
00178   static Calculator&
00179   getSingleton();
00180
00181   static Calculator& (*getter_)();
00182
00183 }; // class Calculator
00184
00185 /*--------------------------------------------------------------------------
00186  * getInstance()
00187  *------------------------------------------------------------------------*/
00188
00189 template <typename Tag>
00190 Calculator<Tag>&
00191 Calculator<Tag>::getInstance() {
00192   return getter_();
00193 }
00194
00195 template <typename Tag>
00196 Calculator<Tag>& (*Calculator<Tag>::getter_)() =
00197   Calculator<Tag>::getSingleton;
00198
00199 /*--------------------------------------------------------------------------
00200  * getResult()
00201  *------------------------------------------------------------------------*/
00202
00203 template <typename Tag>
00204 value::Result
00205 Calculator<Tag>::getResult(const DataSet& data) const {
00206   return getValue(data);
00207 }
00208
00209 template <typename Tag>
00210 value::Result
00211 Calculator<Tag>::getResult(const value::Variant& data) const {
00212   return getValue(data);
00213 }
00214
00215 /*--------------------------------------------------------------------------
00216  * getValue()
00217  *------------------------------------------------------------------------*/
00218
00219 template <typename Tag>
00220 value::Value
00221 Calculator<Tag>::getValue(const value::Variant& data) const {
00222   throw RuntimeError() & "Calculator '" & getName() & "' cannot build from "
00223     "input '" & data & "'!";
00224 }
00225
00226 /*--------------------------------------------------------------------------
00227  * Calculator()
00228  *------------------------------------------------------------------------*/
00229
00230 template <typename Tag>
00231 Calculator<Tag>::Calculator() {
00232   ProcessorMngr::getInstance().add(this);
00233 }
00234
00235 /*--------------------------------------------------------------------------
00236  * setGetter()
00237  *------------------------------------------------------------------------*/
00238
00239 template <typename Tag>
00240 void
00241 Calculator<Tag>::setGetter(Calculator& (*getter)()) {
00242   getter_ = getter;
00243 }
00244
00245 /*--------------------------------------------------------------------------
00246  * getSingleton()
00247  *------------------------------------------------------------------------*/
00248
00249 template <typename Tag>
00250 Calculator<Tag>&
00251 Calculator<Tag>::getSingleton() {
00252   static Calculator<Tag> singleton;
00253   return singleton;
00254 }
00255
00256 } // namespace keyvalue
00257
00258 #endif // KEYVALUE_MNGT_CALCULATOR_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/Checker.h Source File

  • File List
  • File Members
keyvalue » key

Checker.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_CHECKER_H_
00029 #define KEYVALUE_KEY_CHECKER_H_
00030
00031 #include "keyvalue/value/Single.h"
00032 #include "keyvalue/value/Vector.h"
00033
00034 namespace keyvalue {
00035 namespace key {
00036
00065 #if DOXYGEN
00066 template <typename ConverterType,
00067   typename InputType = typename ConverterType::InputType_>
00068 class Checker {};
00069 #endif
00070
00071 template <typename ConverterType,
00072   typename InputType = typename ConverterType::InputType_>
00073 class Checker;
00074
00081 template <typename ConverterType>
00082 class Checker<ConverterType, value::Single> {
00083
00084 public:
00085
00086   typedef typename ConverterType::OutputType_ OutputType_;
00087
00093   void
00094   checkInput(const value::Single& input) const;
00095
00105   void
00106   checkSoFar(const ConverterType& container) const;
00107
00113   void
00114   checkOutput(const OutputType_& output) const;
00115
00116 private :
00117
00123   virtual string
00124   getName() const = 0;
00125
00126 };
00127
00128 /*--------------------------------------------------------------------------
00129  * checkInput()
00130  *------------------------------------------------------------------------*/
00131
00132 template <typename ConverterType>
00133 void
00134 Checker<ConverterType, value::Single>::checkInput(const value::Single&
00135   /* input */) const {
00136 }
00137
00138 /*--------------------------------------------------------------------------
00139  * checkSoFar()
00140  *------------------------------------------------------------------------*/
00141
00142 template <typename ConverterType>
00143 void
00144 Checker<ConverterType, value::Single>::checkSoFar(const ConverterType&
00145   /* container */) const {
00146 }
00147
00148 /*--------------------------------------------------------------------------
00149  * checkOutput()
00150  *------------------------------------------------------------------------*/
00151
00152 template <typename ConverterType>
00153 void
00154 Checker<ConverterType, value::Single>::checkOutput(const OutputType_&
00155   /* output */) const {
00156 }
00157
00164 template <typename ConverterType>
00165 class Checker<ConverterType, value::Vector> {
00166
00167 public:
00168
00169   typedef typename ConverterType::OutputType_ OutputType_;
00170
00178   void
00179   checkInput(const value::Vector& input) const;
00180
00186   void
00187   checkSoFar(const ConverterType& container) const;
00188
00194   void
00195   checkOutput(const OutputType_& output) const;
00196
00197 private:
00198
00204   virtual string
00205   getName() const = 0;
00206
00212   virtual void
00213   checkSize(size_t size) const;
00214
00215 };
00216
00217 /*--------------------------------------------------------------------------
00218  * checkInput()
00219  *------------------------------------------------------------------------*/
00220
00221 template <typename ConverterType>
00222 void
00223 Checker<ConverterType, value::Vector>::checkInput(const value::Vector&
00224   input) const {
00225   this->checkSize(input.getSize());
00226 }
00227
00228 /*--------------------------------------------------------------------------
00229  * checkSoFar()
00230  *------------------------------------------------------------------------*/
00231
00232 template <typename ConverterType>
00233 void
00234 Checker<ConverterType, value::Vector>::checkSoFar(const ConverterType&
00235   /* ConverterType */) const {
00236 }
00237
00238 /*--------------------------------------------------------------------------
00239  * checkOutput()
00240  *------------------------------------------------------------------------*/
00241
00242 template <typename ConverterType>
00243 void
00244 Checker<ConverterType, value::Vector>::checkOutput(const OutputType_&
00245   /* output*/) const {
00246 }
00247
00248 /*--------------------------------------------------------------------------
00249  * checkSize()
00250  *------------------------------------------------------------------------*/
00251
00252 template <typename ConverterType>
00253 void
00254 Checker<ConverterType, value::Vector>::checkSize(const size_t /* size */)
00255   const {
00256 }
00257
00264 template <typename ConverterType>
00265 class Checker<ConverterType, value::Matrix> {
00266
00267 public:
00268
00269   typedef typename ConverterType::OutputType_ OutputType_;
00270
00278   void
00279   checkInput(const value::Matrix& input) const;
00280
00286   void
00287   checkSoFar(const ConverterType& container) const;
00288
00294   void
00295   checkOutput(const OutputType_& output) const;
00296
00297 private:
00298
00304   virtual string
00305   getName() const = 0;
00306
00313   virtual void
00314   checkSize(size_t nRows, size_t nCols) const;
00315
00316 };
00317
00318 /*--------------------------------------------------------------------------
00319  * checkInput()
00320  *------------------------------------------------------------------------*/
00321
00322 template <typename ConverterType>
00323 void
00324 Checker<ConverterType, value::Matrix>::checkInput(const value::Matrix&
00325   input) const {
00326   this->checkSize(input.getNRows(), input.getNCols());
00327 }
00328
00329 /*--------------------------------------------------------------------------
00330  * checkSoFar()
00331  *------------------------------------------------------------------------*/
00332
00333 template <typename ConverterType>
00334 void
00335 Checker<ConverterType, value::Matrix>::checkSoFar(const ConverterType&
00336   /* ConverterType */) const {
00337 }
00338
00339 /*--------------------------------------------------------------------------
00340  * checkOutput()
00341  *------------------------------------------------------------------------*/
00342
00343 template <typename ConverterType>
00344 void
00345 Checker<ConverterType, value::Matrix>::checkOutput(const OutputType_&
00346   /* output*/) const {
00347 }
00348
00349 /*--------------------------------------------------------------------------
00350  * checkSize()
00351  *------------------------------------------------------------------------*/
00352
00353 template <typename ConverterType>
00354 void
00355 Checker<ConverterType, value::Matrix>::checkSize(const size_t /* nRows */,
00356   const size_t /* nCols */) const {
00357 }
00358
00359 } // namespace key
00360 } // namespace keyvalue
00361
00362 #endif // KEYVALUE_KEY_CHECKER_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: Alphabetical List

  • Class List
  • Class Hierarchy
  • Class Members

Class Index

A | B | C | D | E | F | G | H | I | K | L | M | N | O | P | Q | R | S | T | V | W | X
A
LexicalToolKit::Failure (keyvalue::frontend) KeyInSingle (keyvalue::pattern)
O
StdMatrix (keyvalue::key)
AddPrefix (keyvalue::logger) FileLogger (keyvalue::logger) KeysInMatrix (keyvalue::pattern) ObjectMap (keyvalue::key) StdSingle (keyvalue::key)
B
XtermConsole::FileRaii (keyvalue::logger) KeysInVector (keyvalue::pattern) ObjectPtr StdVector (keyvalue::key)
Bounded (keyvalue::key) FlagMap (keyvalue::key)
L
P
StrictlyDecreasing (keyvalue::key)
Bridge (keyvalue) ForwardToGlobalLogger (keyvalue::logger) Leq (keyvalue::key) Parent (keyvalue::value) StrictlyIncreasing (keyvalue::key)
Builder (keyvalue) FrontEnd (keyvalue::frontend) Less (keyvalue::key) PartialMap (keyvalue::key) StrictlyPositive (keyvalue::key)
C
G
Level (keyvalue::key) Pattern (keyvalue::pattern)
T
Calculator (keyvalue) Geq (keyvalue::key) LexicalToolKit (keyvalue::frontend) Positive (keyvalue::key) Table (keyvalue::pattern)
Checker (keyvalue::key) Global (keyvalue::key) Logger (keyvalue::logger) ProcessNow (keyvalue::key) Traits (keyvalue::key)
Checker< ConverterType, value::Matrix > (keyvalue::key) GlobalLogger (keyvalue::logger) LoggerImpl (keyvalue::logger) Processor (keyvalue) TypeName (keyvalue::value)
Checker< ConverterType, value::Single > (keyvalue::key) DataSet::Graph (keyvalue) Logic Processor (keyvalue::key)
V
Checker< ConverterType, value::Vector > (keyvalue::key) Greater (keyvalue::key) LogicError ProcessorMngr (keyvalue) Value (keyvalue::value)
ConsoleLogger (keyvalue::logger)
H
M
Q
Variant (keyvalue::value)
D
LexicalToolKit::Helper (keyvalue::frontend) Matrix (keyvalue::value) Queue (keyvalue::frontend) Vector (keyvalue::value)
DataSet (keyvalue)
I
Matrix (keyvalue::key) Pattern::QueueRaii (keyvalue::pattern) Vector (keyvalue::key)
Debug IgnoreColor (keyvalue::logger) Message (keyvalue)
R
VectorOutput (keyvalue::key)
Decreasing (keyvalue::key) IgnoreFailure (keyvalue::logger) MessageImpl (keyvalue) DataSet::Record (keyvalue) VectorOutputBase (keyvalue::key)
Default (keyvalue::key) IgnorePrefix (keyvalue::logger) MonotoneBoundedVector (keyvalue::key) Report
W
DefaultMap (keyvalue::key) Imports (keyvalue::key)
N
Repository (keyvalue) Warning
Device (keyvalue::key) Increasing (keyvalue::key) NoBound (keyvalue::key) Result (keyvalue::value) WindowsConsole (keyvalue::logger)
E
Info NoMap (keyvalue::key) RuntimeError
X
Error IsBasic (keyvalue::util) NonMonotone (keyvalue::key)
S
XBuilder (keyvalue)
Exception (keyvalue::exception) IsBasicOrEnum (keyvalue::util) Repository::NotFound (keyvalue) Saver (keyvalue::util) XCalculator (keyvalue)
ExceptionImpl (keyvalue::exception)
K
Nothing (keyvalue::value) Single (keyvalue::key) XtermColor (keyvalue::logger)
Export (keyvalue::key) Key (keyvalue::key) NullDeleter (keyvalue::util) Single (keyvalue::value) XtermConsole (keyvalue::logger)
F
A | B | C | D | E | F | G | H | I | K | L | M | N | O | P | Q | R | S | T | V | W | X
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Bridge Member List

This is the complete list of members for Bridge, including all inherited members.
Bridge() (defined in Bridge) | Bridge | [private]
getCompleteInfo() const | Bridge |
getCoreLibraryName() const | Bridge |
getInstance() | Bridge | [static]
getSimpleInfo() const | Bridge |
Generated on Sat Mar 20 14:14:51 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Builder< ObjectType > Member List

This is the complete list of members for Builder< ObjectType >, including all inherited members.
Builder() (defined in Builder< ObjectType >) | Builder< ObjectType > | [inline, protected]
getInstance() | Builder< ObjectType > | [inline, static]
getName() const | Builder< ObjectType > | [virtual]
getObject(const DataSet &data) const | Builder< ObjectType > | [virtual]
getObject(const value::Variant &data) const | Builder< ObjectType > | [inline, virtual]
getResult(const DataSet &data) const | Builder< ObjectType > | [inline, virtual]
getResult(const value::Variant &data) const | Builder< ObjectType > | [inline, virtual]
getSingleton() | Builder< ObjectType > | [inline, private, static]
getter_ (defined in Builder< ObjectType >) | Builder< ObjectType > | [private, static]
setGetter(Builder &(*getter)()) | Builder< ObjectType > | [inline, protected, static]
~Processor() (defined in Processor) | Processor | [virtual]
Generated on Sat Mar 20 14:14:51 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Calculator< Tag > Member List

This is the complete list of members for Calculator< Tag >, including all inherited members.
Calculator() (defined in Calculator< Tag >) | Calculator< Tag > | [inline, protected]
getInstance() | Calculator< Tag > | [inline, static]
getName() const | Calculator< Tag > | [virtual]
getResult(const DataSet &data) const | Calculator< Tag > | [inline, virtual]
getResult(const value::Variant &data) const | Calculator< Tag > | [inline, virtual]
getSingleton() | Calculator< Tag > | [inline, private, static]
getter_ (defined in Calculator< Tag >) | Calculator< Tag > | [private, static]
getValue(const DataSet &data) const | Calculator< Tag > | [virtual]
getValue(const value::Variant &data) const | Calculator< Tag > | [inline, virtual]
setGetter(Calculator &(*getter)()) | Calculator< Tag > | [inline, protected, static]
~Processor() (defined in Processor) | Processor | [virtual]
Generated on Sat Mar 20 14:14:52 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

DataSet Member List

This is the complete list of members for DataSet, including all inherited members.
add(const string &key, const value::Value &value) | DataSet |
DataSet(const string &name) | DataSet | [explicit]
doProcess(const Processor &processor) const (defined in DataSet) | DataSet | [private]
find(const KeyType &key) const | DataSet | [inline]
getGraph(const string &key, bool start=true) const | DataSet | [private]
getGraph(shared_ptr< Record > first, const string &key) const (defined in DataSet) | DataSet | [private]
getName() const | DataSet |
getValue(const KeyType &key) const | DataSet | [inline]
map_ (defined in DataSet) | DataSet | [mutable, private]
MapType_ typedef (defined in DataSet) | DataSet | [private]
mustUpdate() const | DataSet |
mustUpdate_ (defined in DataSet) | DataSet | [mutable, private]
name_ (defined in DataSet) | DataSet | [private]
operator<<(std::ostream &os, const DataSet &dataSet) | DataSet | [friend]
process() const | DataSet |
process(const Processor &processor) const | DataSet |
result_ (defined in DataSet) | DataSet | [mutable, private]
ValueType_ typedef (defined in DataSet) | DataSet | [private]
Generated on Sat Mar 20 14:14:52 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Exception Member List

This is the complete list of members for Exception, including all inherited members.
Exception() | Exception |
getMessage() const =0 | Exception | [pure virtual]
what() const =0 | Exception | [pure virtual]
~Exception() (defined in Exception) | Exception | [virtual]
Generated on Sat Mar 20 14:14:56 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

ExceptionImpl< StdExcept, MessageType > Member List

This is the complete list of members for ExceptionImpl< StdExcept, MessageType >, including all inherited members.
Exception() | Exception |
ExceptionImpl() (defined in ExceptionImpl< StdExcept, MessageType >) | ExceptionImpl< StdExcept, MessageType > | [inline]
getMessage() const | ExceptionImpl< StdExcept, MessageType > | [inline, virtual]
message_ (defined in ExceptionImpl< StdExcept, MessageType >) | ExceptionImpl< StdExcept, MessageType > | [private]
operator&(const DataType &data) | ExceptionImpl< StdExcept, MessageType > | [inline]
str_ (defined in ExceptionImpl< StdExcept, MessageType >) | ExceptionImpl< StdExcept, MessageType > | [mutable, private]
what() const | ExceptionImpl< StdExcept, MessageType > | [inline, virtual]
~Exception() (defined in Exception) | Exception | [virtual]
~ExceptionImpl() (defined in ExceptionImpl< StdExcept, MessageType >) | ExceptionImpl< StdExcept, MessageType > | [inline, virtual]
Generated on Sat Mar 20 14:14:57 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

FrontEnd Member List

This is the complete list of members for FrontEnd, including all inherited members.
FrontEnd() (defined in FrontEnd) | FrontEnd | [private]
getInstance() | FrontEnd | [static]
lexicalToolKit() | FrontEnd |
lexicalToolKit_ (defined in FrontEnd) | FrontEnd | [private]
path() | FrontEnd |
path_ (defined in FrontEnd) | FrontEnd | [private]
Generated on Sat Mar 20 14:14:57 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

LexicalToolKit Member List

This is the complete list of members for LexicalToolKit, including all inherited members.
both enum value (defined in LexicalToolKit) | LexicalToolKit |
convert(From input) const | LexicalToolKit | [inline]
endInitList | LexicalToolKit | [private]
input enum value (defined in LexicalToolKit) | LexicalToolKit |
IO enum name | LexicalToolKit |
isEnabled(IO io) const | LexicalToolKit | [inline]
LexicalToolKit() | LexicalToolKit |
none enum value (defined in LexicalToolKit) | LexicalToolKit |
output enum value (defined in LexicalToolKit) | LexicalToolKit |
set(IO io, typename Helper< From, To >::Type_ converter=util::Lexical) | LexicalToolKit | [inline]
Generated on Sat Mar 20 14:14:57 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Queue Member List

This is the complete list of members for Queue, including all inherited members.
getName() const =0 (defined in Queue) | Queue | [pure virtual]
isEmpty() const =0 | Queue | [pure virtual]
pop()=0 | Queue | [pure virtual]
putBack()=0 | Queue | [pure virtual]
remove()=0 | Queue | [pure virtual]
Generated on Sat Mar 20 14:14:57 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Bounded< ElementType, Bound1, Bound2 > Member List

This is the complete list of members for Bounded< ElementType, Bound1, Bound2 >, including all inherited members.
bound1_ (defined in Bounded< ElementType, Bound1, Bound2 >) | Bounded< ElementType, Bound1, Bound2 > | [private]
bound2_ (defined in Bounded< ElementType, Bound1, Bound2 >) | Bounded< ElementType, Bound1, Bound2 > | [private]
Bounded(const string &name, const ElementType &bound1) | Bounded< ElementType, Bound1, Bound2 > | [inline]
Bounded(const string &name, const ElementType &bound1, const ElementType &bound2) | Bounded< ElementType, Bound1, Bound2 > | [inline]
checkOutput(ElementType element) const | Bounded< ElementType, Bound1, Bound2 > | [inline]
ConverterType_ typedef (defined in Traits< ElementType, StdSingle, NoMap >) | Traits< ElementType, StdSingle, NoMap > |
getName() const | Traits< ElementType, StdSingle, NoMap > |
InputType_ typedef (defined in Traits< ElementType, StdSingle, NoMap >) | Traits< ElementType, StdSingle, NoMap > |
isBasicOrEnum_ enum value (defined in Traits< ElementType, StdSingle, NoMap >) | Traits< ElementType, StdSingle, NoMap > |
Key(const string &name) | Key | [protected]
map(const value::Variant &variant) const | NoMap< ElementType > |
NoMap() (defined in NoMap< ElementType >) | NoMap< ElementType > |
OutputType_ typedef (defined in Traits< ElementType, StdSingle, NoMap >) | Traits< ElementType, StdSingle, NoMap > |
setName(const string &name) | Key |
Traits(const string &name) | Traits< ElementType, StdSingle, NoMap > |
Traits_ typedef (defined in Traits< ElementType, StdSingle, NoMap >) | Traits< ElementType, StdSingle, NoMap > |
~Key() (defined in Key) | Key | [inline, protected]
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Checker< ConverterType, value::Matrix > Member List

This is the complete list of members for Checker< ConverterType, value::Matrix >, including all inherited members.
checkInput(const value::Matrix &input) const | Checker< ConverterType, value::Matrix > | [inline]
checkOutput(const OutputType_ &output) const | Checker< ConverterType, value::Matrix > | [inline]
checkSize(size_t nRows, size_t nCols) const | Checker< ConverterType, value::Matrix > | [inline, private, virtual]
checkSoFar(const ConverterType &container) const | Checker< ConverterType, value::Matrix > | [inline]
getName() const =0 | Checker< ConverterType, value::Matrix > | [private, pure virtual]
OutputType_ typedef (defined in Checker< ConverterType, value::Matrix >) | Checker< ConverterType, value::Matrix > |
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Checker< ConverterType, value::Single > Member List

This is the complete list of members for Checker< ConverterType, value::Single >, including all inherited members.
checkInput(const value::Single &input) const | Checker< ConverterType, value::Single > | [inline]
checkOutput(const OutputType_ &output) const | Checker< ConverterType, value::Single > | [inline]
checkSoFar(const ConverterType &container) const | Checker< ConverterType, value::Single > | [inline]
getName() const =0 | Checker< ConverterType, value::Single > | [private, pure virtual]
OutputType_ typedef (defined in Checker< ConverterType, value::Single >) | Checker< ConverterType, value::Single > |
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Checker< ConverterType, value::Vector > Member List

This is the complete list of members for Checker< ConverterType, value::Vector >, including all inherited members.
checkInput(const value::Vector &input) const | Checker< ConverterType, value::Vector > | [inline]
checkOutput(const OutputType_ &output) const | Checker< ConverterType, value::Vector > | [inline]
checkSize(size_t size) const | Checker< ConverterType, value::Vector > | [inline, private, virtual]
checkSoFar(const ConverterType &container) const | Checker< ConverterType, value::Vector > | [inline]
getName() const =0 | Checker< ConverterType, value::Vector > | [private, pure virtual]
OutputType_ typedef (defined in Checker< ConverterType, value::Vector >) | Checker< ConverterType, value::Vector > |
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Decreasing Member List

This is the complete list of members for Decreasing, including all inherited members.
check(const ElementType &x, const ElementType &y) | Decreasing | [inline, static]
getName() | Decreasing | [static]
Generated on Sat Mar 20 14:15:00 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Device Member List

This is the complete list of members for Device, including all inherited members.
ConverterType_ typedef (defined in Traits< logger::Logger::Device, StdSingle, FlagMap >) | Traits< logger::Logger::Device, StdSingle, FlagMap > |
Device() (defined in Device) | Device |
FlagMap() (defined in FlagMap< logger::Logger::Device >) | FlagMap< logger::Logger::Device > |
get(const string &name) const | Device | [virtual]
getName() const | Traits< logger::Logger::Device, StdSingle, FlagMap > |
InputType_ typedef (defined in Traits< logger::Logger::Device, StdSingle, FlagMap >) | Traits< logger::Logger::Device, StdSingle, FlagMap > |
isBasicOrEnum_ enum value (defined in Traits< logger::Logger::Device, StdSingle, FlagMap >) | Traits< logger::Logger::Device, StdSingle, FlagMap > |
Key(const string &name) | Key | [protected]
map(const value::Variant &variant) const | FlagMap< logger::Logger::Device > |
OutputType_ typedef (defined in Traits< logger::Logger::Device, StdSingle, FlagMap >) | Traits< logger::Logger::Device, StdSingle, FlagMap > |
setName(const string &name) | Key |
Traits(const string &name) | Traits< logger::Logger::Device, StdSingle, FlagMap > |
Traits_ typedef (defined in Traits< logger::Logger::Device, StdSingle, FlagMap >) | Traits< logger::Logger::Device, StdSingle, FlagMap > |
~Key() (defined in Key) | Key | [inline, protected]
Generated on Sat Mar 20 14:14:57 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Export Member List

This is the complete list of members for Export, including all inherited members.
ConverterType_ typedef (defined in Traits< bool >) | Traits< bool > |
Export() | Export |
getName() const | Traits< bool > |
InputType_ typedef (defined in Traits< bool >) | Traits< bool > |
isBasicOrEnum_ enum value (defined in Traits< bool >) | Traits< bool > |
Key(const string &name) | Key | [protected]
OutputType_ typedef (defined in Traits< bool >) | Traits< bool > |
setName(const string &name) | Key |
Traits(const string &name) | Traits< bool > |
Traits_ typedef (defined in Traits< bool >) | Traits< bool > |
~Key() (defined in Key) | Key | [inline, protected]
Generated on Sat Mar 20 14:15:05 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

FlagMap< OutputType > Member List

This is the complete list of members for FlagMap< OutputType >, including all inherited members.
FlagMap() (defined in FlagMap< OutputType >) | FlagMap< OutputType > | [inline]
get(const string &name) const =0 | FlagMap< OutputType > | [pure virtual]
getName() const =0 | FlagMap< OutputType > | [private, pure virtual]
map(const value::Variant &variant) const | FlagMap< OutputType > | [inline]
OutputType_ typedef (defined in FlagMap< OutputType >) | FlagMap< OutputType > |
Generated on Sat Mar 20 14:15:05 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Geq< ElementType > Member List

This is the complete list of members for Geq< ElementType >, including all inherited members.
bound_ (defined in Geq< ElementType >) | Geq< ElementType > | [private]
check(const ElementType &x) const | Geq< ElementType > |
Geq(const ElementType &bound) | Geq< ElementType > | [explicit]
getBound() const | Geq< ElementType > |
getName() const | Geq< ElementType > |
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Global Member List

This is the complete list of members for Global, including all inherited members.
ConverterType_ typedef (defined in Traits< bool >) | Traits< bool > |
getName() const | Traits< bool > |
Global() | Global |
InputType_ typedef (defined in Traits< bool >) | Traits< bool > |
isBasicOrEnum_ enum value (defined in Traits< bool >) | Traits< bool > |
Key(const string &name) | Key | [protected]
OutputType_ typedef (defined in Traits< bool >) | Traits< bool > |
setName(const string &name) | Key |
Traits(const string &name) | Traits< bool > |
Traits_ typedef (defined in Traits< bool >) | Traits< bool > |
~Key() (defined in Key) | Key | [inline, protected]
Generated on Sat Mar 20 14:14:58 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Greater< ElementType > Member List

This is the complete list of members for Greater< ElementType >, including all inherited members.
bound_ (defined in Greater< ElementType >) | Greater< ElementType > | [private]
check(const ElementType &x) const | Greater< ElementType > |
getBound() const | Greater< ElementType > |
getName() const | Greater< ElementType > |
Greater(const ElementType &bound) | Greater< ElementType > | [explicit]
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Imports Member List

This is the complete list of members for Imports, including all inherited members.
ConverterType_ typedef (defined in Traits< string, StdVector >) | Traits< string, StdVector > |
getName() const | Traits< string, StdVector > |
Imports() | Imports |
InputType_ typedef (defined in Traits< string, StdVector >) | Traits< string, StdVector > |
isBasicOrEnum_ enum value (defined in Traits< string, StdVector >) | Traits< string, StdVector > |
Key(const string &name) | Key | [protected]
OutputType_ typedef (defined in Traits< string, StdVector >) | Traits< string, StdVector > |
setName(const string &name) | Key |
Traits(const string &name) | Traits< string, StdVector > |
Traits_ typedef (defined in Traits< string, StdVector >) | Traits< string, StdVector > |
~Key() (defined in Key) | Key | [inline, protected]
Generated on Sat Mar 20 14:15:06 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Increasing Member List

This is the complete list of members for Increasing, including all inherited members.
check(const ElementType &x, const ElementType &y) | Increasing | [inline, static]
getName() | Increasing | [static]
Generated on Sat Mar 20 14:15:00 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Key Member List

This is the complete list of members for Key, including all inherited members.
getName() const | Key |
Key(const string &name) | Key | [protected]
name_ (defined in Key) | Key | [private]
setName(const string &name) | Key |
~Key() (defined in Key) | Key | [inline, protected]
Generated on Sat Mar 20 14:15:05 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Leq< ElementType > Member List

This is the complete list of members for Leq< ElementType >, including all inherited members.
bound_ (defined in Leq< ElementType >) | Leq< ElementType > | [private]
check(const ElementType &x) const | Leq< ElementType > |
getBound() const | Leq< ElementType > |
getName() const | Leq< ElementType > |
Leq(const ElementType &bound) | Leq< ElementType > | [explicit]
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Less< ElementType > Member List

This is the complete list of members for Less< ElementType >, including all inherited members.
bound_ (defined in Less< ElementType >) | Less< ElementType > | [private]
check(const ElementType &x) const | Less< ElementType > |
getBound() const | Less< ElementType > |
getName() const | Less< ElementType > |
Less(const ElementType &bound) | Less< ElementType > | [explicit]
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Level Member List

This is the complete list of members for Level, including all inherited members.
ConverterType_ typedef (defined in Traits< unsigned int >) | Traits< unsigned int > |
getName() const | Traits< unsigned int > |
InputType_ typedef (defined in Traits< unsigned int >) | Traits< unsigned int > |
isBasicOrEnum_ enum value (defined in Traits< unsigned int >) | Traits< unsigned int > |
Key(const string &name) | Key | [protected]
Level() | Level |
OutputType_ typedef (defined in Traits< unsigned int >) | Traits< unsigned int > |
setName(const string &name) | Key |
Traits(const string &name) | Traits< unsigned int > |
Traits_ typedef (defined in Traits< unsigned int >) | Traits< unsigned int > |
~Key() (defined in Key) | Key | [inline, protected]
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Matrix< ElementType > Member List

This is the complete list of members for Matrix< ElementType >, including all inherited members.
checkSize(size_t nRows, size_t nCols) const | Matrix< ElementType > | [inline, private]
ConverterType_ typedef (defined in Traits< ElementType, StdMatrix >) | Traits< ElementType, StdMatrix > |
getName() const | Traits< ElementType, StdMatrix > |
InputType_ typedef (defined in Traits< ElementType, StdMatrix >) | Traits< ElementType, StdMatrix > |
isBasicOrEnum_ enum value (defined in Traits< ElementType, StdMatrix >) | Traits< ElementType, StdMatrix > |
Key(const string &name) | Key | [protected]
Matrix(const string &name) | Matrix< ElementType > | [inline, explicit]
Matrix(const string &name, size_t nRows, size_t nCols_) | Matrix< ElementType > | [inline]
nCols_ (defined in Matrix< ElementType >) | Matrix< ElementType > | [private]
nRows_ (defined in Matrix< ElementType >) | Matrix< ElementType > | [private]
OutputType_ typedef (defined in Traits< ElementType, StdMatrix >) | Traits< ElementType, StdMatrix > |
setName(const string &name) | Key |
Traits(const string &name) | Traits< ElementType, StdMatrix > |
Traits_ typedef (defined in Traits< ElementType, StdMatrix >) | Traits< ElementType, StdMatrix > |
~Key() (defined in Key) | Key | [inline, protected]
Generated on Sat Mar 20 14:15:00 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 > Member List

This is the complete list of members for MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 >, including all inherited members.
bound1_ (defined in MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 >) | MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 > | [private]
bound2_ (defined in MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 >) | MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 > | [private]
checkSize(size_t size) const | MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 > | [inline]
checkSoFar(const StdVector< ElementType > &container) const | MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 > | [inline]
ConverterType_ typedef (defined in Traits< ElementType, StdVector, NoMap >) | Traits< ElementType, StdVector, NoMap > |
getName() const | Traits< ElementType, StdVector, NoMap > |
InputType_ typedef (defined in Traits< ElementType, StdVector, NoMap >) | Traits< ElementType, StdVector, NoMap > |
isBasicOrEnum_ enum value (defined in Traits< ElementType, StdVector, NoMap >) | Traits< ElementType, StdVector, NoMap > |
Key(const string &name) | Key | [protected]
map(const value::Variant &variant) const | NoMap< ElementType > |
MonotoneBoundedVector(const string &name, size_t size=0) | MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 > | [inline, explicit]
MonotoneBoundedVector(const string &name, const ElementType &bound1, size_t size=0) | MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 > | [inline]
MonotoneBoundedVector(const string &name, const ElementType &bound1, const ElementType &bound2, size_t size=0) | MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 > | [inline]
NoMap() (defined in NoMap< ElementType >) | NoMap< ElementType > |
OutputType_ typedef (defined in Traits< ElementType, StdVector, NoMap >) | Traits< ElementType, StdVector, NoMap > |
setName(const string &name) | Key |
size_ (defined in MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 >) | MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 > | [private]
Traits(const string &name) | Traits< ElementType, StdVector, NoMap > |
Traits_ typedef (defined in Traits< ElementType, StdVector, NoMap >) | Traits< ElementType, StdVector, NoMap > |
~Key() (defined in Key) | Key | [inline, protected]
Generated on Sat Mar 20 14:15:01 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

NoBound< ElementType > Member List

This is the complete list of members for NoBound< ElementType >, including all inherited members.
check(const ElementType &x) const | NoBound< ElementType >
getBound() const | NoBound< ElementType >
getName() const | NoBound< ElementType >
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

NoMap< OutputType > Member List

This is the complete list of members for NoMap< OutputType >, including all inherited members.
BOOST_STATIC_ASSERT(IsBool_::value||IsDouble_::value||IsString_::value||IsPtime_::value||IsUInt_::value) (defined in NoMap< OutputType >) | NoMap< OutputType > | [private]
getName() const =0 | NoMap< OutputType > | [private, pure virtual]
IsBool_ typedef (defined in NoMap< OutputType >) | NoMap< OutputType > | [private]
IsDouble_ typedef (defined in NoMap< OutputType >) | NoMap< OutputType > | [private]
IsPtime_ typedef (defined in NoMap< OutputType >) | NoMap< OutputType > | [private]
IsString_ typedef (defined in NoMap< OutputType >) | NoMap< OutputType > | [private]
IsUInt_ typedef (defined in NoMap< OutputType >) | NoMap< OutputType > | [private]
map(const value::Variant &variant) const | NoMap< OutputType > |
NoMap() (defined in NoMap< OutputType >) | NoMap< OutputType > |
OutputType_ typedef (defined in NoMap< OutputType >) | NoMap< OutputType > |
Generated on Sat Mar 20 14:15:05 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

NonMonotone Member List

This is the complete list of members for NonMonotone, including all inherited members.
check(const ElementType &x, const ElementType &y) | NonMonotone | [inline, static]
getName() | NonMonotone | [static]
Generated on Sat Mar 20 14:15:00 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

ObjectMap< OutputType > Member List

This is the complete list of members for ObjectMap< OutputType >, including all inherited members.
getName() const =0 | ObjectMap< OutputType > | [private, pure virtual]
map(const value::Variant &variant) const | ObjectMap< OutputType > | [inline]
ObjectMap() (defined in ObjectMap< OutputType >) | ObjectMap< OutputType > | [inline]
OutputType_ typedef (defined in ObjectMap< OutputType >) | ObjectMap< OutputType > |
Generated on Sat Mar 20 14:15:05 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

PartialMap< OutputType > Member List

This is the complete list of members for PartialMap< OutputType >, including all inherited members.
BOOST_STATIC_ASSERT(IsDouble_::value||IsPtime_::value||IsUInt_::value) (defined in PartialMap< OutputType >) | PartialMap< OutputType > | [private]
get(const string &name) const =0 | PartialMap< OutputType > | [pure virtual]
getName() const =0 | PartialMap< OutputType > | [private, pure virtual]
IsDouble_ typedef (defined in PartialMap< OutputType >) | PartialMap< OutputType > | [private]
IsPtime_ typedef (defined in PartialMap< OutputType >) | PartialMap< OutputType > | [private]
IsUInt_ typedef (defined in PartialMap< OutputType >) | PartialMap< OutputType > | [private]
map(const value::Variant &variant) const | PartialMap< OutputType > |
OutputType_ typedef (defined in PartialMap< OutputType >) | PartialMap< OutputType > |
PartialMap() (defined in PartialMap< OutputType >) | PartialMap< OutputType > |
Generated on Sat Mar 20 14:15:05 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Positive Member List

This is the complete list of members for Positive, including all inherited members.
Bounded(const string &name, const double &bound1) | Bounded< double, Geq > |
Bounded(const string &name, const double &bound1, const double &bound2) | Bounded< double, Geq > |
checkOutput(doubleelement) const | Bounded< double, Geq > |
ConverterType_ typedef (defined in Traits< double, StdSingle, NoMap >) | Traits< double, StdSingle, NoMap > |
getName() const | Traits< double, StdSingle, NoMap > |
InputType_ typedef (defined in Traits< double, StdSingle, NoMap >) | Traits< double, StdSingle, NoMap > |
isBasicOrEnum_ enum value (defined in Traits< double, StdSingle, NoMap >) | Traits< double, StdSingle, NoMap > |
Key(const string &name) | Key | [protected]
map(const value::Variant &variant) const | NoMap< double > |
NoMap() (defined in NoMap< double >) | NoMap< double > |
OutputType_ typedef (defined in Traits< double, StdSingle, NoMap >) | Traits< double, StdSingle, NoMap > |
Positive(const string &name) | Positive | [explicit]
setName(const string &name) | Key |
Traits(const string &name) | Traits< double, StdSingle, NoMap > |
Traits_ typedef (defined in Traits< double, StdSingle, NoMap >) | Traits< double, StdSingle, NoMap > |
~Key() (defined in Key) | Key | [inline, protected]
Generated on Sat Mar 20 14:15:02 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

ProcessNow Member List

This is the complete list of members for ProcessNow, including all inherited members.
ConverterType_ typedef (defined in Traits< bool >) | Traits< bool > |
getName() const | Traits< bool > |
InputType_ typedef (defined in Traits< bool >) | Traits< bool > |
isBasicOrEnum_ enum value (defined in Traits< bool >) | Traits< bool > |
Key(const string &name) | Key | [protected]
OutputType_ typedef (defined in Traits< bool >) | Traits< bool > |
ProcessNow() | ProcessNow |
setName(const string &name) | Key |
Traits(const string &name) | Traits< bool > |
Traits_ typedef (defined in Traits< bool >) | Traits< bool > |
~Key() (defined in Key) | Key | [inline, protected]
Generated on Sat Mar 20 14:15:07 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Processor Member List

This is the complete list of members for Processor, including all inherited members.
ConverterType_ typedef (defined in Traits< string >) | Traits< string > |
getName() const | Traits< string > |
InputType_ typedef (defined in Traits< string >) | Traits< string > |
isBasicOrEnum_ enum value (defined in Traits< string >) | Traits< string > |
Key(const string &name) | Key | [protected]
OutputType_ typedef (defined in Traits< string >) | Traits< string > |
Processor() | Processor |
setName(const string &name) | Key |
Traits(const string &name) | Traits< string > |
Traits_ typedef (defined in Traits< string >) | Traits< string > |
~Key() (defined in Key) | Key | [inline, protected]
Generated on Sat Mar 20 14:15:07 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Single< ElementType > Member List

This is the complete list of members for Single< ElementType >, including all inherited members.
ConverterType_ typedef (defined in Traits< ElementType >) | Traits< ElementType > |
getName() const | Traits< ElementType > |
InputType_ typedef (defined in Traits< ElementType >) | Traits< ElementType > |
isBasicOrEnum_ enum value (defined in Traits< ElementType >) | Traits< ElementType > |
Key(const string &name) | Key | [protected]
OutputType_ typedef (defined in Traits< ElementType >) | Traits< ElementType > |
setName(const string &name) | Key |
Single(const string &name) | Single< ElementType > | [inline, explicit]
Traits(const string &name) | Traits< ElementType > |
Traits_ typedef (defined in Traits< ElementType >) | Traits< ElementType > |
~Key() (defined in Key) | Key | [inline, protected]
Generated on Sat Mar 20 14:15:02 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

StdMatrix< ElementType > Member List

This is the complete list of members for StdMatrix< ElementType >, including all inherited members.
cache_ (defined in StdMatrix< ElementType >) | StdMatrix< ElementType > | [private]
getOutput() const | StdMatrix< ElementType > | [inline]
i_ (defined in StdMatrix< ElementType >) | StdMatrix< ElementType > | [private]
input_ (defined in StdMatrix< ElementType >) | StdMatrix< ElementType > | [private]
InputType_ typedef | StdMatrix< ElementType > |
insert(const ElementType &element) | StdMatrix< ElementType > | [inline]
isEmpty() const | StdMatrix< ElementType > | [inline]
j_ (defined in StdMatrix< ElementType >) | StdMatrix< ElementType > | [private]
mustUpdate() const | StdMatrix< ElementType > | [inline]
mustUpdate_ (defined in StdMatrix< ElementType >) | StdMatrix< ElementType > | [private]
nCols_ (defined in StdMatrix< ElementType >) | StdMatrix< ElementType > | [private]
nRows_ (defined in StdMatrix< ElementType >) | StdMatrix< ElementType > | [private]
output_ (defined in StdMatrix< ElementType >) | StdMatrix< ElementType > | [private]
OutputType_ typedef | StdMatrix< ElementType > |
pop() | StdMatrix< ElementType > | [inline]
StdMatrix(const InputType_ &input, OutputType_ *cache) | StdMatrix< ElementType > | [inline]
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

StdSingle< ElementType > Member List

This is the complete list of members for StdSingle< ElementType >, including all inherited members.
cache_ (defined in StdSingle< ElementType >) | StdSingle< ElementType > | [private]
empty_ (defined in StdSingle< ElementType >) | StdSingle< ElementType > | [private]
getOutput() const | StdSingle< ElementType > | [inline]
input_ (defined in StdSingle< ElementType >) | StdSingle< ElementType > | [private]
InputType_ typedef | StdSingle< ElementType > |
insert(const ElementType &element) | StdSingle< ElementType > | [inline]
isEmpty() const | StdSingle< ElementType > | [inline]
mustUpdate() const | StdSingle< ElementType > | [inline]
mustUpdate_ (defined in StdSingle< ElementType >) | StdSingle< ElementType > | [private]
output_ (defined in StdSingle< ElementType >) | StdSingle< ElementType > | [private]
OutputType_ typedef | StdSingle< ElementType > |
pop() | StdSingle< ElementType > | [inline]
StdSingle(const InputType_ &input, OutputType_ *cache) | StdSingle< ElementType > | [inline]
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

StdVector< ElementType > Member List

This is the complete list of members for StdVector< ElementType >, including all inherited members.
cache_ (defined in StdVector< ElementType >) | StdVector< ElementType > | [private]
getOutput() const | StdVector< ElementType > | [inline]
i_ (defined in StdVector< ElementType >) | StdVector< ElementType > | [private]
input_ (defined in StdVector< ElementType >) | StdVector< ElementType > | [private]
InputType_ typedef | StdVector< ElementType > |
insert(const ElementType &element) | StdVector< ElementType > | [inline]
isEmpty() const | StdVector< ElementType > | [inline]
mustUpdate() const | StdVector< ElementType > | [inline]
mustUpdate_ (defined in StdVector< ElementType >) | StdVector< ElementType > | [private]
output_ (defined in StdVector< ElementType >) | StdVector< ElementType > | [private]
OutputType_ typedef | StdVector< ElementType > |
pop() | StdVector< ElementType > | [inline]
size_ (defined in StdVector< ElementType >) | StdVector< ElementType > | [private]
StdVector(const InputType_ &input, OutputType_ *cache) | StdVector< ElementType > | [inline]
Generated on Sat Mar 20 14:14:59 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

StrictlyDecreasing Member List

This is the complete list of members for StrictlyDecreasing, including all inherited members.
check(const ElementType &x, const ElementType &y) | StrictlyDecreasing | [inline, static]
getName() | StrictlyDecreasing | [static]
Generated on Sat Mar 20 14:15:00 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

StrictlyIncreasing Member List

This is the complete list of members for StrictlyIncreasing, including all inherited members.
check(const ElementType &x, const ElementType &y) | StrictlyIncreasing | [inline, static]
getName() | StrictlyIncreasing | [static]
Generated on Sat Mar 20 14:15:00 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

StrictlyPositive Member List

This is the complete list of members for StrictlyPositive, including all inherited members.
Bounded(const string &name, const double &bound1) | Bounded< double, Greater > |
Bounded(const string &name, const double &bound1, const double &bound2) | Bounded< double, Greater > |
checkOutput(doubleelement) const | Bounded< double, Greater > |
ConverterType_ typedef (defined in Traits< double, StdSingle, NoMap >) | Traits< double, StdSingle, NoMap > |
getName() const | Traits< double, StdSingle, NoMap > |
InputType_ typedef (defined in Traits< double, StdSingle, NoMap >) | Traits< double, StdSingle, NoMap > |
isBasicOrEnum_ enum value (defined in Traits< double, StdSingle, NoMap >) | Traits< double, StdSingle, NoMap > |
Key(const string &name) | Key | [protected]
map(const value::Variant &variant) const | NoMap< double > |
NoMap() (defined in NoMap< double >) | NoMap< double > |
OutputType_ typedef (defined in Traits< double, StdSingle, NoMap >) | Traits< double, StdSingle, NoMap > |
setName(const string &name) | Key |
StrictlyPositive(const string &name) | StrictlyPositive | [explicit]
Traits(const string &name) | Traits< double, StdSingle, NoMap > |
Traits_ typedef (defined in Traits< double, StdSingle, NoMap >) | Traits< double, StdSingle, NoMap > |
~Key() (defined in Key) | Key | [inline, protected]
Generated on Sat Mar 20 14:15:03 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Traits< ElementType, ConverterType, MapType > Member List

This is the complete list of members for Traits< ElementType, ConverterType, MapType >, including all inherited members.
ConverterType_ typedef (defined in Traits< ElementType, ConverterType, MapType >) | Traits< ElementType, ConverterType, MapType > |
getName() const | Traits< ElementType, ConverterType, MapType > | [inline]
InputType_ typedef (defined in Traits< ElementType, ConverterType, MapType >) | Traits< ElementType, ConverterType, MapType > |
isBasicOrEnum_ enum value (defined in Traits< ElementType, ConverterType, MapType >) | Traits< ElementType, ConverterType, MapType > |
Key(const string &name) | Key | [protected]
OutputType_ typedef (defined in Traits< ElementType, ConverterType, MapType >) | Traits< ElementType, ConverterType, MapType > |
setName(const string &name) | Key |
Traits(const string &name) | Traits< ElementType, ConverterType, MapType > | [inline]
Traits_ typedef (defined in Traits< ElementType, ConverterType, MapType >) | Traits< ElementType, ConverterType, MapType > |
~Key() (defined in Key) | Key | [inline, protected]
Generated on Sat Mar 20 14:15:09 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Vector< ElementType > Member List

This is the complete list of members for Vector< ElementType >, including all inherited members.
checkSize(size_t size) const | Vector< ElementType > | [inline, private]
ConverterType_ typedef (defined in Traits< ElementType, StdVector >) | Traits< ElementType, StdVector > |
getName() const | Traits< ElementType, StdVector > |
InputType_ typedef (defined in Traits< ElementType, StdVector >) | Traits< ElementType, StdVector > |
isBasicOrEnum_ enum value (defined in Traits< ElementType, StdVector >) | Traits< ElementType, StdVector > |
Key(const string &name) | Key | [protected]
OutputType_ typedef (defined in Traits< ElementType, StdVector >) | Traits< ElementType, StdVector > |
setName(const string &name) | Key |
size_ (defined in Vector< ElementType >) | Vector< ElementType > | [private]
Traits(const string &name) | Traits< ElementType, StdVector > |
Traits_ typedef (defined in Traits< ElementType, StdVector >) | Traits< ElementType, StdVector > |
Vector(const string &name, size_t size=0) | Vector< ElementType > | [inline, explicit]
~Key() (defined in Key) | Key | [inline, protected]
Generated on Sat Mar 20 14:15:04 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

VectorOutput Member List

This is the complete list of members for VectorOutput, including all inherited members.
AsIs enum value (defined in VectorOutputBase) | VectorOutputBase |
Column enum value (defined in VectorOutputBase) | VectorOutputBase |
ConverterType_ typedef (defined in Traits< VectorOutputBase::Flag, StdSingle, FlagMap >) | Traits< VectorOutputBase::Flag, StdSingle, FlagMap > |
Flag enum name | VectorOutputBase |
FlagMap() (defined in FlagMap< VectorOutputBase::Flag >) | FlagMap< VectorOutputBase::Flag > |
get(const string &name) const | VectorOutput | [virtual]
getName() const | Traits< VectorOutputBase::Flag, StdSingle, FlagMap > |
InputType_ typedef (defined in Traits< VectorOutputBase::Flag, StdSingle, FlagMap >) | Traits< VectorOutputBase::Flag, StdSingle, FlagMap > |
isBasicOrEnum_ enum value (defined in Traits< VectorOutputBase::Flag, StdSingle, FlagMap >) | Traits< VectorOutputBase::Flag, StdSingle, FlagMap > |
Key(const string &name) | Key | [protected]
map(const value::Variant &variant) const | FlagMap< VectorOutputBase::Flag > |
OutputType_ typedef (defined in Traits< VectorOutputBase::Flag, StdSingle, FlagMap >) | Traits< VectorOutputBase::Flag, StdSingle, FlagMap > |
Row enum value (defined in VectorOutputBase) | VectorOutputBase |
setName(const string &name) | Key |
Traits(const string &name) | Traits< VectorOutputBase::Flag, StdSingle, FlagMap > |
Traits_ typedef (defined in Traits< VectorOutputBase::Flag, StdSingle, FlagMap >) | Traits< VectorOutputBase::Flag, StdSingle, FlagMap > |
VectorOutput() (defined in VectorOutput) | VectorOutput |
~Key() (defined in Key) | Key | [inline, protected]
Generated on Sat Mar 20 14:15:09 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

AddPrefix Member List

This is the complete list of members for AddPrefix, including all inherited members.
apply(const Message &message) (defined in AddPrefix) | AddPrefix | [protected]
send(const string &message)=0 (defined in AddPrefix) | AddPrefix | [protected, pure virtual]
Generated on Sat Mar 20 14:15:13 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

ConsoleLogger Member List

This is the complete list of members for ConsoleLogger, including all inherited members.
ConsoleLogger(unsigned int level, string title) (defined in ConsoleLogger) ConsoleLogger
Generated on Sat Mar 20 14:15:09 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

FileLogger Member List

This is the complete list of members for FileLogger, including all inherited members.
Console enum value (defined in Logger) | Logger |
Device enum name (defined in Logger) | Logger |
File enum value (defined in Logger) | Logger |
FileLogger(unsigned int level, const string &fileName) (defined in FileLogger) | FileLogger |
getLevel() const | LoggerImpl<> | [virtual]
log(const Message &message) | LoggerImpl<> | [virtual]
LoggerImpl(unsigned int level) (defined in LoggerImpl<>) | LoggerImpl<> | [protected]
LoggerImpl_ typedef (defined in LoggerImpl<>) | LoggerImpl<> |
output_ (defined in FileLogger) | FileLogger | [private]
send(const string &message) | FileLogger | [private, virtual]
sendHeader() | LoggerImpl<> | [protected]
setLevel(unsigned int level) | LoggerImpl<> | [virtual]
Standard enum value (defined in Logger) | Logger |
~FileLogger() (defined in FileLogger) | FileLogger |
~Logger() (defined in Logger) | Logger | [virtual]
Generated on Sat Mar 20 14:15:10 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

ForwardToGlobalLogger Member List

This is the complete list of members for ForwardToGlobalLogger, including all inherited members.
apply(const Logger *logger, const Message &message) const | ForwardToGlobalLogger | [protected]
forward(const Logger *logger, const Message &message) const | ForwardToGlobalLogger | [private]
Generated on Sat Mar 20 14:15:13 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

GlobalLogger Member List

This is the complete list of members for GlobalLogger, including all inherited members.
Console enum value (defined in Logger) | Logger |
defaultLogger_ (defined in GlobalLogger) | GlobalLogger | [private]
Device enum name (defined in Logger) | Logger |
File enum value (defined in Logger) | Logger |
get() | GlobalLogger | [static]
getInstance() | GlobalLogger | [static]
getLevel() const | GlobalLogger | [virtual]
GlobalLogger() (defined in GlobalLogger) | GlobalLogger | [private]
log(const Message &message) | GlobalLogger | [virtual]
reset() | GlobalLogger | [static]
set(shared_ptr< Logger > logger) | GlobalLogger | [static]
setLevel(unsigned int level) | GlobalLogger | [virtual]
Standard enum value (defined in Logger) | Logger |
theLogger_ (defined in GlobalLogger) | GlobalLogger | [private]
~Logger() (defined in Logger) | Logger | [virtual]
Generated on Sat Mar 20 14:15:11 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

IgnoreColor Member List

This is the complete list of members for IgnoreColor, including all inherited members.
apply(const Message &) const (defined in IgnoreColor) IgnoreColor [protected]
Generated on Sat Mar 20 14:15:14 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

IgnoreFailure Member List

This is the complete list of members for IgnoreFailure, including all inherited members.
apply(const Message &message) const IgnoreFailure [protected]
Generated on Sat Mar 20 14:15:14 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

IgnorePrefix Member List

This is the complete list of members for IgnorePrefix, including all inherited members.
apply(const Message &) const (defined in IgnorePrefix) | IgnorePrefix | [protected]
IgnorePrefix() (defined in IgnorePrefix) | IgnorePrefix | [protected]
Generated on Sat Mar 20 14:15:14 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Logger Member List

This is the complete list of members for Logger, including all inherited members.
Console enum value (defined in Logger) | Logger |
Device enum name (defined in Logger) | Logger |
File enum value (defined in Logger) | Logger |
getLevel() const =0 | Logger | [pure virtual]
log(const Message &message)=0 | Logger | [pure virtual]
setLevel(unsigned int level)=0 | Logger | [pure virtual]
Standard enum value (defined in Logger) | Logger |
~Logger() (defined in Logger) | Logger | [virtual]
Generated on Sat Mar 20 14:15:11 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > Member List

This is the complete list of members for LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy >, including all inherited members.
Console enum value (defined in Logger) | Logger |
Device enum name (defined in Logger) | Logger |
File enum value (defined in Logger) | Logger |
getLevel() const | LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > | [inline, virtual]
level_ (defined in LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy >) | LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > | [private]
log(const Message &message) | LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > | [inline, virtual]
LoggerImpl(unsigned int level) (defined in LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy >) | LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > | [inline, protected]
LoggerImpl_ typedef (defined in LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy >) | LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > |
process(const Message &message) | LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > | [inline, private]
send(const string &message)=0 | LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > | [private, pure virtual]
sendHeader() | LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > | [inline, protected]
setLevel(unsigned int level) | LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > | [inline, virtual]
Standard enum value (defined in Logger) | Logger |
~Logger() (defined in Logger) | Logger | [virtual]
Generated on Sat Mar 20 14:15:12 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

WindowsConsole Member List

This is the complete list of members for WindowsConsole, including all inherited members.
childProcess_ (defined in WindowsConsole) | WindowsConsole | [private]
childStdInWrite_ (defined in WindowsConsole) | WindowsConsole | [private]
Console enum value (defined in Logger) | Logger |
Device enum name (defined in Logger) | Logger |
File enum value (defined in Logger) | Logger |
getLevel() const | LoggerImpl< AddPrefix, XtermColor, ForwardToGlobalLogger > | [virtual]
log(const Message &message) | LoggerImpl< AddPrefix, XtermColor, ForwardToGlobalLogger > | [virtual]
LoggerImpl(unsigned int level) (defined in LoggerImpl< AddPrefix, XtermColor, ForwardToGlobalLogger >) | LoggerImpl< AddPrefix, XtermColor, ForwardToGlobalLogger > | [protected]
LoggerImpl_ typedef (defined in LoggerImpl< AddPrefix, XtermColor, ForwardToGlobalLogger >) | LoggerImpl< AddPrefix, XtermColor, ForwardToGlobalLogger > |
MyBase_ typedef (defined in WindowsConsole) | WindowsConsole |
send(const string &message) | WindowsConsole | [private, virtual]
sendHeader() | LoggerImpl< AddPrefix, XtermColor, ForwardToGlobalLogger > | [protected]
setLevel(unsigned int level) | LoggerImpl< AddPrefix, XtermColor, ForwardToGlobalLogger > | [virtual]
Standard enum value (defined in Logger) | Logger |
WindowsConsole(unsigned int level, const string &title, const string &path) (defined in WindowsConsole) | WindowsConsole |
~Logger() (defined in Logger) | Logger | [virtual]
~WindowsConsole() (defined in WindowsConsole) | WindowsConsole |
Generated on Sat Mar 20 14:15:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

XtermColor Member List

This is the complete list of members for XtermColor, including all inherited members.
apply(const Message &message) (defined in XtermColor) | XtermColor | [protected]
send(const string &message)=0 (defined in XtermColor) | XtermColor | [protected, pure virtual]
Generated on Sat Mar 20 14:15:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

XtermConsole Member List

This is the complete list of members for XtermConsole, including all inherited members.
childPid_ (defined in XtermConsole) | XtermConsole | [private]
Console enum value (defined in Logger) | Logger |
Device enum name (defined in Logger) | Logger |
File enum value (defined in Logger) | Logger |
getLevel() const | LoggerImpl< AddPrefix, XtermColor > | [virtual]
level_ (defined in XtermConsole) | XtermConsole | [private]
log(const Message &message) | LoggerImpl< AddPrefix, XtermColor > | [virtual]
LoggerImpl(unsigned int level) (defined in LoggerImpl< AddPrefix, XtermColor >) | LoggerImpl< AddPrefix, XtermColor > | [protected]
LoggerImpl_ typedef (defined in LoggerImpl< AddPrefix, XtermColor >) | LoggerImpl< AddPrefix, XtermColor > |
send(const string &message) | XtermConsole | [private, virtual]
sendHeader() | LoggerImpl< AddPrefix, XtermColor > | [protected]
setLevel(unsigned int level) | LoggerImpl< AddPrefix, XtermColor > | [virtual]
Standard enum value (defined in Logger) | Logger |
writeSlave_ (defined in XtermConsole) | XtermConsole | [private]
XtermConsole(unsigned int level, const string &title) (defined in XtermConsole) | XtermConsole |
~Logger() (defined in Logger) | Logger | [virtual]
~XtermConsole() (defined in XtermConsole) | XtermConsole |
Generated on Sat Mar 20 14:15:16 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

FileRaii Member List

This is the complete list of members for FileRaii, including all inherited members.
close() (defined in FileRaii) | FileRaii |
fd_ (defined in FileRaii) | FileRaii | [private]
FileRaii(const int fd=-1) (defined in FileRaii) | FileRaii | [explicit]
getFd() const (defined in FileRaii) | FileRaii |
operator=(const int fd) (defined in FileRaii) | FileRaii |
~FileRaii() (defined in FileRaii) | FileRaii |
Generated on Sat Mar 20 14:15:16 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Message Member List

This is the complete list of members for Message, including all inherited members.
buf_ (defined in Message) | Message | [mutable, private]
getColor() const =0 | Message | [pure virtual]
getLevel() const | Message |
getPrefix() const =0 | Message | [pure virtual]
getString() const | Message |
level_ (defined in Message) | Message | [private]
Message(unsigned int level) | Message | [explicit, protected]
Message(const Message &orig) (defined in Message) | Message | [protected]
operator&(const DataType &data) | Message | [inline]
operator=(const Message &orig) (defined in Message) | Message | [private]
traits_ (defined in Message) | Message | [protected, static]
~Message() (defined in Message) | Message | [virtual]
Generated on Sat Mar 20 14:14:55 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

MessageImpl< id > Member List

This is the complete list of members for MessageImpl< id >, including all inherited members.
getColor() const | MessageImpl< id > | [virtual]
getLevel() const | Message |
getPrefix() const | MessageImpl< id > | [virtual]
getString() const | Message |
Message(unsigned int level) | Message | [explicit, protected]
Message(const Message &orig) (defined in Message) | Message | [protected]
MessageImpl() | MessageImpl< id > | [inline]
MessageImpl(unsigned int level) (defined in MessageImpl< id >) | MessageImpl< id > | [explicit]
operator&(const DataType &data) | Message | [inline]
operator=(const MessageImpl &orig) (defined in MessageImpl< id >) | MessageImpl< id > | [private]
traits_ (defined in Message) | Message | [protected, static]
~Message() (defined in Message) | Message | [virtual]
Generated on Sat Mar 20 14:14:55 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

KeyInSingle Member List

This is the complete list of members for KeyInSingle, including all inherited members.
isEmpty() const | KeyInSingle | [virtual]
isEmpty_ (defined in KeyInSingle) | KeyInSingle | [private]
key_ (defined in KeyInSingle) | KeyInSingle | [private]
KeyInSingle() (defined in KeyInSingle) | KeyInSingle |
parse(frontend::Queue &queue) | KeyInSingle | [virtual]
pop() | KeyInSingle | [virtual]
value_ (defined in KeyInSingle) | KeyInSingle | [private]
Generated on Sat Mar 20 14:15:17 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

KeysInMatrix Member List

This is the complete list of members for KeysInMatrix, including all inherited members.
check(const value::Matrix &matrix, bool transpose=false) | KeysInMatrix | [private]
data_ (defined in KeysInMatrix) | KeysInMatrix | [private]
isEmpty() const | KeysInMatrix | [virtual]
KeysInMatrix() (defined in KeysInMatrix) | KeysInMatrix |
next_ (defined in KeysInMatrix) | KeysInMatrix | [private]
parse(frontend::Queue &queue) | KeysInMatrix | [virtual]
pop() | KeysInMatrix | [virtual]
Generated on Sat Mar 20 14:15:17 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

KeysInVector Member List

This is the complete list of members for KeysInVector, including all inherited members.
data_ (defined in KeysInVector) | KeysInVector | [private]
isEmpty() const | KeysInVector | [virtual]
KeysInVector() (defined in KeysInVector) | KeysInVector |
next_ (defined in KeysInVector) | KeysInVector | [private]
parse(frontend::Queue &queue) | KeysInVector | [virtual]
pop() | KeysInVector | [virtual]
Generated on Sat Mar 20 14:15:18 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Pattern Member List

This is the complete list of members for Pattern, including all inherited members.
isEmpty() const =0 | Pattern | [pure virtual]
parse(frontend::Queue &queue)=0 | Pattern | [pure virtual]
pop()=0 | Pattern | [pure virtual]
Generated on Sat Mar 20 14:15:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

QueueRaii Member List

This is the complete list of members for QueueRaii, including all inherited members.
queue_ (defined in QueueRaii) | QueueRaii | [private]
QueueRaii(frontend::Queue &queue) | QueueRaii |
~QueueRaii() (defined in QueueRaii) | QueueRaii |
Generated on Sat Mar 20 14:15:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Table Member List

This is the complete list of members for Table, including all inherited members.
isEmpty() const | Table | [virtual]
keys_ (defined in Table) | Table | [private]
next_ (defined in Table) | Table | [private]
parse(frontend::Queue &queue) | Table | [virtual]
pop() | Table | [virtual]
Table() (defined in Table) | Table |
values_ (defined in Table) | Table | [private]
Generated on Sat Mar 20 14:15:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Processor Member List

This is the complete list of members for Processor, including all inherited members.
getName() const =0 | Processor | [pure virtual]
getResult(const DataSet &data) const =0 | Processor | [pure virtual]
getResult(const value::Variant &data) const =0 | Processor | [pure virtual]
~Processor() (defined in Processor) | Processor | [virtual]
Generated on Sat Mar 20 14:14:53 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

ProcessorMngr Member List

This is the complete list of members for ProcessorMngr, including all inherited members.
add(const Processor *processor) | ProcessorMngr |
dummy (defined in ProcessorMngr) | ProcessorMngr | [private]
getInstance() | ProcessorMngr | [static]
getProcessor(const string &name) const | ProcessorMngr |
kvProcessors_ | ProcessorMngr | [private, static]
map_ (defined in ProcessorMngr) | ProcessorMngr | [private]
MapType_ typedef (defined in ProcessorMngr) | ProcessorMngr | [private]
ProcessorMngr() (defined in ProcessorMngr) | ProcessorMngr | [private]
processors_ | ProcessorMngr | [private, static]
Generated on Sat Mar 20 14:14:53 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Repository Member List

This is the complete list of members for Repository, including all inherited members.
add(shared_ptr< DataSet > dataSet) | Repository |
clear() | Repository |
erase(const string &name) | Repository |
find(const string &name) const | Repository |
getDataSet(const string &name) const | Repository |
getInstance() | Repository | [static]
getList() const | Repository |
getSize() const | Repository |
Map_ typedef (defined in Repository) | Repository | [private]
map_ (defined in Repository) | Repository | [private]
Pair_ typedef (defined in Repository) | Repository | [private]
Repository() (defined in Repository) | Repository | [private]
Generated on Sat Mar 20 14:14:53 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

NotFound Member List

This is the complete list of members for NotFound, including all inherited members.
getName() const (defined in NotFound) | NotFound |
name_ (defined in NotFound) | NotFound | [private]
NotFound(string name) (defined in NotFound) | NotFound | [explicit]
~NotFound() (defined in NotFound) | NotFound |
Generated on Sat Mar 20 14:14:53 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

NullDeleter Member List

This is the complete list of members for NullDeleter, including all inherited members.
operator()(void const *) const (defined in NullDeleter) | NullDeleter |
operator=(const NullDeleter &original) (defined in NullDeleter) | NullDeleter | [private]
Generated on Sat Mar 20 14:15:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Saver< SavedType > Member List

This is the complete list of members for Saver< SavedType >, including all inherited members.
data_ (defined in Saver< SavedType >) | Saver< SavedType > | [private]
getSaved() const | Saver< SavedType > | [inline]
onExit_ (defined in Saver< SavedType >) | Saver< SavedType > | [private]
Saver(SavedType &data) | Saver< SavedType > | [inline, explicit]
Saver(SavedType &data, const SavedType &onExit) | Saver< SavedType > | [inline]
~Saver() (defined in Saver< SavedType >) | Saver< SavedType > | [inline]
Generated on Sat Mar 20 14:15:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Matrix Member List

This is the complete list of members for Matrix, including all inherited members.
getNCols() const | Matrix |
getNRows() const | Matrix |
intrusive_ptr_add_ref(Matrix::Impl *pimpl) | Matrix | [friend]
intrusive_ptr_release(Matrix::Impl *pimpl) | Matrix | [friend]
Matrix(size_t nRows=1, size_t nCols=1) | Matrix | [explicit]
operator()(size_t i, size_t j) const | Matrix |
operator()(size_t i, size_t j) | Matrix |
operator==(const Matrix &rhs) const | Matrix |
pimpl_ (defined in Matrix) | Matrix | [private]
resize(size_t nRows, size_t nCols) | Matrix |
transposeVector() | Matrix | [protected]
Generated on Sat Mar 20 14:15:20 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Result Member List

This is the complete list of members for Result, including all inherited members.
data_ (defined in Result) | Result | [private]
DataType_ typedef (defined in Result) | Result |
getObjectPtr() const | Result |
getObjectPtr() | Result |
getValue() const | Result |
getValue() | Result |
operator=(const Rhs &rhs) | Result | [inline]
Result() | Result |
Result(const DataType_ &data) | Result |
Result(const Rhs &rhs) | Result | [inline]
Generated on Sat Mar 20 14:15:20 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Single Member List

This is the complete list of members for Single, including all inherited members.
getNCols() const | Matrix |
getNRows() const | Matrix |
getSize() const | Vector |
Matrix(size_t nRows=1, size_t nCols=1) | Matrix | [explicit]
operator()(size_t i) const | Vector |
operator()(size_t i) | Vector |
keyvalue::value::Matrix::operator()(size_t i, size_t j) const | Matrix |
keyvalue::value::Matrix::operator()(size_t i, size_t j) | Matrix |
operator=(const Rhs &rhs) | Single | [inline]
operator==(const Matrix &rhs) const | Matrix |
resize(size_t size) | Vector |
keyvalue::value::Matrix::resize(size_t nRows, size_t nCols) | Matrix |
Single() | Single |
Single(const Variant &data) | Single |
Single(const Rhs &rhs) | Single | [inline]
transpose() | Vector |
transposeVector() | Matrix | [protected]
Vector(size_t size=1, bool isRow=false) | Vector | [explicit]
Vector(const vector< ElementType > &data, bool isRow=false) | Vector | [inline]
Generated on Sat Mar 20 14:15:21 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Value Member List

This is the complete list of members for Value, including all inherited members.
data_ (defined in Value) | Value | [private]
DataType_ typedef (defined in Value) | Value |
get() const | Value | [inline]
get() | Value | [inline]
operator=(const Rhs &rhs) | Value | [inline]
operator==(const Value &rhs) const | Value |
Value() | Value |
Value(const DataType_ &data) | Value |
Value(const Rhs &rhs) | Value | [inline]
Generated on Sat Mar 20 14:15:21 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Variant Member List

This is the complete list of members for Variant, including all inherited members.
data_ (defined in Variant) | Variant | [private]
DataType_ typedef (defined in Variant) | Variant |
get(frontend::LexicalToolKit::IO io) const | Variant | [inline]
get() const | Variant | [inline, private]
is(frontend::LexicalToolKit::IO io) const | Variant | [inline]
operator<< (defined in Variant) | Variant | [friend]
operator=(const Rhs &rhs) | Variant | [inline]
Variant() | Variant |
Variant(const DataType_ &data) | Variant |
Variant(const Rhs &rhs) | Variant | [inline]
Variant(const Single &data) | Variant |
Generated on Sat Mar 20 14:15:21 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Vector Member List

This is the complete list of members for Vector, including all inherited members.
getNCols() const | Matrix |
getNRows() const | Matrix |
getSize() const | Vector |
Matrix(size_t nRows=1, size_t nCols=1) | Matrix | [explicit]
operator()(size_t i) const | Vector |
operator()(size_t i) | Vector |
keyvalue::value::Matrix::operator()(size_t i, size_t j) const | Matrix |
keyvalue::value::Matrix::operator()(size_t i, size_t j) | Matrix |
operator==(const Matrix &rhs) const | Matrix |
resize(size_t size) | Vector |
keyvalue::value::Matrix::resize(size_t nRows, size_t nCols) | Matrix |
transpose() | Vector |
transposeVector() | Matrix | [protected]
Vector(size_t size=1, bool isRow=false) | Vector | [explicit]
Vector(const vector< ElementType > &data, bool isRow=false) | Vector | [inline]
Generated on Sat Mar 20 14:15:21 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

XBuilder< ObjectType > Member List

This is the complete list of members for XBuilder< ObjectType >, including all inherited members.
Builder() (defined in Builder< ObjectType >) | Builder< ObjectType > | [inline, protected]
getInstance() | XBuilder< ObjectType > | [inline, static]
getName() const | Builder< ObjectType > | [virtual]
getObject(const value::Variant &data) const | XBuilder< ObjectType > | [virtual]
keyvalue::Builder::getObject(const DataSet &data) const | Builder< ObjectType > | [virtual]
getResult(const DataSet &data) const | Builder< ObjectType > | [inline, virtual]
getResult(const value::Variant &data) const | Builder< ObjectType > | [inline, virtual]
getSingleton() | XBuilder< ObjectType > | [inline, private, static]
setGetter(Builder &(*getter)()) | Builder< ObjectType > | [inline, protected, static]
XBuilder() (defined in XBuilder< ObjectType >) | XBuilder< ObjectType > | [inline, private]
~Processor() (defined in Processor) | Processor | [virtual]
Generated on Sat Mar 20 14:14:54 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

XCalculator< Tag > Member List

This is the complete list of members for XCalculator< Tag >, including all inherited members.
Calculator() (defined in Calculator< Tag >) | Calculator< Tag > | [inline, protected]
getInstance() | XCalculator< Tag > | [inline, static]
getName() const | Calculator< Tag > | [virtual]
getResult(const DataSet &data) const | Calculator< Tag > | [inline, virtual]
getResult(const value::Variant &data) const | Calculator< Tag > | [inline, virtual]
getSingleton() | XCalculator< Tag > | [inline, private, static]
getValue(const value::Variant &data) const | XCalculator< Tag > | [virtual]
keyvalue::Calculator::getValue(const DataSet &data) const | Calculator< Tag > | [virtual]
setGetter(Calculator &(*getter)()) | Calculator< Tag > | [inline, protected, static]
XCalculator() (defined in XCalculator< Tag >) | XCalculator< Tag > | [inline, private]
~Processor() (defined in Processor) | Processor | [virtual]
Generated on Sat Mar 20 14:14:54 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/ConsoleColors.h Source File

  • File List
  • File Members
keyvalue » sys » logger

ConsoleColors.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_SYS_LOGGER_CONSOLECOLORS_H_
00029 #define KEYVALUE_SYS_LOGGER_CONSOLECOLORS_H_
00030
00031 namespace keyvalue {
00032 namespace logger {
00033
00034   // Colors as in a Xterm console
00035   // bit pattern: bBGR  where b = bold, R = red, G = green, B = blue
00036
00042   enum Color {    // Dec  Bin
00043     black = 0,    // 00   0000
00044     red,          // 01   0001
00045     green,        // 02   0010
00046     yellow,       // 03   0011
00047     blue,         // 04   0100
00048     pink,         // 05   0101
00049     cyan,         // 06   0110
00050     white,        // 07   0111
00051     grey,         // 08   1000
00052     bold_red,     // 09   1001
00053     bold_green,   // 10   1010
00054     bold_yellow,  // 11   1011
00055     bold_blue,    // 12   1100
00056     bold_pink,    // 13   1101
00057     bold_cyan,    // 14   1110
00058     bold_white    // 15   1111
00059   };
00060
00061 } // namespace logger
00062 } // namespace keyvalue
00063
00064 #endif // KEYVALUE_SYS_LOGGER_CONSOLECOLORS_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/ConsoleLogger.h Source File

  • File List
  • File Members
keyvalue » sys » logger

ConsoleLogger.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_SYS_LOGGER_CONSOLELOGGER_H_
00029 #define KEYVALUE_SYS_LOGGER_CONSOLELOGGER_H_
00030
00031 #if _WIN32
00032 #include "keyvalue/sys/logger/WindowsConsole.h"
00033 #else
00034 #include "keyvalue/sys/logger/XtermConsole.h"
00035 #endif
00036
00037 // For DOXYGEN we include both files to have nicer documentation.
00038 #if DOXYGEN
00039 #include "keyvalue/sys/logger/WindowsConsole.h"
00040 #include "keyvalue/sys/logger/XtermConsole.h"
00041 #endif
00042
00043 namespace keyvalue {
00044 namespace logger {
00045
00046 #if _WIN32
00047 #define CONSOLELOGGER WindowsConsole
00048 #else
00049 #define CONSOLELOGGER XtermConsole
00050 #endif
00051
00060 class ConsoleLogger :  public CONSOLELOGGER {
00061
00062 public:
00063
00064   ConsoleLogger(unsigned int level, string title);
00065
00066 }; //class ConsoleLogger
00067
00068 } // namespace logger
00069 } // namespace keyvalue
00070
00071 #endif // KEYVALUE_SYS_LOGGER_CONSOLELOGGER_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/DataSet.h Source File

  • File List
  • File Members
keyvalue » mngt

DataSet.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_MNGT_DATASET_H_
00029 #define KEYVALUE_MNGT_DATASET_H_
00030
00031 #include <map>
00032 #include <typeinfo>
00033
00034 #include <boost/any.hpp>
00035 #include <boost/utility.hpp>
00036 #include <boost/weak_ptr.hpp>
00037
00038 #include "keyvalue/extern/String.h"
00039 #include "keyvalue/extern/SharedPtr.h"
00040 #include "keyvalue/key/Key.h"
00041 #include "keyvalue/value/Result.h"
00042 #include "keyvalue/value/TypeName.h"
00043 #include "keyvalue/value/Value.h"
00044 #include "keyvalue/sys/exception/Exception.h"
00045
00046 #ifndef NDEBUG
00047 #include "keyvalue/sys/logger/GlobalLogger.h"
00048 #endif
00049
00050 namespace keyvalue {
00051
00052 // Forward declaration
00053 class Processor;
00054
00060 class DataSet: private boost::noncopyable {
00061
00062 public:
00063
00069   explicit
00070   DataSet(const string& name);
00071
00077   string
00078   getName() const;
00079
00086   void
00087   add(const string& key, const value::Value& value);
00088
00123   template<typename KeyType>
00124   typename KeyType::OutputType_*
00125   find(const KeyType& key) const;
00126
00136   template<typename KeyType>
00137   typename KeyType::OutputType_
00138   getValue(const KeyType& key) const;
00139
00153   value::Result
00154   process() const;
00155
00172   value::Result
00173   process(const Processor& processor) const;
00174
00192   bool
00193   mustUpdate() const;
00194
00198   friend std::ostream&
00199   operator<<(std::ostream& os, const DataSet& dataSet);
00200
00201 private:
00202
00210   struct Record {
00211
00212     typedef boost::weak_ptr<Record> WeakPtr;
00213
00214     explicit
00215     Record(const value::Value& rawValue);
00216
00217     Record(WeakPtr next, WeakPtr driver);
00218
00219     value::Value    rawValue_;
00220     bool            isBusy_;
00221     WeakPtr         next_;
00222     WeakPtr         driver_;
00223     boost::any      cache_;
00224     std::type_info* keyType_;
00225   };
00226
00235   struct Graph {
00236
00237     Graph();
00238
00239     Graph(shared_ptr<Record> first, shared_ptr<Record> last,
00240       bool hasChanged);
00241
00242     shared_ptr<Record>  first_;
00243     shared_ptr<Record>  last_;
00244     bool                hasChanged_;
00245   };
00246
00247   class CircularReference : public RuntimeError {
00248   };
00249
00267   Graph
00268   getGraph(const string& key, bool start = true) const;
00269
00270   Graph
00271   getGraph(shared_ptr<Record> first, const string& key) const;
00272
00273   value::Result
00274   doProcess(const Processor& processor) const;
00275
00276   typedef std::map<string, shared_ptr<Record> > MapType_;
00277   typedef MapType_::value_type                  ValueType_;
00278   string                                        name_;
00279
00280   mutable MapType_                              map_;
00281   mutable bool                                  mustUpdate_;
00282   mutable value::Result                         result_;
00283
00284 }; // class DataSet
00285
00286 /*--------------------------------------------------------------------------
00287  * DataSet::find()
00288  *------------------------------------------------------------------------*/
00289
00290 template<typename KeyType>
00291 typename KeyType::OutputType_*
00292 DataSet::find(const KeyType& key) const {
00293
00294   typedef typename KeyType::OutputType_ OutputType;
00295
00300   Graph graph(getGraph(key.getName()));
00301   if (!graph.last_)
00302     return static_cast<OutputType*>(0);
00303
00304   // Syntactic sugar.
00305   shared_ptr<Record>& last(graph.last_);
00306
00311   if (KeyType::isBasicOrEnum_) {
00312     if (!graph.hasChanged_ && &typeid(KeyType) == last->keyType_) {
00313 #ifndef NDEBUG
00314       logger::GlobalLogger::getInstance().log(Debug(10) & "Returning "
00315         "cached value for key '" & key.getName() & "'.");
00316 #endif
00317       return boost::any_cast<OutputType>(&last->cache_);
00318     }
00319     mustUpdate_ = true;
00320   }
00321
00326   typedef typename KeyType::InputType_ InputType;
00327
00328   const InputType* container(last->rawValue_.get<InputType>());
00329
00330   if (!container)
00331     throw RuntimeError() & "Value for key '" & key.getName() & "' in "
00332       "data set '" & name_ & "' must be a " &
00333       value::TypeName<InputType>::value_ & "!";
00334
00339   key.checkInput(*container);
00340
00341   // If execution gets here, then the memoization above didn't work. In
00342   // particular:
00343   //
00344   // (1) If the output container element type is a basic type, then the
00345   // cached value (if any) is out of date and must be recalculated.
00346   //
00347   // (2) If the output container element type is an object type, then even
00348   // if the raw value (a container of object names) haven't changed since
00349   // last time this key was processed, the objects themselves could have
00350   // been rebuilt. Hence, the cached value (if any) might be out of date.
00351   // To check that, we provide the cached value to the container converter
00352   // which compares old objects with new ones.
00353
00354   OutputType* cache(0);
00355   if (!KeyType::isBasicOrEnum_&& &typeid(KeyType) == last->keyType_)
00356     cache = boost::any_cast<OutputType>(&last->cache_);
00357
00358   typename KeyType::ConverterType_ converter(*container, cache);
00359
00360   while (!converter.isEmpty()) {
00361     converter.insert(key.map(converter.pop()));
00362     key.checkSoFar(converter);
00363   }
00364
00365   OutputType output(converter.getOutput());
00366   key.checkOutput(output);
00367
00368   mustUpdate_ = mustUpdate_ || converter.mustUpdate();
00369
00374   last->cache_   = output;
00375   last->keyType_ = const_cast<std::type_info*>(&typeid(KeyType));
00376
00377   return boost::any_cast<OutputType>(&last->cache_);
00378 }
00379
00380 /*--------------------------------------------------------------------------
00381  * DataSet::getValue()
00382  *------------------------------------------------------------------------*/
00383
00384 template<typename KeyType>
00385 typename KeyType::OutputType_
00386 DataSet::getValue(const KeyType& key) const {
00387
00388   typename KeyType::OutputType_* result(find(key));
00389
00390   if (result)
00391     return *result;
00392
00393   throw RuntimeError() & "Cannot resolve key '" & key.getName() & "' for "
00394     "data set '" & name_ & "'!";
00395 }
00396
00397 } // namespace keyvalue
00398
00399 #endif // KEYVALUE_MNGT_DATASET_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/monotone/Decreasing.h Source File

  • File List
  • File Members
keyvalue » key » generic » monotone

Decreasing.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_GENERIC_MONOTONE_DECREASING_H_
00029 #define KEYVALUE_KEY_GENERIC_MONOTONE_DECREASING_H_
00030
00031 namespace keyvalue {
00032 namespace key {
00033
00042 class Decreasing {
00043
00044 public:
00045
00058   template <typename ElementType>
00059   static bool
00060   check(const ElementType& x, const ElementType& y);
00061
00067   static const char*
00068   getName();
00069
00070 }; // class Decreasing
00071
00072 } // namespace key
00073 } // namespace keyvalue
00074
00075 #endif // KEYVALUE_KEY_GENERIC_MONOTONE_DECREASING_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/map/Default.h Source File

  • File List
  • File Members
keyvalue » key » map

Default.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_KEY_MAP_DEFAULT_H_
00030 #define KEYVALUE_KEY_MAP_DEFAULT_H_
00031
00032 #include "keyvalue/key/map/NoMap.h"
00033 #include "keyvalue/key/map/ObjectMap.h"
00034 #include "keyvalue/util/IsBasic.h"
00035
00036 namespace keyvalue {
00037 namespace key {
00038
00056 #if DOXYGEN
00057 template <typename OutputType,
00058   bool isBasic = util::IsBasic<OutputType>::value_>
00059 struct DefaultMap {};
00060 #endif
00061
00062 template <typename OutputType,
00063   bool isBasic = util::IsBasic<OutputType>::value_>
00064 struct DefaultMap;
00065
00066 template <typename OutputType>
00067 struct DefaultMap<OutputType, true> {
00068   typedef NoMap<OutputType> MapType_;
00069 };
00070
00071 template <typename OutputType>
00072 struct DefaultMap<OutputType, false> {
00073   typedef ObjectMap<OutputType> MapType_;
00074 };
00075
00088 template <typename OutputType>
00089 struct Default : public DefaultMap<OutputType>::MapType_ {
00090 };
00091
00092 } // namespace key
00093 } // namespace keyvalue
00094
00095 #endif // KEYVALUE_KEY_MAP_DEFAULT_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/bridge/key/Device.h Source File

  • File List
  • File Members
keyvalue » bridge » key

Device.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_BRIDGE_KEY_DEVICE_H_
00029 #define KEYVALUE_BRIDGE_KEY_DEVICE_H_
00030
00031 #include "keyvalue/key/converter/StdSingle.h"
00032 #include "keyvalue/key/map/FlagMap.h"
00033 #include "keyvalue/key/Traits.h"
00034 #include "keyvalue/sys/logger/Logger.h"
00035
00036 namespace keyvalue {
00037 namespace key {
00038
00046 class Device : public Traits<logger::Logger::Device, StdSingle, FlagMap> {
00047
00048 public:
00049
00050   Device();
00051
00064   logger::Logger::Device
00065   get(const string& name) const;
00066
00067 }; // class Device
00068
00069 } // namespace key
00070 } // namespace keyvalue
00071
00072 #endif // KEYVALUE_BRIDGE_KEY_DEVICE_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/bridge/ -> key Relation

keyvalue » bridge

bridge → key Relation

File in keyvalue » bridge | Includes file in keyvalue » key
key / Device.h | map / FlagMap.h
key / Device.h | converter / StdSingle.h
key / Device.h | Traits.h
key / Global.h | Traits.h
key / Level.h | Traits.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/bridge/ -> sys Relation

keyvalue » bridge

bridge → sys Relation

File in keyvalue » bridge | Includes file in keyvalue » sys
key / Device.h | logger / Logger.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/bridge/ -> logger Relation

keyvalue » bridge

bridge → logger Relation

File in keyvalue » bridge | Includes file in keyvalue » sys » logger
key / Device.h | Logger.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/bridge/key/ -> key Relation

keyvalue » bridge » key

key → key Relation

File in keyvalue » bridge » key | Includes file in keyvalue » key
Device.h | map / FlagMap.h
Device.h | converter / StdSingle.h
Device.h | Traits.h
Global.h | Traits.h
Level.h | Traits.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/bridge/key/ -> sys Relation

keyvalue » bridge » key

key → sys Relation

File in keyvalue » bridge » key | Includes file in keyvalue » sys
Device.h | logger / Logger.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/ Directory Reference

keyvalue » key

key Directory Reference

Directories

directory | converter
directory | generic
directory | map
directory | specific

Files

file | Checker.h [code]

Declaration of template class Checker.

file | Key.h [code]

Declaration and implementation of class Key.

file | Traits.h [code]

Declaration and implementation of template class Traits.

Generated on Sat Mar 20 14:15:27 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/ Directory Reference

keyvalue » key » generic

generic Directory Reference

Directories

directory | bound
directory | monotone

Files

file | Bounded.h [code]

Declaration and implementation of template class Bounded.

file | Matrix.h [code]

Declaration and implementation of template class Matrix (generic key).

file | MonotoneBoundedVector.h [code]

Declaration and implementation of template class MonotoneBoundedVector.

file | Positive.h [code]

Declaration of class Positive.

file | Single.h [code]

Declaration and implementation of template class Single (generic key).

file | StrictlyPositive.h [code]

Declaration of class StrictlyPositive.

file | Vector.h [code]

Declaration and implementation of template class Vector (generic key).

Generated on Sat Mar 20 14:15:26 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/ -> extern Relation

keyvalue » key

key → extern Relation

File in keyvalue » key | Includes file in keyvalue » extern
map / FlagMap.h | String.h
specific / Imports.h | String.h
Key.h | String.h
generic / Matrix.h | String.h
map / NoMap.h | Ptime.h
map / NoMap.h | String.h
map / ObjectMap.h | String.h
map / PartialMap.h | Ptime.h
map / PartialMap.h | String.h
generic / Positive.h | String.h
specific / Processor.h | String.h
generic / Single.h | String.h
converter / StdMatrix.h | SharedPtr.h
converter / StdMatrix.h | Vector.h
converter / StdVector.h | SharedPtr.h
converter / StdVector.h | Vector.h
generic / StrictlyPositive.h | String.h
generic / Vector.h | String.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/ -> value Relation

keyvalue » key

key → value Relation

File in keyvalue » key | Includes file in keyvalue » value
Checker.h | Single.h
Checker.h | Vector.h
map / FlagMap.h | Variant.h
map / ObjectMap.h | Variant.h
converter / StdMatrix.h | Matrix.h
converter / StdMatrix.h | Variant.h
converter / StdSingle.h | Single.h
converter / StdSingle.h | Variant.h
converter / StdVector.h | Variant.h
converter / StdVector.h | Vector.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/ -> frontend Relation

keyvalue » key

key → frontend Relation

File in keyvalue » key | Includes file in keyvalue » frontend
map / ObjectMap.h | LexicalToolKit.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/ -> map Relation

keyvalue » key

key → map Relation

File in keyvalue » key | Includes file in keyvalue » key » map
Traits.h | Default.h
specific / VectorOutput.h | FlagMap.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/ -> mngt Relation

keyvalue » key

key → mngt Relation

File in keyvalue » key | Includes file in keyvalue » mngt
map / ObjectMap.h | Builder.h
map / ObjectMap.h | DataSet.h
map / ObjectMap.h | Repository.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/ -> sys Relation

keyvalue » key

key → sys Relation

File in keyvalue » key | Includes file in keyvalue » sys
map / FlagMap.h | exception / Exception.h
map / ObjectMap.h | exception / KV_ASSERT.h
converter / StdMatrix.h | exception / KV_ASSERT.h
converter / StdSingle.h | exception / KV_ASSERT.h
converter / StdVector.h | exception / KV_ASSERT.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/ -> util Relation

keyvalue » key

key → util Relation

File in keyvalue » key | Includes file in keyvalue » util
map / Default.h | IsBasic.h
Traits.h | IsBasic.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/ -> extern Relation

keyvalue » key » generic

generic → extern Relation

File in keyvalue » key » generic | Includes file in keyvalue » extern
Matrix.h | String.h
Positive.h | String.h
Single.h | String.h
StrictlyPositive.h | String.h
Vector.h | String.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/ -> converter Relation

keyvalue » key » generic

generic → converter Relation

File in keyvalue » key » generic | Includes file in keyvalue » key » converter
Bounded.h | StdSingle.h
Matrix.h | StdMatrix.h
MonotoneBoundedVector.h | StdVector.h
Single.h | StdSingle.h
Vector.h | StdVector.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/ -> bound Relation

keyvalue » key » generic

generic → bound Relation

File in keyvalue » key » generic | Includes file in keyvalue » key » generic » bound
Bounded.h | NoBound.h
MonotoneBoundedVector.h | NoBound.h
Positive.h | Geq.h
StrictlyPositive.h | Greater.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/ -> extern Relation

keyvalue » value

value → extern Relation

File in keyvalue » value | Includes file in keyvalue » extern
Result.h | SharedPtr.h
TypeName.h | String.h
Variant.h | Ptime.h
Variant.h | String.h
Vector.h | Vector.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/ -> frontend Relation

keyvalue » value

value → frontend Relation

File in keyvalue » value | Includes file in keyvalue » frontend
Variant.h | LexicalToolKit.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/frontend/ -> extern Relation

keyvalue » frontend

frontend → extern Relation

File in keyvalue » frontend | Includes file in keyvalue » extern
FrontEnd.h | String.h
LexicalToolKit.h | Ptime.h
LexicalToolKit.h | String.h
Queue.h | String.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/frontend/ -> value Relation

keyvalue » frontend

frontend → value Relation

File in keyvalue » frontend | Includes file in keyvalue » value
Queue.h | Value.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/frontend/ -> sys Relation

keyvalue » frontend

frontend → sys Relation

File in keyvalue » frontend | Includes file in keyvalue » sys
LexicalToolKit.h | exception / Exception.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/frontend/ -> util Relation

keyvalue » frontend

frontend → util Relation

File in keyvalue » frontend | Includes file in keyvalue » util
LexicalToolKit.h | Lexical.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/ Directory Reference

keyvalue » sys

sys Directory Reference

Directories

directory | exception
directory | logger
directory | message
Generated on Sat Mar 20 14:15:34 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/converter/ -> extern Relation

keyvalue » key » converter

converter → extern Relation

File in keyvalue » key » converter | Includes file in keyvalue » extern
StdMatrix.h | SharedPtr.h
StdMatrix.h | Vector.h
StdVector.h | SharedPtr.h
StdVector.h | Vector.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/converter/ -> value Relation

keyvalue » key » converter

converter → value Relation

File in keyvalue » key » converter | Includes file in keyvalue » value
StdMatrix.h | Matrix.h
StdMatrix.h | Variant.h
StdSingle.h | Single.h
StdSingle.h | Variant.h
StdVector.h | Variant.h
StdVector.h | Vector.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/converter/ -> sys Relation

keyvalue » key » converter

converter → sys Relation

File in keyvalue » key » converter | Includes file in keyvalue » sys
StdMatrix.h | exception / KV_ASSERT.h
StdSingle.h | exception / KV_ASSERT.h
StdVector.h | exception / KV_ASSERT.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/map/ -> extern Relation

keyvalue » key » map

map → extern Relation

File in keyvalue » key » map | Includes file in keyvalue » extern
FlagMap.h | String.h
NoMap.h | Ptime.h
NoMap.h | String.h
ObjectMap.h | String.h
PartialMap.h | Ptime.h
PartialMap.h | String.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/map/ -> value Relation

keyvalue » key » map

map → value Relation

File in keyvalue » key » map | Includes file in keyvalue » value
FlagMap.h | Variant.h
ObjectMap.h | Variant.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/map/ -> frontend Relation

keyvalue » key » map

map → frontend Relation

File in keyvalue » key » map | Includes file in keyvalue » frontend
ObjectMap.h | LexicalToolKit.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/map/ -> mngt Relation

keyvalue » key » map

map → mngt Relation

File in keyvalue » key » map | Includes file in keyvalue » mngt
ObjectMap.h | Builder.h
ObjectMap.h | DataSet.h
ObjectMap.h | Repository.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/map/ -> sys Relation

keyvalue » key » map

map → sys Relation

File in keyvalue » key » map | Includes file in keyvalue » sys
FlagMap.h | exception / Exception.h
ObjectMap.h | exception / KV_ASSERT.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/map/ -> util Relation

keyvalue » key » map

map → util Relation

File in keyvalue » key » map | Includes file in keyvalue » util
Default.h | IsBasic.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/specific/ -> extern Relation

keyvalue » key » specific

specific → extern Relation

File in keyvalue » key » specific | Includes file in keyvalue » extern
Imports.h | String.h
Processor.h | String.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/specific/ -> converter Relation

keyvalue » key » specific

specific → converter Relation

File in keyvalue » key » specific | Includes file in keyvalue » key » converter
Imports.h | StdVector.h
VectorOutput.h | StdSingle.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/specific/ -> map Relation

keyvalue » key » specific

specific → map Relation

File in keyvalue » key » specific | Includes file in keyvalue » key » map
VectorOutput.h | FlagMap.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/ -> extern Relation

keyvalue » mngt

mngt → extern Relation

File in keyvalue » mngt | Includes file in keyvalue » extern
DataSet.h | SharedPtr.h
DataSet.h | String.h
process.h | SharedPtr.h
ProcessorMngr.h | SharedPtr.h
ProcessorMngr.h | String.h
Repository.h | SharedPtr.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/ -> key Relation

keyvalue » mngt

mngt → key Relation

File in keyvalue » mngt | Includes file in keyvalue » key
DataSet.h | Key.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/ -> value Relation

keyvalue » mngt

mngt → value Relation

File in keyvalue » mngt | Includes file in keyvalue » value
Builder.h | Variant.h
Calculator.h | Variant.h
DataSet.h | Result.h
DataSet.h | TypeName.h
DataSet.h | Value.h
process.h | Value.h
Processor.h | Result.h
Repository.h | Vector.h
XBuilder.h | Variant.h
XCalculator.h | Variant.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/ -> sys Relation

keyvalue » mngt

mngt → sys Relation

File in keyvalue » mngt | Includes file in keyvalue » sys
Builder.h | exception / Exception.h
Calculator.h | exception / Exception.h
DataSet.h | exception / Exception.h
DataSet.h | logger / GlobalLogger.h
Repository.h | exception / Exception.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/pattern/ -> extern Relation

keyvalue » pattern

pattern → extern Relation

File in keyvalue » pattern | Includes file in keyvalue » extern
KeysInMatrix.h | Vector.h
KeysInVector.h | Vector.h
Pattern.h | String.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/pattern/ -> value Relation

keyvalue » pattern

pattern → value Relation

File in keyvalue » pattern | Includes file in keyvalue » value
Pattern.h | Value.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/ -> bridge Relation

keyvalue » sys

sys → bridge Relation

File in keyvalue » sys | Includes file in keyvalue » bridge
logger / LoggerImpl.h | Bridge.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/ -> extern Relation

keyvalue » sys

sys → extern Relation

File in keyvalue » sys | Includes file in keyvalue » extern
logger / policy / AddPrefix.h | String.h
logger / GlobalLogger.h | SharedPtr.h
message / Message.h | String.h
logger / WindowsConsole.h | String.h
logger / policy / XtermColor.h | String.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/exception/ -> message Relation

keyvalue » sys » exception

exception → message Relation

File in keyvalue » sys » exception | Includes file in keyvalue » sys » message
Exception.h | MessageImpl.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/ -> bridge Relation

keyvalue » sys » logger

logger → bridge Relation

File in keyvalue » sys » logger | Includes file in keyvalue » bridge
LoggerImpl.h | Bridge.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/ -> extern Relation

keyvalue » sys » logger

logger → extern Relation

File in keyvalue » sys » logger | Includes file in keyvalue » extern
policy / AddPrefix.h | String.h
GlobalLogger.h | SharedPtr.h
WindowsConsole.h | String.h
policy / XtermColor.h | String.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/ -> policy Relation

keyvalue » sys » logger

logger → policy Relation

File in keyvalue » sys » logger | Includes file in keyvalue » sys » logger » policy
LoggerImpl.h | AddPrefix.h
LoggerImpl.h | ForwardToGlobalLogger.h
LoggerImpl.h | IgnoreColor.h
WindowsConsole.h | AddPrefix.h
WindowsConsole.h | ForwardToGlobalLogger.h
WindowsConsole.h | XtermColor.h
XtermConsole.h | AddPrefix.h
XtermConsole.h | XtermColor.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/ -> message Relation

keyvalue » sys » logger

logger → message Relation

File in keyvalue » sys » logger | Includes file in keyvalue » sys » message
LoggerImpl.h | MessageImpl.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/policy/ -> extern Relation

keyvalue » sys » logger » policy

policy → extern Relation

File in keyvalue » sys » logger » policy | Includes file in keyvalue » extern
AddPrefix.h | String.h
XtermColor.h | String.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/message/ -> extern Relation

keyvalue » sys » message

message → extern Relation

File in keyvalue » sys » message | Includes file in keyvalue » extern
Message.h | String.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/message/ -> logger Relation

keyvalue » sys » message

message → logger Relation

File in keyvalue » sys » message | Includes file in keyvalue » sys » logger
Message.h | ConsoleColors.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/util/ -> extern Relation

keyvalue » util

util → extern Relation

File in keyvalue » util | Includes file in keyvalue » extern
IsBasic.h | Ptime.h
IsBasic.h | String.h
tenor2ptime.h | Ptime.h
tenor2ptime.h | String.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/bridge/ Directory Reference

keyvalue » bridge

bridge Directory Reference

Directories

directory | key

Files

file | Bridge.h [code]

Declaration of class Bridge.

file | Register.h [code]

Registration of reserved processors.

Generated on Sat Mar 20 14:15:23 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/ Directory Reference

keyvalue

keyvalue Directory Reference

Directories

directory | bridge
directory | extern
directory | frontend
directory | key
directory | mngt
directory | pattern
directory | sys
directory | util
directory | value

Files

file | keyvalue.h [code]

Main page of KeyValue's reference manual.

Generated on Sat Mar 20 14:15:28 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/ Directory Reference

keyvalue » sys » logger

logger Directory Reference

Directories

directory | policy

Files

file | ConsoleColors.h [code]

Definition of enum Color.

file | ConsoleLogger.h [code]

Declaration of class ConsoleLogger.

file | FileLogger.h [code]

Declaration of class FileLogger.

file | GlobalLogger.h [code]

Declaration of class GlobalLogger.

file | Logger.h [code]

Declaration of class Logger.

file | LoggerImpl.h [code]

Declaration and implementation of template class LoggerImpl.

file | StdLogger.h [code]

Declaration of class StdLogger.

file | WindowsConsole.h [code]

Declaration of class WindowsConsole.

file | XtermConsole.h [code]

Declaration of class XtermConsole.

Generated on Sat Mar 20 14:15:29 2010 for KeyValue by doxygen 1.6.1


KeyValue: Directory Hierarchy

Directories

This directory hierarchy is sorted roughly, but not completely, alphabetically:
  • keyvalue
    • bridge
      • key
    • extern
    • frontend
    • key
      • converter
      • generic
        • bound
        • monotone
      • map
      • specific
    • mngt
    • pattern
    • sys
      • exception
      • logger
        • policy
      • message
    • util
    • value
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/exception/Exception.h Source File

  • File List
  • File Members
keyvalue » sys » exception

Exception.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_SYS_EXCEPTION_EXCEPTION_H_
00030 #define KEYVALUE_SYS_EXCEPTION_EXCEPTION_H_
00031
00032 #include <iosfwd>
00033 #include <stdexcept>
00034
00035 #include "keyvalue/sys/message/MessageImpl.h"
00036
00037 namespace keyvalue {
00038
00050 namespace exception {
00051
00057 class Exception {
00058
00059 public:
00060
00070   Exception();
00071
00072   virtual
00073   ~Exception() throw();
00074
00091   virtual const char*
00092   what() const = 0;
00093
00103   virtual const Message&
00104   getMessage() const = 0;
00105
00106 }; // class Exception
00107
00111 std::ostream&
00112 operator<<(std::ostream& os, const Exception& exception);
00113
00126 template<typename StdExcept, typename MessageType>
00127 class ExceptionImpl: public Exception, public StdExcept {
00128
00129 public:
00130
00131   ExceptionImpl();
00132
00133   virtual
00134   ~ExceptionImpl() throw();
00135
00139   const Message&
00140   getMessage() const;
00141
00145   const char*
00146   what() const throw();
00147
00171   template<typename DataType>
00172   ExceptionImpl&
00173   operator&(const DataType& data);
00174
00175 private:
00176
00177   MessageType message_;
00178   mutable string str_;
00179
00180 }; // class ExceptionImpl
00181
00244 template <typename LhsType, typename RhsType>
00245 LhsType&
00246 operator&(const LhsType& lhs, const RhsType& rhs) {
00247   LhsType& mutableLhs(const_cast<LhsType&>(lhs));
00248   mutableLhs.operator&(rhs);
00249   return mutableLhs;
00250 }
00251
00262 typedef ExceptionImpl<std::runtime_error, Error> RuntimeError;
00263
00277 typedef ExceptionImpl<std::logic_error, Logic> LogicError;
00278
00279 /*--------------------------------------------------------------------------
00280  * ExceptionImpl::ExceptionImpl()
00281  *------------------------------------------------------------------------*/
00282
00283 template <typename StdExcept, typename MessageType>
00284 ExceptionImpl<StdExcept, MessageType>::ExceptionImpl() : StdExcept("") {
00285 }
00286
00287 /*--------------------------------------------------------------------------
00288  * ExceptionImpl::~ExceptionImpl()
00289  *------------------------------------------------------------------------*/
00290
00291 template <typename StdExcept, typename MessageType>
00292 ExceptionImpl<StdExcept, MessageType>::~ExceptionImpl() throw() {
00293 }
00294
00295 /*--------------------------------------------------------------------------
00296  * ExceptionImpl::getMessage()
00297  *------------------------------------------------------------------------*/
00298
00299 template <typename StdExcept, typename MessageType>
00300 const Message&
00301 ExceptionImpl<StdExcept, MessageType>::getMessage() const {
00302   return message_;
00303 }
00304
00305 /*--------------------------------------------------------------------------
00306  * ExceptionImpl::what()
00307  *------------------------------------------------------------------------*/
00308
00309 template <typename StdExcept, typename MessageType>
00310 const char*
00311 ExceptionImpl<StdExcept, MessageType>::what() const throw() {
00312   message_.getString().swap(str_);
00313   return str_.c_str();
00314 }
00315
00316 /*--------------------------------------------------------------------------
00317  * ExceptionImpl::operator&()
00318  *------------------------------------------------------------------------*/
00319
00320 template<typename StdExcept, typename MessageType>
00321 template<typename DataType>
00322 ExceptionImpl<StdExcept, MessageType>&
00323 ExceptionImpl<StdExcept, MessageType>::operator&(const DataType& data) {
00324   message_ & data;
00325   return *this;
00326 }
00327
00328 } // namespace exception
00329
00330 using exception::Exception;
00331 using exception::RuntimeError;
00332 using exception::LogicError;
00333
00334 } // namespace keyvalue
00335
00336 #endif // KEYVALUE_SYS_EXCEPTION_EXCEPTION_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/specific/Export.h Source File

  • File List
  • File Members
keyvalue » key » specific

Export.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_SPECIFIC_EXPORT_H_
00029 #define KEYVALUE_KEY_SPECIFIC_EXPORT_H_
00030
00031 #include "keyvalue/key/Traits.h"
00032
00033 namespace keyvalue {
00034 namespace key {
00035
00043 class Export : public Traits<bool> {
00044
00045 public:
00046
00050   Export();
00051
00052 }; // class Export
00053
00054 } // namespace key
00055 } // namespace keyvalue
00056
00057 #endif // KEYVALUE_KEY_SPECIFIC_EXPORT_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/extern/Vector.h Source File

  • File List
  • File Members
keyvalue » extern

Vector.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_EXTERN_VECTOR_H_
00029 #define KEYVALUE_EXTERN_VECTOR_H_
00030
00031 #include <vector>
00032
00033 namespace keyvalue {
00034
00035   using std::vector;
00036
00037 } // namespace keyvalue
00038
00039 #endif // KEYVALUE_EXTERN_VECTOR_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/FileLogger.h Source File

  • File List
  • File Members
keyvalue » sys » logger

FileLogger.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_SYS_LOGGER_FILELOGGER_H_
00029 #define KEYVALUE_SYS_LOGGER_FILELOGGER_H_
00030
00031 #include <fstream>
00032
00033 #include "keyvalue/sys/logger/LoggerImpl.h"
00034
00035 namespace keyvalue {
00036 namespace logger {
00037
00043 class FileLogger : public LoggerImpl<> {
00044
00045 public:
00046
00047   FileLogger(unsigned int level, const string& fileName);
00048
00049   ~FileLogger();
00050
00051 private:
00052
00053   std::ofstream output_;
00054
00055   bool
00056   send(const string& message);
00057
00058 }; // class FileLogger
00059
00060 } // namespace logger
00061 } // namespace keyvalue
00062
00063 #endif // KEYVALUE_SYS_LOGGER_FILELOGGER_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: File Index

  • File List
  • File Members

File List

Here is a list of all documented files with brief descriptions:
keyvalue/keyvalue.h [code] | Main page of KeyValue's reference manual
keyvalue/bridge/Bridge.h [code] | Declaration of class Bridge
keyvalue/bridge/Register.h [code] | Registration of reserved processors
keyvalue/bridge/key/Device.h [code] | Declaration of class Device
keyvalue/bridge/key/Global.h [code] | Declaration of class Global
keyvalue/bridge/key/Level.h [code] | Declaration of class Level
keyvalue/extern/Ptime.h [code] | Export boost::ptime to namespace keyvalue
keyvalue/extern/SharedPtr.h [code] | Export boost::shared_ptr to namespace keyvalue
keyvalue/extern/String.h [code] | Export std::string to namespace keyvalue
keyvalue/extern/Vector.h [code] | Export std::vector to namespace keyvalue
keyvalue/frontend/FrontEnd.h [code] | Declaration of class FrontEnd
keyvalue/frontend/LexicalToolKit.h [code] | Definition of class LexicalToolKit
keyvalue/frontend/LexicalToolKitPairs.h [code] | X Macro helper for class LexicalToolkit
keyvalue/frontend/Queue.h [code] | Declaration of class Queue
keyvalue/key/Checker.h [code] | Declaration of template class Checker
keyvalue/key/Key.h [code] | Declaration and implementation of class Key
keyvalue/key/Traits.h [code] | Declaration and implementation of template class Traits
keyvalue/key/converter/StdMatrix.h [code] | Declaration and implementation of template class StdMatrix
keyvalue/key/converter/StdSingle.h [code] | Declaration and implementation of template class StdSingle
keyvalue/key/converter/StdVector.h [code] | Declaration and implementation of template class StdVector
keyvalue/key/generic/Bounded.h [code] | Declaration and implementation of template class Bounded
keyvalue/key/generic/Matrix.h [code] | Declaration and implementation of template class Matrix (generic key)
keyvalue/key/generic/MonotoneBoundedVector.h [code] | Declaration and implementation of template class MonotoneBoundedVector
keyvalue/key/generic/Positive.h [code] | Declaration of class Positive
keyvalue/key/generic/Single.h [code] | Declaration and implementation of template class Single (generic key)
keyvalue/key/generic/StrictlyPositive.h [code] | Declaration of class StrictlyPositive
keyvalue/key/generic/Vector.h [code] | Declaration and implementation of template class Vector (generic key)
keyvalue/key/generic/bound/Geq.h [code] | Declaration of template class Geq
keyvalue/key/generic/bound/Greater.h [code] | Declaration of template class Greater
keyvalue/key/generic/bound/Leq.h [code] | Declaration of template class Leq
keyvalue/key/generic/bound/Less.h [code] | Declaration of template class Less
keyvalue/key/generic/bound/NoBound.h [code] | Declaration of template class NoBound
keyvalue/key/generic/monotone/Decreasing.h [code] | Declaration of class Decreasing
keyvalue/key/generic/monotone/Increasing.h [code] | Declaration of class Increasing
keyvalue/key/generic/monotone/NonMonotone.h [code] | Declaration of class NonMonotone
keyvalue/key/generic/monotone/StrictlyDecreasing.h [code] | Declaration of class StrictlyDecreasing
keyvalue/key/generic/monotone/StrictlyIncreasing.h [code] | Declaration of class StrictlyIncreasing
keyvalue/key/map/Default.h [code] | Declaration and implementation of template class Default
keyvalue/key/map/FlagMap.h [code] | Declaration and implementation of template class FlagMap
keyvalue/key/map/NoMap.h [code] | Declaration of template class NoMap
keyvalue/key/map/ObjectMap.h [code] | Declaration and implementation of template class ObjectMap
keyvalue/key/map/PartialMap.h [code] | Declaration of template class PartialMap
keyvalue/key/specific/Export.h [code] | Declaration of class Export
keyvalue/key/specific/Imports.h [code] | Declaration of class Imports
keyvalue/key/specific/ProcessNow.h [code] | Declaration of class ProcessNow
keyvalue/key/specific/Processor.h [code] | Declaration of class Processor (key)
keyvalue/key/specific/VectorOutput.h [code] | Declaration of class VectorOutput
keyvalue/mngt/Builder.h [code] | Declaration and (partial) implementation of template class Builder
keyvalue/mngt/Calculator.h [code] | Declaration and (partial) implementation of template class Calculator
keyvalue/mngt/DataSet.h [code] | Declaration of class DataSet
keyvalue/mngt/process.h [code] | Declaration of function keyvalue::process()
keyvalue/mngt/Processor.h [code] | Declaration of class Processor
keyvalue/mngt/ProcessorMngr.h [code] | Declaration of class ProcessorMngr
keyvalue/mngt/Repository.h [code] | Declaration of class Repository
keyvalue/mngt/XBuilder.h [code] | Declaration and (partial) implementation of template class XBuilder
keyvalue/mngt/XCalculator.h [code] | Declaration and (partial) implementation of template class XCalculator
keyvalue/pattern/KeyInSingle.h [code] | Declaration of class KeyInSingle
keyvalue/pattern/KeysInMatrix.h [code] | Declaration of class KeysInMatrix
keyvalue/pattern/KeysInVector.h [code] | Declaration of class KeysInVector
keyvalue/pattern/Pattern.h [code] | Declaration of class Pattern and functions keyvalue::pattern::isKey() and keyvalue::pattern::getKey()
keyvalue/pattern/Table.h [code] | Declaration of class Table
keyvalue/sys/exception/Exception.h [code] | Declaration of classes Exception, RuntimeError and LogicError
keyvalue/sys/exception/KV_ASSERT.h [code] | Implementation of macro KV_ASSERT
keyvalue/sys/logger/ConsoleColors.h [code] | Definition of enum Color
keyvalue/sys/logger/ConsoleLogger.h [code] | Declaration of class ConsoleLogger
keyvalue/sys/logger/FileLogger.h [code] | Declaration of class FileLogger
keyvalue/sys/logger/GlobalLogger.h [code] | Declaration of class GlobalLogger
keyvalue/sys/logger/Logger.h [code] | Declaration of class Logger
keyvalue/sys/logger/LoggerImpl.h [code] | Declaration and implementation of template class LoggerImpl
keyvalue/sys/logger/StdLogger.h [code] | Declaration of class StdLogger
keyvalue/sys/logger/WindowsConsole.h [code] | Declaration of class WindowsConsole
keyvalue/sys/logger/XtermConsole.h [code] | Declaration of class XtermConsole
keyvalue/sys/logger/policy/AddPrefix.h [code] | Declaration of class AddPrefix
keyvalue/sys/logger/policy/ForwardToGlobalLogger.h [code] | Declaration of class ForwardToGlobalLogger
keyvalue/sys/logger/policy/IgnoreColor.h [code] | Declaration of class IgnoreColor
keyvalue/sys/logger/policy/IgnoreFailure.h [code] | Declaration of class IgnoreFailure
keyvalue/sys/logger/policy/IgnorePrefix.h [code] | Declaration of class IgnorePrefix
keyvalue/sys/logger/policy/XtermColor.h [code] | Declaration of class XtermColor
keyvalue/sys/message/Message.h [code] | Declaration of class Message
keyvalue/sys/message/MessageImpl.h [code] | Declaration of classes MessageImpl, Error, Info, Warning, Report and Debug
keyvalue/util/IsBasic.h [code] | Declaration and implementation of template class IsBasic
keyvalue/util/Lexical.h [code] | Declaration of template function Lexical
keyvalue/util/NullDeleter.h [code] | Declaration of class NullDeleter
keyvalue/util/Saver.h [code] | Definition and implementation of template class Saver
keyvalue/util/tenor2ptime.h [code] | Declaration of function tenor2ptime()
keyvalue/util/Util.h [code] | Documentation of namespace util
keyvalue/value/Matrix.h [code] | Declaration of class Matrix (container)
keyvalue/value/Nothing.h [code] | Declaration of class Nothing
keyvalue/value/Parent.h [code] | Declaration of template class Parent
keyvalue/value/Result.h [code] | Declaration of classes Result and ObjectPtr
keyvalue/value/Single.h [code] | Declaration of class Single (container)
keyvalue/value/TypeName.h [code] | Definition of template class TypeName
keyvalue/value/Value.h [code] | Declaration and (partial) implementation of class Value
keyvalue/value/Variant.h [code] | Declaration and (partial) implementation of class Variant
keyvalue/value/Vector.h [code] | Declaration of class Vector (container)
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/map/FlagMap.h Source File

  • File List
  • File Members
keyvalue » key » map

FlagMap.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_KEY_MAP_FLAGMAP_H_
00030 #define KEYVALUE_KEY_MAP_FLAGMAP_H_
00031
00032 #include "keyvalue/extern/String.h"
00033 #include "keyvalue/key/Key.h"
00034 #include "keyvalue/sys/exception/Exception.h"
00035 #include "keyvalue/value/Variant.h"
00036
00037 namespace keyvalue {
00038 namespace key {
00039
00063 template <typename OutputType>
00064 class FlagMap {
00065
00066 public:
00067
00068   typedef OutputType OutputType_;
00069
00070   FlagMap();
00071
00083   OutputType
00084   map(const value::Variant& variant) const;
00085
00095   virtual OutputType
00096   get(const string& name) const = 0;
00097
00098 private:
00099
00105   virtual string
00106   getName() const = 0;
00107
00108 }; // class FlagMap
00109
00110 /*--------------------------------------------------------------------------
00111  * FlagMap()
00112  *------------------------------------------------------------------------*/
00113
00114 template<typename OutputType>
00115 FlagMap<OutputType>::FlagMap() {
00116 }
00117
00118 /*--------------------------------------------------------------------------
00119  * map()
00120  *------------------------------------------------------------------------*/
00121
00122 template<typename OutputType>
00123 OutputType
00124 FlagMap<OutputType>::map(const value::Variant& variant) const {
00125
00126   if (variant.is<string>(frontend::LexicalToolKit::input)) {
00127
00128     try {
00129       return get(variant.get<string>(frontend::LexicalToolKit::input));
00130     }
00131
00132     catch (frontend::LexicalToolKit::Failure&) {
00133     }
00134   }
00135
00136   throw RuntimeError() & "Invalid value '" & variant & "' for key '" &
00137     getName() & "'!";
00138 }
00139
00140 } // namespace key
00141 } // namespace keyvalue
00142
00143 #endif // KEYVALUE_KEY_MAP_FLAGMAP_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/policy/ForwardToGlobalLogger.h Source File

  • File List
  • File Members
keyvalue » sys » logger » policy

ForwardToGlobalLogger.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_SYS_LOGGER_POLICY_FORWARDTOGLOBALLOGGER_H_
00029 #define KEYVALUE_SYS_LOGGER_POLICY_FORWARDTOGLOBALLOGGER_H_
00030
00031 #include <boost/utility.hpp>
00032
00033 namespace keyvalue {
00034
00035 // Forward declarations
00036
00037 class Message;
00038
00039 namespace logger {
00040   class Logger;
00041 }
00042
00043 namespace logger {
00044
00057 class ForwardToGlobalLogger : private boost::noncopyable {
00058
00059 protected:
00060
00066   bool
00067   apply(const Logger* logger, const Message& message) const;
00068
00069 private:
00070
00082   void
00083   forward(const Logger* logger, const Message& message) const;
00084
00085 }; // class ForwardToGlobalLogger
00086
00087 } // namespace logger
00088 } // namespace keyvalue
00089
00090 #endif // KEYVALUE_SYS_LOGGER_POLICY_FORWARDTOGLOBALLOGGER_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/frontend/FrontEnd.h Source File

  • File List
  • File Members
keyvalue » frontend

FrontEnd.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_FRONTEND_FRONTEND_H_
00029 #define KEYVALUE_FRONTEND_FRONTEND_H_
00030
00031 #include <boost/utility.hpp>
00032
00033 #include "keyvalue/extern/String.h"
00034 #include "keyvalue/frontend/LexicalToolKit.h"
00035
00036 namespace keyvalue {
00037
00042 namespace frontend {
00043
00052 class FrontEnd : private boost::noncopyable {
00053
00054 public:
00055
00061   static FrontEnd&
00062   getInstance();
00063
00069   string&
00070   path();
00071
00077   LexicalToolKit&
00078   lexicalToolKit();
00079
00080 private:
00081
00082   FrontEnd();
00083
00084   string            path_;
00085   LexicalToolKit    lexicalToolKit_;
00086
00087 }; // class FrontEnd
00088
00089 } // namespace frontend
00090 } // namespace keyvalue
00091
00092 #endif // KEYVALUE_FRONTEND_FRONTEND_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- k -

  • Key() : Key
  • kvProcessors_ : ProcessorMngr
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- l -

  • Leq() : Leq< ElementType >
  • Less() : Less< ElementType >
  • Level() : Level
  • lexicalToolKit() : FrontEnd
  • LexicalToolKit() : LexicalToolKit
  • log() : LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > , Logger , GlobalLogger
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- m -

  • map() : FlagMap< OutputType > , NoMap< OutputType > , PartialMap< OutputType > , ObjectMap< OutputType >
  • Matrix() : Matrix< ElementType > , Matrix
  • Message() : Message
  • MessageImpl() : MessageImpl< id >
  • MonotoneBoundedVector() : MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 >
  • mustUpdate() : StdMatrix< ElementType > , StdVector< ElementType > , StdSingle< ElementType > , DataSet
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- o -

  • operator&() : ExceptionImpl< StdExcept, MessageType > , Message
  • operator()() : Matrix , Vector , Matrix , Vector
  • operator<< : DataSet
  • operator=() : Result , Single , Value , Variant
  • operator==() : Value , Matrix
  • OutputType_ : StdSingle< ElementType > , StdMatrix< ElementType > , StdVector< ElementType >
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- b -

  • Bounded() : Bounded< ElementType, Bound1, Bound2 >
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- c -

  • check() : Geq< ElementType > , Greater< ElementType > , Less< ElementType > , NonMonotone , StrictlyDecreasing , NoBound< ElementType > , StrictlyIncreasing , KeysInMatrix , Leq< ElementType > , Decreasing , Increasing
  • checkInput()
: Checker< ConverterType, value::Single >
, Checker< ConverterType, value::Vector >
, Checker< ConverterType, value::Matrix >
  • checkOutput()
: Checker< ConverterType, value::Vector >
, Checker< ConverterType, value::Matrix >
, Bounded< ElementType, Bound1, Bound2 >
, Checker< ConverterType, value::Single >
  • checkSize() : Vector< ElementType > , MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 > , Checker< ConverterType, value::Matrix > , Matrix< ElementType > , Checker< ConverterType, value::Vector >
  • checkSoFar()
: MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 >
, Checker< ConverterType, value::Single >
, Checker< ConverterType, value::Vector >
, Checker< ConverterType, value::Matrix >
  • clear() : Repository
  • convert() : LexicalToolKit
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- d -

  • DataSet() : DataSet
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- e -

  • endInitList : LexicalToolKit
  • erase() : Repository
  • Exception() : Exception
  • Export() : Export
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- f -

  • find() : DataSet , Repository
  • Flag : VectorOutputBase
  • forward() : ForwardToGlobalLogger
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- g -

  • Geq() : Geq< ElementType >
  • get() : Device , PartialMap< OutputType > , Value , Variant , VectorOutput , Variant , FlagMap< OutputType > , GlobalLogger , Value
  • getBound() : Geq< ElementType > , Greater< ElementType > , Leq< ElementType > , Less< ElementType > , NoBound< ElementType >
  • getColor() : Message , MessageImpl< id >
  • getCompleteInfo() : Bridge
  • getCoreLibraryName() : Bridge
  • getDataSet() : Repository
  • getGraph() : DataSet
  • getInstance() : Bridge , FrontEnd , Builder< ObjectType > , Calculator< Tag > , ProcessorMngr , Repository , XBuilder< ObjectType > , XCalculator< Tag > , GlobalLogger
  • getLevel() : Logger , LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > , Message , GlobalLogger
  • getList() : Repository
  • getMessage() : Exception , ExceptionImpl< StdExcept, MessageType >
  • getName() : Checker< ConverterType, value::Single > , DataSet , Checker< ConverterType, value::Vector > , Checker< ConverterType, value::Matrix > , Geq< ElementType > , PartialMap< OutputType > , Greater< ElementType > , Leq< ElementType > , Less< ElementType > , NoBound< ElementType > , Decreasing , Increasing , NonMonotone , StrictlyDecreasing , StrictlyIncreasing , Key , FlagMap< OutputType > , NoMap< OutputType > , ObjectMap< OutputType > , Traits< ElementType, ConverterType, MapType > , Builder< ObjectType > , Calculator< Tag > , Processor
  • getNCols() : Matrix
  • getNRows() : Matrix
  • getObject() : Builder< ObjectType > , XBuilder< ObjectType > , Builder< ObjectType >
  • getObjectPtr() : Result
  • getOutput() : StdMatrix< ElementType > , StdVector< ElementType > , StdSingle< ElementType >
  • getPrefix() : MessageImpl< id > , Message
  • getProcessor() : ProcessorMngr
  • getResult() : Builder< ObjectType > , Processor , Calculator< Tag > , Processor , Builder< ObjectType > , Calculator< Tag >
  • getSaved() : Saver< SavedType >
  • getSimpleInfo() : Bridge
  • getSingleton() : XCalculator< Tag > , XBuilder< ObjectType > , Calculator< Tag > , Builder< ObjectType >
  • getSize() : Vector , Repository
  • getString() : Message
  • getValue() : Result , DataSet , XCalculator< Tag > , Calculator< Tag > , Result
  • Global() : Global
  • Greater() : Greater< ElementType >
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- i -

  • Imports() : Imports
  • InputType_ : StdMatrix< ElementType > , StdVector< ElementType > , StdSingle< ElementType >
  • insert() : StdMatrix< ElementType > , StdSingle< ElementType > , StdVector< ElementType >
  • intrusive_ptr_add_ref : Matrix
  • intrusive_ptr_release : Matrix
  • IO : LexicalToolKit
  • is() : Variant
  • isEmpty() : StdSingle< ElementType > , Table , KeysInVector , StdVector< ElementType > , KeysInMatrix , Queue , StdMatrix< ElementType > , KeyInSingle , Pattern
  • isEnabled() : LexicalToolKit
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- p -

  • parse() : KeyInSingle , KeysInMatrix , Pattern , Table , KeysInVector
  • path() : FrontEnd
  • pop() : StdMatrix< ElementType > , StdSingle< ElementType > , StdVector< ElementType > , Table , Pattern , KeyInSingle , KeysInMatrix , KeysInVector , Queue
  • Positive() : Positive
  • process() : DataSet , LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy >
  • ProcessNow() : ProcessNow
  • Processor() : Processor
  • processors_ : ProcessorMngr
  • putBack() : Queue
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- q -

  • QueueRaii() : QueueRaii
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- r -

  • remove() : Queue
  • reset() : GlobalLogger
  • resize() : Vector , Matrix
  • Result() : Result
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- s -

  • Saver() : Saver< SavedType >
  • send() : LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > , WindowsConsole , FileLogger , XtermConsole
  • sendHeader() : LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy >
  • set() : LexicalToolKit , GlobalLogger
  • setGetter() : Builder< ObjectType > , Calculator< Tag >
  • setLevel() : GlobalLogger , Logger , LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy >
  • setName() : Key
  • Single() : Single , Single< ElementType > , Single
  • StdMatrix() : StdMatrix< ElementType >
  • StdSingle() : StdSingle< ElementType >
  • StdVector() : StdVector< ElementType >
  • StrictlyPositive() : StrictlyPositive
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- t -

  • Traits() : Traits< ElementType, ConverterType, MapType >
  • transpose() : Vector
  • transposeVector() : Matrix
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- v -

  • Value() : Value
  • Variant() : Variant
  • Vector() : Vector , Vector< ElementType > , Vector
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
Here is a list of all documented class members with links to the class documentation for each member:

- w -

  • what() : Exception , ExceptionImpl< StdExcept, MessageType >
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Enumerations

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • Flag : VectorOutputBase
  • IO : LexicalToolKit
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- a -

  • add() : DataSet , ProcessorMngr , Repository
  • apply() : ForwardToGlobalLogger , IgnoreFailure
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- k -

  • Key() : Key
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- l -

  • Leq() : Leq< ElementType >
  • Less() : Less< ElementType >
  • Level() : Level
  • lexicalToolKit() : FrontEnd
  • LexicalToolKit() : LexicalToolKit
  • log() : LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > , Logger , GlobalLogger
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- m -

  • map() : FlagMap< OutputType > , NoMap< OutputType > , PartialMap< OutputType > , ObjectMap< OutputType >
  • Matrix() : Matrix< ElementType > , Matrix
  • Message() : Message
  • MessageImpl() : MessageImpl< id >
  • MonotoneBoundedVector() : MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 >
  • mustUpdate() : StdMatrix< ElementType > , StdVector< ElementType > , StdSingle< ElementType > , DataSet
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- o -

  • operator&() : ExceptionImpl< StdExcept, MessageType > , Message
  • operator()() : Matrix , Vector , Matrix , Vector
  • operator=() : Single , Value , Variant , Result
  • operator==() : Value , Matrix
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- b -

  • Bounded() : Bounded< ElementType, Bound1, Bound2 >
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- c -

  • check() : Geq< ElementType > , Greater< ElementType > , Less< ElementType > , NonMonotone , StrictlyDecreasing , NoBound< ElementType > , StrictlyIncreasing , KeysInMatrix , Leq< ElementType > , Decreasing , Increasing
  • checkInput()
: Checker< ConverterType, value::Single >
, Checker< ConverterType, value::Vector >
, Checker< ConverterType, value::Matrix >
  • checkOutput()
: Checker< ConverterType, value::Vector >
, Checker< ConverterType, value::Matrix >
, Bounded< ElementType, Bound1, Bound2 >
, Checker< ConverterType, value::Single >
  • checkSize() : Vector< ElementType > , MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 > , Checker< ConverterType, value::Matrix > , Matrix< ElementType > , Checker< ConverterType, value::Vector >
  • checkSoFar()
: MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 >
, Checker< ConverterType, value::Single >
, Checker< ConverterType, value::Vector >
, Checker< ConverterType, value::Matrix >
  • clear() : Repository
  • convert() : LexicalToolKit
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- d -

  • DataSet() : DataSet
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- e -

  • erase() : Repository
  • Exception() : Exception
  • Export() : Export
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- f -

  • find() : DataSet , Repository
  • forward() : ForwardToGlobalLogger
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- g -

  • Geq() : Geq< ElementType >
  • get() : Device , PartialMap< OutputType > , Value , Variant , VectorOutput , Variant , FlagMap< OutputType > , GlobalLogger , Value
  • getBound() : Geq< ElementType > , Greater< ElementType > , Leq< ElementType > , Less< ElementType > , NoBound< ElementType >
  • getColor() : Message , MessageImpl< id >
  • getCompleteInfo() : Bridge
  • getCoreLibraryName() : Bridge
  • getDataSet() : Repository
  • getGraph() : DataSet
  • getInstance() : Bridge , FrontEnd , Builder< ObjectType > , Calculator< Tag > , ProcessorMngr , Repository , XBuilder< ObjectType > , XCalculator< Tag > , GlobalLogger
  • getLevel() : Logger , LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > , Message , GlobalLogger
  • getList() : Repository
  • getMessage() : Exception , ExceptionImpl< StdExcept, MessageType >
  • getName() : Checker< ConverterType, value::Single > , DataSet , Checker< ConverterType, value::Vector > , Checker< ConverterType, value::Matrix > , Geq< ElementType > , PartialMap< OutputType > , Greater< ElementType > , Leq< ElementType > , Less< ElementType > , NoBound< ElementType > , Decreasing , Increasing , NonMonotone , StrictlyDecreasing , StrictlyIncreasing , Key , FlagMap< OutputType > , NoMap< OutputType > , ObjectMap< OutputType > , Traits< ElementType, ConverterType, MapType > , Builder< ObjectType > , Calculator< Tag > , Processor
  • getNCols() : Matrix
  • getNRows() : Matrix
  • getObject() : Builder< ObjectType > , XBuilder< ObjectType > , Builder< ObjectType >
  • getObjectPtr() : Result
  • getOutput() : StdMatrix< ElementType > , StdVector< ElementType > , StdSingle< ElementType >
  • getPrefix() : MessageImpl< id > , Message
  • getProcessor() : ProcessorMngr
  • getResult() : Builder< ObjectType > , Processor , Calculator< Tag > , Processor , Builder< ObjectType > , Calculator< Tag >
  • getSaved() : Saver< SavedType >
  • getSimpleInfo() : Bridge
  • getSingleton() : XCalculator< Tag > , XBuilder< ObjectType > , Calculator< Tag > , Builder< ObjectType >
  • getSize() : Vector , Repository
  • getString() : Message
  • getValue() : Result , DataSet , XCalculator< Tag > , Calculator< Tag > , Result
  • Global() : Global
  • Greater() : Greater< ElementType >
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- i -

  • Imports() : Imports
  • insert() : StdMatrix< ElementType > , StdVector< ElementType > , StdSingle< ElementType >
  • is() : Variant
  • isEmpty() : KeysInMatrix , KeyInSingle , StdVector< ElementType > , KeysInVector , StdMatrix< ElementType > , Queue , Table , StdSingle< ElementType > , Pattern
  • isEnabled() : LexicalToolKit
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- p -

  • parse() : KeyInSingle , KeysInMatrix , Pattern , Table , KeysInVector
  • path() : FrontEnd
  • pop() : StdMatrix< ElementType > , StdSingle< ElementType > , Table , Pattern , StdVector< ElementType > , KeyInSingle , KeysInMatrix , KeysInVector , Queue
  • Positive() : Positive
  • process() : DataSet , LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > , DataSet
  • ProcessNow() : ProcessNow
  • Processor() : Processor
  • putBack() : Queue
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- q -

  • QueueRaii() : QueueRaii
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- r -

  • remove() : Queue
  • reset() : GlobalLogger
  • resize() : Vector , Matrix
  • Result() : Result
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- s -

  • Saver() : Saver< SavedType >
  • send() : LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy > , WindowsConsole , FileLogger , XtermConsole
  • sendHeader() : LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy >
  • set() : LexicalToolKit , GlobalLogger
  • setGetter() : Builder< ObjectType > , Calculator< Tag >
  • setLevel() : GlobalLogger , Logger , LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy >
  • setName() : Key
  • Single() : Single , Single< ElementType > , Single
  • StdMatrix() : StdMatrix< ElementType >
  • StdSingle() : StdSingle< ElementType >
  • StdVector() : StdVector< ElementType >
  • StrictlyPositive() : StrictlyPositive
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- t -

  • Traits() : Traits< ElementType, ConverterType, MapType >
  • transpose() : Vector
  • transposeVector() : Matrix
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- v -

  • Value() : Value
  • Variant() : Variant
  • Vector() : Vector , Vector< ElementType > , Vector
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w

- w -

  • what() : Exception , ExceptionImpl< StdExcept, MessageType >
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Related Functions

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • intrusive_ptr_add_ref : Matrix
  • intrusive_ptr_release : Matrix
  • operator<< : DataSet
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Typedefs

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • InputType_ : StdMatrix< ElementType > , StdVector< ElementType > , StdSingle< ElementType >
  • OutputType_ : StdMatrix< ElementType > , StdVector< ElementType > , StdSingle< ElementType >
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members - Variables

  • Class List
  • Class Hierarchy
  • Class Members
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Related Functions
  • endInitList : LexicalToolKit
  • kvProcessors_ : ProcessorMngr
  • processors_ : ProcessorMngr
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/bound/Geq.h Source File

  • File List
  • File Members
keyvalue » key » generic » bound

Geq.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_GENERIC_BOUND_GEQ_H_
00029 #define KEYVALUE_KEY_GENERIC_BOUND_GEQ_H_
00030
00031 namespace keyvalue {
00032 namespace key {
00033
00046 template <typename ElementType>
00047 class Geq {
00048
00049 public:
00050
00056   explicit
00057   Geq(const ElementType& bound);
00058
00066   bool
00067   check(const ElementType& x) const;
00068
00074   const ElementType&
00075   getBound() const;
00076
00084   const char*
00085   getName() const;
00086
00087 private:
00088
00089   const ElementType bound_;
00090
00091 }; // class Geq
00092
00093 } // namespace key
00094 } // namespace keyvalue
00095
00096 #endif // KEYVALUE_KEY_GENERIC_BOUND_GEQ_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/bridge/key/Global.h Source File

  • File List
  • File Members
keyvalue » bridge » key

Global.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_BRIDGE_KEY_GLOBAL_H_
00029 #define KEYVALUE_BRIDGE_KEY_GLOBAL_H_
00030
00031 #include "keyvalue/key/Traits.h"
00032
00033 namespace keyvalue {
00034 namespace key {
00035
00043 class Global : public Traits<bool> {
00044
00045 public:
00046
00050   Global();
00051
00052 }; // class Global
00053
00054 } // namespace key
00055 } // namespace keyvalue
00056
00057 #endif // KEYVALUE_BRIDGE_KEY_GLOBAL_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/GlobalLogger.h Source File

  • File List
  • File Members
keyvalue » sys » logger

GlobalLogger.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_SYS_LOGGER_GLOBALLOGGER_H_
00029 #define KEYVALUE_SYS_LOGGER_GLOBALLOGGER_H_
00030
00031 #include "keyvalue/extern/SharedPtr.h"
00032 #include "keyvalue/sys/logger/Logger.h"
00033 #include "keyvalue/sys/logger/StdLogger.h"
00034
00035 namespace keyvalue {
00036 namespace logger {
00037
00051 class GlobalLogger : public Logger {
00052
00053 public:
00054
00055   unsigned int
00056   getLevel() const;
00057
00058   void
00059   setLevel(unsigned int level);
00060
00061   bool
00062   log(const Message& message);
00063
00069   static GlobalLogger&
00070   getInstance();
00071
00077   static shared_ptr<Logger>
00078   get();
00079
00089   static void
00090   set(shared_ptr<Logger> logger);
00091
00100   static void
00101   reset();
00102
00103 private:
00104
00105   StdLogger           defaultLogger_;
00106   shared_ptr<Logger>  theLogger_;
00107
00108   GlobalLogger();
00109
00110 }; // class GlobalLogger
00111
00112 } // namespace logger
00113 } // namespace keyvalue
00114
00115 #endif // KEYVALUE_SYS_LOGGER_GLOBALLOGGER_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • File List
  • File Members
  • All
  • Defines
  • KV_ASSERT : KV_ASSERT.h
  • KV_LEXICAL_TOOL_KIT_PAIR : LexicalToolKit.h
Generated on Sat Mar 20 14:15:35 2010 for KeyValue by doxygen 1.6.1


KeyValue: Graph Legend

Graph Legend

This page explains how to interpret the graphs that are generated by doxygen.

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };

/*! Truncated class, inheritance relation is hidden */
class Truncated : public Invisible { };

/* Class not documented with doxygen comments */
class Undocumented { };

/*! Class that is inherited using public inheritance */
class PublicBase : public Truncated { };

/*! A template class */
template<class T> class Templ { };

/*! Class that is inherited using protected inheritance */
class ProtectedBase { };

/*! Class that is inherited using private inheritance */
class PrivateBase { };

/*! Class that is used by the Inherited class */
class Used { };

/*! Super class that inherits a number of other classes */
class Inherited : public PublicBase,
                  protected ProtectedBase,
                  private PrivateBase,
                  public Undocumented,
                  public Templ<int>
{
  private:
    Used *m_usedClass;
};

This will result in the following graph:

The boxes in the above graph have the following meaning:

  • A filled gray box represents the struct or class for which the graph is generated.
  • A box with a black border denotes a documented struct or class.
  • A box with a grey border denotes an undocumented struct or class.
  • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.

The arrows have the following meaning:

  • A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • A dark green arrow is used for protected inheritance.
  • A dark red arrow is used for private inheritance.
  • A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
Generated on Sat Mar 20 14:15:21 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/bound/Greater.h Source File

  • File List
  • File Members
keyvalue » key » generic » bound

Greater.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_GENERIC_BOUND_GREATER_H_
00029 #define KEYVALUE_KEY_GENERIC_BOUND_GREATER_H_
00030
00031 namespace keyvalue {
00032 namespace key {
00033
00046 template <typename ElementType>
00047 class Greater {
00048
00049 public:
00050
00056   explicit
00057   Greater(const ElementType& bound);
00058
00066   bool
00067   check(const ElementType& x) const;
00068
00074   const ElementType&
00075   getBound() const;
00076
00083   const char*
00084   getName() const;
00085
00086 private:
00087
00088   const ElementType bound_;
00089
00090 }; // class Greater
00091
00092 } // namespace key
00093 } // namespace keyvalue
00094
00095 #endif // KEYVALUE_KEY_GENERIC_BOUND_GREATER_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: Hierarchical Index

  • Class List
  • Class Hierarchy
  • Class Members

Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
  • AddPrefix
    • LoggerImpl< AddPrefix, XtermColor >
      • XtermConsole
    • LoggerImpl< AddPrefix, XtermColor, ForwardToGlobalLogger >
      • WindowsConsole
    • LoggerImpl<>
      • FileLogger
  • Bridge
  • Checker< ConverterType, InputType >
  • Checker< ConverterType, value::Matrix >
  • Checker< ConverterType, value::Single >
  • Checker< ConverterType, value::Vector >
  • Checker< ConverterType< MapType< ElementType >::OutputType_ > >
    • Traits< ElementType, ConverterType, MapType >
  • Checker< StdMatrix< Default< ElementType >::OutputType_ > >
    • Traits< ElementType, StdMatrix >
      • Matrix< ElementType >
  • Checker< StdSingle< Default< bool >::OutputType_ > >
    • Traits< bool >
      • Export
      • Global
      • ProcessNow
  • Checker< StdSingle< Default< ElementType >::OutputType_ > >
    • Traits< ElementType >
      • Single< ElementType >
  • Checker< StdSingle< Default< string >::OutputType_ > >
    • Traits< string >
      • Processor
  • Checker< StdSingle< Default< unsigned int >::OutputType_ > >
    • Traits< unsigned int >
      • Level
  • Checker< StdSingle< FlagMap< logger::Logger::Device >::OutputType_ > >
    • Traits< logger::Logger::Device, StdSingle, FlagMap >
      • Device
  • Checker< StdSingle< FlagMap< VectorOutputBase::Flag >::OutputType_ > >
    • Traits< VectorOutputBase::Flag, StdSingle, FlagMap >
      • VectorOutput
  • Checker< StdSingle< NoMap< double >::OutputType_ > >
    • Traits< double, StdSingle, NoMap >
      • Bounded< double, Geq >
        • Positive
      • Bounded< double, Greater >
        • StrictlyPositive
  • Checker< StdSingle< NoMap< ElementType >::OutputType_ > >
    • Traits< ElementType, StdSingle, NoMap >
      • Bounded< ElementType, Bound1, Bound2 >
  • Checker< StdVector< Default< ElementType >::OutputType_ > >
    • Traits< ElementType, StdVector >
      • Vector< ElementType >
  • Checker< StdVector< Default< string >::OutputType_ > >
    • Traits< string, StdVector >
      • Imports
  • Checker< StdVector< NoMap< ElementType >::OutputType_ > >
    • Traits< ElementType, StdVector, NoMap >
      • MonotoneBoundedVector< ElementType, Monotone, Bound1, Bound2 >
  • ConsoleLogger
  • DataSet
  • Debug
  • Decreasing
  • Default< OutputType >
  • Default< bool >
    • Traits< bool >
  • Default< ElementType >
    • Traits< ElementType >
    • Traits< ElementType, StdMatrix >
    • Traits< ElementType, StdVector >
  • Default< string >
    • Traits< string >
    • Traits< string, StdVector >
  • Default< unsigned int >
    • Traits< unsigned int >
  • DefaultMap< OutputType, isBasic >
  • Error
  • Exception
    • ExceptionImpl< StdExcept, MessageType >
  • Failure
  • FileRaii
  • FlagMap< OutputType >
  • FlagMap< logger::Logger::Device >
    • Traits< logger::Logger::Device, StdSingle, FlagMap >
  • FlagMap< VectorOutputBase::Flag >
    • Traits< VectorOutputBase::Flag, StdSingle, FlagMap >
  • ForwardToGlobalLogger
    • LoggerImpl< AddPrefix, XtermColor >
    • LoggerImpl< AddPrefix, XtermColor, ForwardToGlobalLogger >
    • LoggerImpl<>
  • FrontEnd
  • Geq< ElementType >
  • Geq< double >
  • Graph
  • Greater< ElementType >
  • Greater< double >
  • Helper< From, To >
  • IgnoreColor
    • LoggerImpl<>
  • IgnoreFailure
  • IgnorePrefix
  • Increasing
  • Info
  • IsBasic< ElementType >
  • IsBasicOrEnum< ElementType >
  • Key
    • Traits< ElementType, ConverterType, MapType >
    • Traits< bool >
    • Traits< double, StdSingle, NoMap >
    • Traits< ElementType >
    • Traits< ElementType, StdMatrix >
    • Traits< ElementType, StdSingle, NoMap >
    • Traits< ElementType, StdVector >
    • Traits< ElementType, StdVector, NoMap >
    • Traits< logger::Logger::Device, StdSingle, FlagMap >
    • Traits< string >
    • Traits< string, StdVector >
    • Traits< unsigned int >
    • Traits< VectorOutputBase::Flag, StdSingle, FlagMap >
  • Leq< ElementType >
  • Less< ElementType >
  • LexicalToolKit
  • Logger
    • GlobalLogger
    • LoggerImpl< PrefixPolicy, ColorPolicy, SafetyPolicy >
    • LoggerImpl< AddPrefix, XtermColor >
    • LoggerImpl< AddPrefix, XtermColor, ForwardToGlobalLogger >
    • LoggerImpl<>
  • Logic
  • LogicError
  • Matrix
    • Vector
      • Single
  • Message
    • MessageImpl< id >
  • NoBound< ElementType >
  • NoBound< double >
  • NoMap< OutputType >
  • NoMap< double >
    • Traits< double, StdSingle, NoMap >
  • NoMap< ElementType >
    • Traits< ElementType, StdSingle, NoMap >
    • Traits< ElementType, StdVector, NoMap >
  • NonMonotone
  • NotFound
  • Nothing
  • NullDeleter
  • ObjectMap< OutputType >
  • ObjectPtr
  • Parent< T >
  • PartialMap< OutputType >
  • Pattern
    • KeyInSingle
    • KeysInMatrix
    • KeysInVector
    • Table
  • Processor
    • Builder< ObjectType >
      • XBuilder< ObjectType >
    • Calculator< Tag >
      • XCalculator< Tag >
  • ProcessorMngr
  • Queue
  • QueueRaii
  • Record
  • Report
  • Repository
  • Result
  • RuntimeError
  • Saver< SavedType >
  • StdMatrix< ElementType >
  • StdSingle< ElementType >
  • StdVector< ElementType >
  • StrictlyDecreasing
  • StrictlyIncreasing
  • TypeName< Type >
  • Value
  • Variant
  • VectorOutputBase
    • VectorOutput
  • Warning
  • XtermColor
    • LoggerImpl< AddPrefix, XtermColor >
    • LoggerImpl< AddPrefix, XtermColor, ForwardToGlobalLogger >
Generated on Sat Mar 20 14:14:38 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/policy/IgnoreColor.h Source File

  • File List
  • File Members
keyvalue » sys » logger » policy

IgnoreColor.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_SYS_LOGGER_POLICY_IGNORECOLOR_H_
00029 #define KEYVALUE_SYS_LOGGER_POLICY_IGNORECOLOR_H_
00030
00031 #include <boost/utility.hpp>
00032
00033 namespace keyvalue {
00034
00035 // Forward declarations
00036
00037 class Message;
00038
00039 namespace logger {
00040
00046 class IgnoreColor : private boost::noncopyable {
00047
00048 protected:
00049
00050   bool
00051   apply(const Message&) const;
00052
00053 }; // class IgnoreColor
00054
00055 } // namespace logger
00056 } // namespace keyvalue
00057
00058 #endif // KEYVALUE_SYS_LOGGER_POLICY_IGNORECOLOR_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/policy/IgnoreFailure.h Source File

  • File List
  • File Members
keyvalue » sys » logger » policy

IgnoreFailure.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_IGNORE_FAILURE_H_
00029 #define KEYVALUE_IGNORE_FAILURE_H_
00030
00031 #include <boost/utility.hpp>
00032
00033 namespace keyvalue {
00034 namespace logger {
00035
00036 // Forward declarations
00037
00038 class Message;
00039
00049 class IgnoreFailure : private boost::noncopyable {
00050
00051 protected:
00052
00058   bool
00059   apply(const Message& message) const;
00060
00061 }; // class IgnoreFailure
00062
00063 } // namespace logger
00064 } // namespace keyvalue
00065
00066 #endif // KEYVALUE_IGNORE_FAILURE_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/policy/IgnorePrefix.h Source File

  • File List
  • File Members
keyvalue » sys » logger » policy

IgnorePrefix.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_SYS_LOGGER_POLICY_IGNOREPREFIX_H_
00029 #define KEYVALUE_SYS_LOGGER_POLICY_IGNOREPREFIX_H_
00030
00031 #include <boost/utility.hpp>
00032
00033 namespace keyvalue {
00034 namespace logger {
00035
00036 // Forward declarations
00037
00038 class Message;
00039
00046 class IgnorePrefix : private boost::noncopyable {
00047
00048 protected:
00049
00050   IgnorePrefix();
00051
00052   bool
00053   apply(const Message&) const;
00054
00055 }; // class IgnorePrefix
00056
00057 } // namespace logger
00058 } // namespace keyvalue
00059
00060 #endif // KEYVALUE_SYS_LOGGER_POLICY_IGNOREPREFIX_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/specific/Imports.h Source File

  • File List
  • File Members
keyvalue » key » specific

Imports.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_SPECIFIC_IMPORTS_H_
00029 #define KEYVALUE_KEY_SPECIFIC_IMPORTS_H_
00030
00031 #include "keyvalue/extern/String.h"
00032 #include "keyvalue/key/converter/StdVector.h"
00033 #include "keyvalue/key/Traits.h"
00034
00035 namespace keyvalue {
00036 namespace key {
00037
00045 class Imports : public Traits<string, StdVector> {
00046
00047 public:
00048
00052   Imports();
00053
00054 }; // class Imports
00055
00056 } // namespace key
00057 } // namespace keyvalue
00058
00059 #endif // KEYVALUE_KEY_SPECIFIC_IMPORTS_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/monotone/Increasing.h Source File

  • File List
  • File Members
keyvalue » key » generic » monotone

Increasing.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_GENERIC_MONOTONE_INCREASING_H_
00029 #define KEYVALUE_KEY_GENERIC_MONOTONE_INCREASING_H_
00030
00031 namespace keyvalue {
00032 namespace key {
00033
00042 class Increasing {
00043
00044 public:
00045
00058   template <typename ElementType>
00059   static bool
00060   check(const ElementType& x, const ElementType& y);
00061
00067   static const char*
00068   getName();
00069
00070 }; // class Increasing
00071
00072 } // namespace key
00073 } // namespace keyvalue
00074
00075 #endif // KEYVALUE_KEY_GENERIC_MONOTONE_INCREASING_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/util/IsBasic.h Source File

  • File List
  • File Members
keyvalue » util

IsBasic.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_UTIL_ISBASIC_H_
00030 #define KEYVALUE_UTIL_ISBASIC_H_
00031
00032 #include <boost/type_traits/is_enum.hpp>
00033
00034 #include "keyvalue/extern/String.h"
00035 #include "keyvalue/extern/Ptime.h"
00036
00037 namespace keyvalue {
00038 namespace util {
00039
00052 template <typename ElementType>
00053 struct IsBasic {
00054   enum { value_ = 0 };
00055 };
00056
00057 template <>
00058 struct IsBasic<bool> {
00059   enum { value_ = 1 };
00060 };
00061
00062 template <>
00063 struct IsBasic<double> {
00064   enum { value_ = 1 };
00065 };
00066
00067 template <>
00068 struct IsBasic<string> {
00069   enum { value_ = 1 };
00070 };
00071
00072 template <>
00073 struct IsBasic<ptime> {
00074   enum { value_ = 1 };
00075 };
00076
00077 template <>
00078 struct IsBasic<unsigned int> {
00079   enum { value_ = 1 };
00080 };
00081
00094 template <typename ElementType>
00095 struct IsBasicOrEnum {
00096   enum { value_ = (boost::is_enum<ElementType>::value ||
00097     IsBasic<ElementType>::value_ ? 1 : 0) };
00098 };
00099
00100 } // namespace util
00101 } // namespace keyvalue
00102
00103 #endif // KEYVALUE_UTIL_ISBASIC_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/Matrix.h Source File

  • File List
  • File Members
keyvalue » key » generic

Matrix.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_KEY_GENERIC_MATRIX_H_
00030 #define KEYVALUE_KEY_GENERIC_MATRIX_H_
00031
00032 #include "keyvalue/extern/String.h"
00033 #include "keyvalue/key/converter/StdMatrix.h"
00034 #include "keyvalue/key/Traits.h"
00035
00036 namespace keyvalue {
00037 namespace key {
00038
00046 template<typename ElementType>
00047 class Matrix : public Traits<ElementType, StdMatrix> {
00048
00049 public:
00050
00054   explicit
00055   Matrix(const string& name);
00056
00065   Matrix(const string& name, size_t nRows, size_t nCols_);
00066
00067 private:
00068
00069 private :
00070
00079   void
00080   checkSize(size_t nRows, size_t nCols) const;
00081
00082   size_t nRows_;
00083   size_t nCols_;
00084
00085 }; // class Matrix
00086
00087 /*--------------------------------------------------------------------------
00088  * Matrix()
00089  *------------------------------------------------------------------------*/
00090
00091 template<typename ElementType>
00092 Matrix<ElementType>::Matrix(const string& name) : Matrix::Traits_(name),
00093   nRows_(0), nCols_(0) {
00094 }
00095
00096 template<typename ElementType>
00097 Matrix<ElementType>::Matrix(const string& name, const size_t nRows,
00098   const size_t nCols) : Matrix::Traits_(name), nRows_(nRows), nCols_(nCols)
00099 {
00100 }
00101
00102 /*--------------------------------------------------------------------------
00103  * checkSize()
00104  *------------------------------------------------------------------------*/
00105
00106 template<typename ElementType>
00107 void
00108 Matrix<ElementType>::checkSize(const size_t nRows, const size_t nCols) const
00109 {
00110   if (nRows_ != 0 && nRows_ != nRows)
00111     throw RuntimeError() & "Matrix assigned to key '" & Key::getName() &
00112       "' has wrong number of rows! Expecting " & nRows_ & " got " & nRows &
00113       ".";
00114
00115   if (nCols_ != 0 && nCols_ != nCols)
00116     throw RuntimeError() & "Matrix assigned to key '" & Key::getName() &
00117       "' has wrong number of columns! Expecting " & nCols_ & " got " & nCols
00118       & ".";
00119 }
00120
00121 } // namespace key
00122 } // namespace keyvalue
00123
00124 #endif // KEYVALUE_KEY_GENERIC_MATRIX_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/Single.h Source File

  • File List
  • File Members
keyvalue » key » generic

Single.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_KEY_GENERIC_SINGLE_H_
00030 #define KEYVALUE_KEY_GENERIC_SINGLE_H_
00031
00032 #include "keyvalue/extern/String.h"
00033 #include "keyvalue/key/converter/StdSingle.h"
00034 #include "keyvalue/key/Traits.h"
00035
00036 namespace keyvalue {
00037 namespace key {
00038
00046 template<typename ElementType>
00047 class Single : public Traits<ElementType> {
00048
00049 public:
00050
00054   explicit
00055   Single(const string& name);
00056
00057 }; // class Single
00058
00059 /*--------------------------------------------------------------------------
00060  * Single()
00061  *------------------------------------------------------------------------*/
00062
00063 template<typename ElementType>
00064 Single<ElementType>::Single(const string& name) : Single::Traits_(name) {
00065 }
00066
00067 } // namespace key
00068 } // namespace keyvalue
00069
00070 #endif // KEYVALUE_KEY_GENERIC_SINGLE_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/Vector.h Source File

  • File List
  • File Members
keyvalue » key » generic

Vector.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_KEY_GENERIC_VECTOR_H_
00030 #define KEYVALUE_KEY_GENERIC_VECTOR_H_
00031
00032 #include "keyvalue/extern/String.h"
00033 #include "keyvalue/key/converter/StdVector.h"
00034 #include "keyvalue/key/Traits.h"
00035
00036 namespace keyvalue {
00037 namespace key {
00038
00052 template<typename ElementType>
00053 class Vector : public Traits<ElementType, StdVector> {
00054
00055 public:
00056
00066   explicit
00067   Vector(const string& name, size_t size = 0);
00068
00069 private :
00070
00078   void
00079   checkSize(size_t size) const;
00080
00081   size_t size_;
00082
00083 }; // class Vector
00084
00085 /*--------------------------------------------------------------------------
00086  * Vector()
00087  *------------------------------------------------------------------------*/
00088
00089 template<typename ElementType>
00090 Vector<ElementType>::Vector(const string& name, const size_t size) :
00091   Vector::Traits_(name), size_(size) {
00092 }
00093
00094 /*--------------------------------------------------------------------------
00095  * checkSize()
00096  *------------------------------------------------------------------------*/
00097
00098 template<typename ElementType>
00099 void
00100 Vector<ElementType>::checkSize(const size_t size) const {
00101   if (size_ != 0 && size_ != size)
00102     throw RuntimeError() & "Invalid number of values assigned to key '" &
00103       Key::getName() & "'! Expecting " & size_ & " got " & size & "!";
00104 }
00105
00106 } // namespace key
00107 } // namespace keyvalue
00108
00109 #endif // KEYVALUE_KEY_GENERIC_VECTOR_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/specific/Processor.h Source File

  • File List
  • File Members
keyvalue » key » specific

Processor.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_SPECIFIC_PROCESSOR_H_
00029 #define KEYVALUE_KEY_SPECIFIC_PROCESSOR_H_
00030
00031 #include "keyvalue/extern/String.h"
00032 #include "keyvalue/key/Traits.h"
00033
00034 namespace keyvalue {
00035 namespace key {
00036
00044 class Processor : public Traits<string> {
00045
00046 public:
00047
00051   Processor();
00052
00053 }; // class Processor
00054
00055 } // namespace key
00056 } // namespace keyvalue
00057
00058 #endif // KEYVALUE_KEY_SPECIFIC_PROCESSOR_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/Key.h Source File

  • File List
  • File Members
keyvalue » key

Key.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_KEY_H_
00029 #define KEYVALUE_KEY_KEY_H_
00030
00031 #include <boost/noncopyable.hpp>
00032
00033 #include "keyvalue/extern/String.h"
00034
00035 namespace keyvalue {
00040 namespace key {
00041
00054 class Key : private boost::noncopyable {
00055
00056 public:
00057
00063   string
00064   getName() const;
00065
00071   void
00072   setName(const string& name);
00073
00074 protected:
00075
00081   Key(const string& name);
00082
00083   ~Key() {}
00084
00085 private:
00086
00087   string name_;
00088
00089 }; // class Key
00090
00091 } // namespace key
00092 } // namespace keyvalue
00093
00094 #endif // KEYVALUE_KEY_KEY_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/pattern/KeyInSingle.h Source File

  • File List
  • File Members
keyvalue » pattern

KeyInSingle.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_PATTERN_KEYINSINGLE_H_
00029 #define KEYVALUE_PATTERN_KEYINSINGLE_H_
00030
00031 #include "keyvalue/pattern/Pattern.h"
00032
00033 namespace keyvalue {
00034 namespace pattern {
00035
00045 class KeyInSingle : public Pattern {
00046
00047 public:
00048
00049   KeyInSingle();
00050
00051   bool
00052   parse(frontend::Queue& queue);
00053
00054   std::pair<string, value::Value>
00055   pop();
00056
00057   bool
00058   isEmpty() const;
00059
00060 private:
00061
00062   bool          isEmpty_;
00063   string        key_;
00064   value::Value  value_;
00065
00066 };  // class KeyInSingle
00067
00068 } // namespace pattern
00069 } // namespace keyvalue
00070
00071 #endif // KEYVALUE_PATTERN_KEYINSINGLE_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/pattern/KeysInMatrix.h Source File

  • File List
  • File Members
keyvalue » pattern

KeysInMatrix.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_PATTERN_KEYSINMATRIX_H_
00029 #define KEYVALUE_PATTERN_KEYSINMATRIX_H_
00030
00031 #include "keyvalue/extern/Vector.h"
00032 #include "keyvalue/pattern/Pattern.h"
00033
00034 namespace keyvalue {
00035 namespace pattern {
00036
00056 class KeysInMatrix : public Pattern {
00057
00058 public:
00059
00060   KeysInMatrix();
00061
00062   bool
00063   parse(frontend::Queue& queue);
00064
00065   std::pair<string, value::Value>
00066   pop();
00067
00068   bool
00069   isEmpty() const;
00070
00071 private:
00072
00073   size_t                                    next_;
00074   vector<std::pair<string, value::Value> >  data_;
00075
00087   bool
00088   check(const value::Matrix& matrix, bool transpose = false);
00089
00090 }; // class KeysInMatrix
00091
00092 } // namespace pattern
00093 } // namespace keyvalue
00094
00095 #endif // KEYVALUE_PATTERN_KEYSINMATRIX_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/pattern/KeysInVector.h Source File

  • File List
  • File Members
keyvalue » pattern

KeysInVector.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_PATTERN_KEYSINVECTOR_H_
00029 #define KEYVALUE_PATTERN_KEYSINVECTOR_H_
00030
00031 #include "keyvalue/extern/Vector.h"
00032 #include "keyvalue/pattern/Pattern.h"
00033
00034 namespace keyvalue {
00035 namespace pattern {
00036
00057 class KeysInVector : public Pattern {
00058
00059 public:
00060
00061   KeysInVector();
00062
00063   bool
00064   parse(frontend::Queue& queue);
00065
00066   std::pair<string, value::Value>
00067   pop();
00068
00069   bool
00070   isEmpty() const;
00071
00072 private:
00073
00074   size_t                                    next_;
00075   vector<std::pair<string, value::Value> >  data_;
00076
00077 }; // class KeysInVector
00078
00079 } // namespace pattern
00080 } // namespace keyvalue
00081
00082 #endif // KEYVALUE_PATTERN_KEYSINVECTOR_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/keyvalue.h Source File

  • File List
  • File Members
keyvalue

keyvalue.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUEKEYVALUE_H_
00029 #define KEYVALUEKEYVALUE_H_
00030
00035 namespace keyvalue {
00036
00051 } // namespace keyvalue
00052
00053 #endif // KEYVALUEKEYVALUE_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/exception/KV_ASSERT.h Source File

  • File List
  • File Members
keyvalue » sys » exception

KV_ASSERT.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_SYS_EXCEPTION_KV_ASSERT_H_
00029 #define KEYVALUE_SYS_EXCEPTION_KV_ASSERT_H_
00030
00031 #include "keyvalue/sys/exception/Exception.h"
00032
00053 #ifndef NDEBUG
00054 #define KV_ASSERT(cond, msg) {                                             \
00055   if (!(cond))                                                             \
00056     throw ::keyvalue::LogicError() & __FILE__ & " (" & __LINE__ & ") :\n" &\
00057       msg;                                                                 \
00058 }
00059 #else
00060 #define KV_ASSERT(cond, msg) ;
00061 #endif
00062
00063 #endif // KEYVALUE_SYS_EXCEPTION_KV_ASSERT_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/bound/Leq.h Source File

  • File List
  • File Members
keyvalue » key » generic » bound

Leq.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_GENERIC_BOUND_LEQ_H_
00029 #define KEYVALUE_KEY_GENERIC_BOUND_LEQ_H_
00030
00031 namespace keyvalue {
00032 namespace key {
00033
00046 template <typename ElementType>
00047 class Leq {
00048
00049 public:
00050
00056   explicit
00057   Leq(const ElementType& bound);
00058
00066   bool
00067   check(const ElementType& x) const;
00068
00074   const ElementType&
00075   getBound() const;
00076
00084   const char*
00085   getName() const;
00086
00087 private:
00088
00089   const ElementType bound_;
00090
00091 }; // class Leq
00092
00093 } // namespace key
00094 } // namespace keyvalue
00095
00096 #endif // KEYVALUE_KEY_GENERIC_BOUND_LEQ_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/bound/Less.h Source File

  • File List
  • File Members
keyvalue » key » generic » bound

Less.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_GENERIC_BOUND_LESS_H_
00029 #define KEYVALUE_KEY_GENERIC_BOUND_LESS_H_
00030
00031 namespace keyvalue {
00032 namespace key {
00033
00046 template <typename ElementType>
00047 class Less {
00048
00049 public:
00050
00056   explicit
00057   Less(const ElementType& bound);
00058
00066   bool
00067   check(const ElementType& x) const;
00068
00074   const ElementType&
00075   getBound() const;
00076
00083   const char*
00084   getName() const;
00085
00086 private:
00087
00088   const ElementType bound_;
00089
00090 }; // class Less
00091
00092 } // namespace key
00093 } // namespace keyvalue
00094
00095 #endif // KEYVALUE_KEY_GENERIC_BOUND_LESS_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/bridge/key/Level.h Source File

  • File List
  • File Members
keyvalue » bridge » key

Level.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_BRIDGE_KEY_LEVEL_H_
00029 #define KEYVALUE_BRIDGE_KEY_LEVEL_H_
00030
00031 #include "keyvalue/key/Traits.h"
00032
00033 namespace keyvalue {
00034 namespace key {
00035
00043 class Level : public Traits<unsigned int> {
00044
00045 public:
00046
00050   Level();
00051
00052 }; // class Level
00053
00054 } // namespace key
00055 } // namespace keyvalue
00056
00057 #endif // KEYVALUE_BRIDGE_KEY_LEVEL_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/util/Lexical.h Source File

  • File List
  • File Members
keyvalue » util

Lexical.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_UTIL_LEXICAL_H_
00029 #define KEYVALUE_UTIL_LEXICAL_H_
00030
00031 namespace keyvalue {
00032 namespace util {
00033
00065 template <typename From, typename To>
00066 To
00067 Lexical(const From& input);
00068
00069 } // namespace util
00070 } // namespace keyvalue
00071
00072 #endif // KEYVALUE_UTIL_LEXICAL_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/frontend/LexicalToolKit.h Source File

  • File List
  • File Members
keyvalue » frontend

LexicalToolKit.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_LEXICAL_TOOL_KIT_H_
00029 #define KEYVALUE_LEXICAL_TOOL_KIT_H_
00030
00031 #include <boost/utility.hpp>
00032
00033 #include "keyvalue/extern/String.h"
00034 #include "keyvalue/extern/Ptime.h"
00035 #include "keyvalue/sys/exception/Exception.h"
00036 #include "keyvalue/util/Lexical.h"
00037
00038 namespace keyvalue {
00039 namespace frontend {
00040
00071 class LexicalToolKit : private boost::noncopyable {
00072
00073 public:
00074
00080   LexicalToolKit();
00081
00087   enum IO { none = 0x0, input = 0x1, output = 0x2, both = 0x3};
00088
00102   template <typename From, typename To>
00103   struct Helper {
00104
00105     // The converter's signature
00106     typedef To (*Type_)(const From&);
00107
00108     // A pointer to LexicalToolKit's member which holds the corresponding
00109     // conversion function pointer.
00110     static Type_ LexicalToolKit::* converter_;
00111
00112     // A pointer to the LexicalToolKit member which holds the corresponding
00113     // direction flag.
00114     static IO    LexicalToolKit::* io_;
00115   };
00116
00137   template <typename From, typename To>
00138   void
00139   set(IO io, typename Helper<From, To>::Type_ converter = util::Lexical);
00140
00156   template <typename From, typename To>
00157   bool
00158   isEnabled(IO io) const;
00159
00166   class Failure : public RuntimeError {
00167   };
00168
00193   template <typename To, typename From>
00194   To
00195   convert(From input) const;
00196
00197 private:
00198
00207 #define KV_LEXICAL_TOOL_KIT_PAIR(From, To) \
00208   Helper<From, To>::Type_ From##2##To##_; \
00209   IO                      From##2##To##_io_;
00210
00211 #include "keyvalue/frontend/LexicalToolKitPairs.h"
00212 #undef KV_LEXICAL_TOOL_KIT_PAIR
00213
00221   char endInitList;
00222
00223 }; // class LexicalToolKit
00224
00225 } // namespace frontend
00226 } // namespace keyvalue
00227
00228 #endif // KEYVALUE_LEXICAL_TOOL_KIT_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/frontend/LexicalToolKitPairs.h Source File

  • File List
  • File Members
keyvalue » frontend

LexicalToolKitPairs.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifdef KV_LEXICAL_TOOL_KIT_PAIR
00029 KV_LEXICAL_TOOL_KIT_PAIR(double, bool  )
00030 KV_LEXICAL_TOOL_KIT_PAIR(bool  , double)
00031 KV_LEXICAL_TOOL_KIT_PAIR(string, bool  )
00032 KV_LEXICAL_TOOL_KIT_PAIR(bool  , string)
00033 KV_LEXICAL_TOOL_KIT_PAIR(ptime , double)
00034 KV_LEXICAL_TOOL_KIT_PAIR(double, ptime )
00035 KV_LEXICAL_TOOL_KIT_PAIR(string, double)
00036 KV_LEXICAL_TOOL_KIT_PAIR(double, string)
00037 KV_LEXICAL_TOOL_KIT_PAIR(ptime , string)
00038 KV_LEXICAL_TOOL_KIT_PAIR(string, ptime )
00039 #endif
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/Logger.h Source File

  • File List
  • File Members
keyvalue » sys » logger

Logger.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_SYS_LOGGER_LOGGER_H_
00029 #define KEYVALUE_SYS_LOGGER_LOGGER_H_
00030
00031 namespace keyvalue {
00032
00033 // Forward declarations
00034
00035 class Message;
00036
00040 namespace logger {
00041
00055 class Logger {
00056
00057 public:
00058
00059   enum Device { Console, File, Standard };
00060
00061   virtual
00062   ~Logger();
00063
00069   virtual unsigned int
00070   getLevel() const = 0;
00071
00077   virtual void
00078   setLevel(unsigned int level) = 0;
00079
00090   virtual bool
00091   log(const Message& message) = 0;
00092
00093 }; // class Logger
00094
00095 }  // namespace logger
00096 }  // namespace keyvalue
00097
00098 #endif // KEYVALUE_SYS_LOGGER_LOGGER_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/LoggerImpl.h Source File

  • File List
  • File Members
keyvalue » sys » logger

LoggerImpl.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_SYS_LOGGER_LOGGERIMPL_H_
00030 #define KEYVALUE_SYS_LOGGER_LOGGERIMPL_H_
00031
00032 #include "keyvalue/bridge/Bridge.h"
00033 #include "keyvalue/sys/logger/Logger.h"
00034 #include "keyvalue/sys/logger/policy/AddPrefix.h"
00035 #include "keyvalue/sys/logger/policy/ForwardToGlobalLogger.h"
00036 #include "keyvalue/sys/logger/policy/IgnoreColor.h"
00037 #include "keyvalue/sys/message/MessageImpl.h"
00038
00039 namespace keyvalue {
00040 namespace logger {
00041
00055 template <typename PrefixPolicy = AddPrefix,
00056   typename ColorPolicy = IgnoreColor,
00057   typename SafetyPolicy = ForwardToGlobalLogger>
00058
00059 class LoggerImpl : public Logger, private PrefixPolicy, private ColorPolicy,
00060   private SafetyPolicy {
00061
00062 public:
00063
00064   typedef LoggerImpl<PrefixPolicy, ColorPolicy, SafetyPolicy> LoggerImpl_;
00065
00066   unsigned int
00067   getLevel() const;
00068
00069   void
00070   setLevel(unsigned int level);
00071
00072   bool
00073   log(const Message& message);
00074
00075 protected:
00076
00077   LoggerImpl(unsigned int level);
00078
00087   bool
00088   sendHeader();
00089
00090 private:
00091
00092   unsigned int level_;
00093
00109   bool
00110   process(const Message& message);
00111
00121   virtual bool
00122   send(const string& message) = 0;
00123
00124 }; // class LoggerImpl
00125
00126 /*--------------------------------------------------------------------------
00127  * getLevel()
00128  *------------------------------------------------------------------------*/
00129
00130 template <typename PrefixPolicy, typename ColorPolicy,
00131   typename SafetyPolicy>
00132 unsigned int
00133 LoggerImpl<PrefixPolicy, ColorPolicy, SafetyPolicy>::getLevel() const {
00134   return level_;
00135 }
00136
00137 /*--------------------------------------------------------------------------
00138  * setLevel()
00139  *------------------------------------------------------------------------*/
00140
00141 template <typename PrefixPolicy, typename ColorPolicy,
00142   typename SafetyPolicy>
00143 void
00144 LoggerImpl<PrefixPolicy, ColorPolicy, SafetyPolicy>::setLevel
00145   (const unsigned int level) {
00146
00147   level_ = level;
00148 }
00149
00150 /*--------------------------------------------------------------------------
00151  * log()
00152  *------------------------------------------------------------------------*/
00153
00154 template <typename PrefixPolicy, typename ColorPolicy,
00155   typename SafetyPolicy>
00156 bool
00157 LoggerImpl<PrefixPolicy, ColorPolicy, SafetyPolicy>::log
00158   (const Message& message) {
00159
00160   if (!dynamic_cast<const Error *>(&message) && message.getLevel() >=level_)
00161     return true;
00162   return process(message);
00163 }
00164
00165 /*--------------------------------------------------------------------------
00166  * LoggerImpl()
00167  *------------------------------------------------------------------------*/
00168
00169 template <typename PrefixPolicy, typename ColorPolicy,
00170   typename SafetyPolicy>
00171 LoggerImpl<PrefixPolicy, ColorPolicy, SafetyPolicy>::LoggerImpl
00172   (const unsigned int level) : level_(level) {
00173 }
00174
00175 /*--------------------------------------------------------------------------
00176  * sendHeader()
00177  *------------------------------------------------------------------------*/
00178
00179 template <typename PrefixPolicy, typename ColorPolicy,
00180   typename SafetyPolicy>
00181 bool
00182 LoggerImpl<PrefixPolicy, ColorPolicy, SafetyPolicy>::sendHeader() {
00183   return send(Bridge::getInstance().getCompleteInfo()) && send("\n\n");
00184 }
00185
00186 /*--------------------------------------------------------------------------
00187  * process()
00188  *------------------------------------------------------------------------*/
00189
00190 template <typename PrefixPolicy, typename ColorPolicy,
00191   typename SafetyPolicy>
00192 bool
00193 LoggerImpl<PrefixPolicy, ColorPolicy, SafetyPolicy>::process
00194   (const Message& message) {
00195
00196   if (ColorPolicy::apply(message) && PrefixPolicy::apply(message) &&
00197     send(message.getString() + '\n'))
00198     return true;
00199
00200   return SafetyPolicy::apply(this, message);
00201 }
00202
00203 } // namespace logger
00204 } // namespace keyvalue
00205
00206 #endif // KEYVALUE_SYS_LOGGER_LOGGERIMPL_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/message/Message.h Source File

  • File List
  • File Members
keyvalue » sys » message

Message.h

Go to the documentation of this file.
00001 /************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_SYS_MESSAGE_H_
00029 #define KEYVALUE_SYS_MESSAGE_H_
00030
00031 #include <iosfwd>
00032 #include <sstream>
00033
00034 #include "keyvalue/extern/String.h"
00035 #include "keyvalue/sys/logger/ConsoleColors.h"
00036
00037 namespace keyvalue {
00038
00049 class Message {
00050
00051 public:
00052
00053   virtual ~Message();
00054
00060   unsigned int
00061   getLevel() const;
00062
00068   string
00069   getString() const;
00070
00076   virtual const string&
00077   getPrefix() const = 0;
00078
00084   virtual logger::Color
00085   getColor() const = 0;
00086
00121   template <typename DataType>
00122   Message&
00123   operator&(const DataType& data);
00124
00125 protected:
00126
00132   explicit
00133   Message(unsigned int level);
00134
00135   Message(const Message& orig);
00136
00137   struct Traits_ {
00138     string        prefix_;
00139     logger::Color color_;
00140   };
00141
00142   static const Traits_ traits_[];
00143
00144 private:
00145
00146   unsigned int                level_;
00147   mutable std::ostringstream  buf_;
00148
00149   // Non assignable.
00150   Message&
00151   operator=(const Message& orig);
00152
00153 }; // class Message
00154
00160 std::ostream&
00161 operator<<(std::ostream& os, const Message& message);
00162
00163 /*--------------------------------------------------------------------------
00164  * operator&()
00165  *------------------------------------------------------------------------*/
00166
00167 template <typename DataType>
00168 Message&
00169 Message::operator&(const DataType& data) {
00170   buf_ << data;
00171   return *this;
00172 }
00173
00174 } // namespace keyvalue
00175
00176 #endif // KEYVALUE_SYS_MESSAGE_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/message/MessageImpl.h Source File

  • File List
  • File Members
keyvalue » sys » message

MessageImpl.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_SYS_MESSAGEIMPL_H_
00030 #define KEYVALUE_SYS_MESSAGEIMPL_H_
00031
00032 #include <boost/static_assert.hpp>
00033
00034 #include "keyvalue/sys/message/Message.h"
00035
00036 namespace keyvalue {
00037
00060 template <unsigned int id>
00061 class MessageImpl : public Message {
00062
00063 public:
00064
00065   MessageImpl() : Message(0) {
00074     BOOST_STATIC_ASSERT(id < 2);
00075   }
00076
00077   explicit
00078   MessageImpl(unsigned int level);
00079
00085   const string&
00086   getPrefix() const;
00087
00093   logger::Color
00094   getColor() const;
00095
00096 private:
00097
00098   // Non assignable.
00099   Message&
00100   operator=(const MessageImpl& orig);
00101
00102 }; // class MessageImpl
00103
00113 typedef MessageImpl<0> Error;
00114
00124 typedef MessageImpl<1> Logic;
00125
00135 typedef MessageImpl<2> Info;
00136
00146 typedef MessageImpl<3> Warning;
00147
00157 typedef MessageImpl<4> Report;
00158
00168 typedef MessageImpl<5> Debug;
00169
00170 } // namespace keyvalue
00171
00172 #endif // KEYVALUE_SYS_MESSAGEIMPL_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/Processor.h Source File

  • File List
  • File Members
keyvalue » mngt

Processor.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_MNGT_PROCESSOR_H_
00029 #define KEYVALUE_MNGT_PROCESSOR_H_
00030
00031 #include <boost/utility.hpp>
00032
00033 #include "keyvalue/value/Result.h"
00034
00035 namespace keyvalue {
00036
00037 // Forward declarations
00038 class DataSet;
00039
00040 namespace value {
00041   class Variant;
00042 }
00043
00049 class Processor : private boost::noncopyable {
00050
00051 public:
00052
00053   virtual
00054   ~Processor();
00055
00061   virtual const char*
00062   getName() const = 0;
00063
00084   virtual value::Result
00085   getResult(const DataSet& data) const = 0;
00086
00107   virtual value::Result
00108   getResult(const value::Variant& data) const = 0;
00109
00110 }; // class Processor
00111
00112 } // namespace keyvalue
00113
00114 #endif // KEYVALUE_MNGT_PROCESSOR_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/MonotoneBoundedVector.h Source File

  • File List
  • File Members
keyvalue » key » generic

MonotoneBoundedVector.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_KEY_GENERIC_MONOTONEBOUNDEDVECTOR_H_
00030 #define KEYVALUE_KEY_GENERIC_MONOTONEBOUNDEDVECTOR_H_
00031
00032 #include "keyvalue/key/converter/StdVector.h"
00033 #include "keyvalue/key/generic/bound/NoBound.h"
00034 #include "keyvalue/key/Traits.h"
00035
00036 namespace keyvalue {
00037 namespace key {
00038
00113 template <typename ElementType, typename Monotone,
00114   template <typename> class Bound1 = NoBound,
00115   template <typename> class Bound2 = NoBound>
00116 class MonotoneBoundedVector: public Traits<ElementType, StdVector, NoMap> {
00117
00118 public:
00119
00129   explicit
00130   MonotoneBoundedVector(const string& name, size_t size = 0);
00131
00142   MonotoneBoundedVector(const string& name, const ElementType& bound1,
00143     size_t size = 0);
00144
00156   MonotoneBoundedVector(const string& name, const ElementType& bound1,
00157     const ElementType& bound2, size_t size = 0);
00158
00167   void
00168   checkSoFar(const StdVector<ElementType>& container) const;
00169
00179   void
00180   checkSize(size_t size) const;
00181
00182 private:
00183
00184   const size_t              size_;
00185   const Bound1<ElementType> bound1_;
00186   const Bound2<ElementType> bound2_;
00187
00188 }; // class MonotoneBoundedVector
00189
00190 /*--------------------------------------------------------------------------
00191  * MonotoneBoundedVector()
00192  *------------------------------------------------------------------------*/
00193
00194 template <typename ElementType, typename Monotone,
00195   template <typename> class Bound1, template <typename> class Bound2>
00196 MonotoneBoundedVector<ElementType, Monotone, Bound1,
00197   Bound2>::MonotoneBoundedVector(const string& name, size_t size)
00198   : MonotoneBoundedVector::Traits_(name), size_(size), bound1_(),
00199   bound2_() {
00200 }
00201
00202 template <typename ElementType, typename Monotone,
00203   template <typename> class Bound1, template <typename> class Bound2>
00204 MonotoneBoundedVector<ElementType, Monotone, Bound1,
00205   Bound2>::MonotoneBoundedVector(const string& name,
00206   const ElementType& bound1, size_t size)
00207   : MonotoneBoundedVector::Traits_(name), size_(size), bound1_(bound1),
00208   bound2_() {
00209 }
00210
00211 template <typename ElementType, typename Monotone,
00212   template <typename> class Bound1, template <typename> class Bound2>
00213 MonotoneBoundedVector<ElementType, Monotone, Bound1,
00214   Bound2>::MonotoneBoundedVector(const string& name,
00215   const ElementType& bound1, const ElementType& bound2, size_t size)
00216   : MonotoneBoundedVector::Traits_(name), size_(size), bound1_(bound1),
00217   bound2_(bound2) {
00218 }
00219
00220 /*--------------------------------------------------------------------------
00221  * checkSoFar()
00222  *------------------------------------------------------------------------*/
00223
00224 template <typename ElementType, typename Monotone,
00225   template <typename> class Bound1, template <typename> class Bound2>
00226 void
00227 MonotoneBoundedVector<ElementType, Monotone, Bound1, Bound2>::checkSoFar(
00228   const StdVector<ElementType>& container) const {
00229
00230   const std::vector<ElementType>& vector(*container.getOutput());
00231   const size_t size(vector.size());
00232
00233   // Check monotonicity
00234   if (size > 1 && !Monotone::check(vector[size-2], vector[size-1]))
00235     throw RuntimeError() & "Values for key '" & Key::getName() &
00236       "' must be in " & Monotone::getName() & " order. Got " &
00237       vector[size-2] & " followed by " & vector[size-1] & "!";
00238
00239   // Check boundness
00240   if (!bound1_.check(vector.back()))
00241     throw RuntimeError() & "Value for key '" & Key::getName() & "' must "
00242       "be " & bound1_.getName() & " " & bound1_.getBound() & ". Got " &
00243       vector.back() & "!";
00244
00245   if (!bound2_.check(vector.back()))
00246     throw RuntimeError() & "Value for key '" & Key::getName() & "' must "
00247       "be " & bound2_.getName() & " " & bound2_.getBound() & ". Got " &
00248       vector.back() & "!";
00249 }
00250
00251 /*--------------------------------------------------------------------------
00252  * checkSize()
00253  *------------------------------------------------------------------------*/
00254
00255 template <typename ElementType, typename Monotone,
00256   template <typename> class Bound1, template <typename> class Bound2>
00257 void
00258 MonotoneBoundedVector<ElementType, Monotone, Bound1, Bound2>::checkSize(
00259   size_t size) const {
00260
00261   if (size_ != 0 && size_ != size)
00262     throw RuntimeError() & "Invalid number of values assigned to key '" &
00263       Key::getName() & "'! Expecting " & size_ & " got " & size & "!";
00264 }
00265
00266 } // namespace key
00267 } // namespace keyvalue
00268
00269 #endif // KEYVALUE_KEY_GENERIC_MONOTONEBOUNDEDVECTOR_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Namespace List
  • Namespace Members
  • All
  • Functions
  • Enumerations
  • Color : keyvalue::logger
Generated on Sat Mar 20 14:15:21 2010 for KeyValue by doxygen 1.6.1


KeyValue: Class Members

  • Namespace List
  • Namespace Members
  • All
  • Functions
  • Enumerations
  • getKey() : keyvalue::pattern
  • intrusive_ptr_add_ref() : keyvalue::value
  • intrusive_ptr_release() : keyvalue::value
  • isKey() : keyvalue::pattern
  • Lexical() : keyvalue::util
  • operator&() : keyvalue::exception
  • operator<<() : keyvalue::value , keyvalue , keyvalue::exception
  • process() : keyvalue
  • tenor2ptime() : keyvalue::util
Generated on Sat Mar 20 14:15:21 2010 for KeyValue by doxygen 1.6.1


KeyValue: Namespace Index

  • Namespace List
  • Namespace Members

Namespace List

Here is a list of all documented namespaces with brief descriptions:
keyvalue | All functionalities of KeyValue library are inside this namespace
keyvalue::bridge | Pointers to processors (those used for registration into ProcessorMngr) belong to this namespace
keyvalue::exception | All exception functionalities are inside this namespace
keyvalue::frontend | All classes and functions needed by front-ends are inside this namespace
keyvalue::key | All key funcionalities, including key::Key, key::Traits, key mappings are inside this namespace
keyvalue::logger | All logger functionalities are inside this namespace
keyvalue::pattern | Key-value pattern recognition class are members of this namespace
keyvalue::util | Utility classes and functions are member of this namespace
keyvalue::value | All KeyValue containers belong to this namespace
Generated on Sat Mar 20 14:14:51 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/bound/NoBound.h Source File

  • File List
  • File Members
keyvalue » key » generic » bound

NoBound.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_GENERIC_BOUND_NOBOUND_H_
00029 #define KEYVALUE_KEY_GENERIC_BOUND_NOBOUND_H_
00030
00031 namespace keyvalue {
00032 namespace key {
00033
00043 template <typename ElementType>
00044 class NoBound {
00045
00046 public:
00047
00055   bool
00056   check(const ElementType& x) const;
00057
00069   const ElementType&
00070   getBound() const;
00071
00083   const char*
00084   getName() const;
00085
00086 }; // class NoBound
00087
00088 } // namespace key
00089 } // namespace keyvalue
00090
00091 #endif // KEYVALUE_KEY_GENERIC_BOUND_NOBOUND_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/map/NoMap.h Source File

  • File List
  • File Members
keyvalue » key » map

NoMap.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_MAP_NOMAP_H_
00029 #define KEYVALUE_KEY_MAP_NOMAP_H_
00030
00031 #include <boost/static_assert.hpp>
00032 #include <boost/type_traits/is_same.hpp>
00033
00034 #include "keyvalue/extern/String.h"
00035 #include "keyvalue/extern/Ptime.h"
00036 #include "keyvalue/key/Key.h"
00037
00038 namespace keyvalue {
00039
00040 // Forward declaration
00041
00042 namespace value {
00043 class Variant;
00044 }
00045
00046 namespace key {
00047
00065 template <typename OutputType>
00066 class NoMap {
00067
00068 public:
00069
00070   typedef OutputType OutputType_;
00071
00072   NoMap();
00073
00085   OutputType
00086   map(const value::Variant& variant) const;
00087
00088 private:
00089
00095   virtual string
00096   getName() const = 0;
00097
00098   typedef typename boost::is_same<OutputType, bool  >::type IsBool_;
00099   typedef typename boost::is_same<OutputType, double>::type IsDouble_;
00100   typedef typename boost::is_same<OutputType, ptime >::type IsPtime_;
00101   typedef typename boost::is_same<OutputType, string>::type IsString_;
00102   typedef typename boost::is_same<OutputType, unsigned int>::type IsUInt_;
00103
00104   /*
00105    ATTENTION: If you get a compiler error here about
00106
00107    'boost::STATIC_ASSERTION_FAILURE<x>'
00108
00109    this means that you are trying to instantiate PartialMap for an
00110    OutputType different of bool, double, string, ptime and unsigned int.
00111    */
00112   BOOST_STATIC_ASSERT(IsBool_::value || IsDouble_::value ||
00113     IsString_::value || IsPtime_::value || IsUInt_::value);
00114
00115 }; // class NoMap
00116
00117 } // namespace key
00118 } // namespace keyvalue
00119
00120 #endif // KEYVALUE_KEY_MAP_NOMAP_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/monotone/NonMonotone.h Source File

  • File List
  • File Members
keyvalue » key » generic » monotone

NonMonotone.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_GENERIC_MONOTONE_NONMONOTONE_H_
00029 #define KEYVALUE_KEY_GENERIC_MONOTONE_NONMONOTONE_H_
00030
00031 namespace keyvalue {
00032 namespace key {
00033
00041 class NonMonotone {
00042
00043 public:
00044
00057   template <typename ElementType>
00058   static bool
00059   check(const ElementType& x, const ElementType& y);
00060
00072   static const char*
00073   getName();
00074
00075 }; // class NonMonotone
00076
00077 } // namespace key
00078 } // namespace keyvalue
00079
00080 #endif // KEYVALUE_KEY_GENERIC_MONOTONE_NONMONOTONE_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/Nothing.h Source File

  • File List
  • File Members
keyvalue » value

Nothing.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_VALUE_NOTHING_H_
00029 #define KEYVALUE_VALUE_NOTHING_H_
00030
00031 #include <iosfwd>
00032
00033 namespace keyvalue {
00034 namespace value {
00035
00041 class Nothing {
00045 };
00046
00052 std::ostream&
00053 operator<<(std::ostream& os, const Nothing& nothing);
00054
00055 } // namespace value
00056 } // namespace keyvalue
00057
00058 #endif // KEYVALUE_VALUE_NOTHING_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/util/NullDeleter.h Source File

  • File List
  • File Members
keyvalue » util

NullDeleter.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_UTIL_NULLDELETER_H_
00029 #define KEYVALUE_UTIL_NULLDELETER_H_
00030
00031 namespace keyvalue {
00032 namespace util {
00033
00039 class NullDeleter {
00040
00041 public:
00042
00043   void
00044   operator()(void const *) const;
00045
00046 private:
00047
00048   // Non assignable.
00049   NullDeleter&
00050   operator=(const NullDeleter& original);
00051
00052 };
00053
00054 } // namespace util
00055 } // namespace keyvalue
00056
00057 #endif // KEYVALUE_UTIL_NULLDELETER_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/map/ObjectMap.h Source File

  • File List
  • File Members
keyvalue » key » map

ObjectMap.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_KEY_MAP_OBJECTMAP_H_
00030 #define KEYVALUE_KEY_MAP_OBJECTMAP_H_
00031
00032 #include "keyvalue/extern/String.h"
00033 #include "keyvalue/frontend/LexicalToolKit.h"
00034 #include "keyvalue/mngt/Builder.h"
00035 #include "keyvalue/mngt/DataSet.h"
00036 #include "keyvalue/mngt/Repository.h"
00037 #include "keyvalue/sys/exception/KV_ASSERT.h"
00038 #include "keyvalue/value/Variant.h"
00039
00040 namespace keyvalue {
00041 namespace key {
00042
00063 template <typename OutputType>
00064 class ObjectMap {
00065
00066 public:
00067
00068   typedef shared_ptr<OutputType> OutputType_;
00069
00070   ObjectMap();
00071
00079   shared_ptr<OutputType>
00080   map(const value::Variant& variant) const;
00081
00082 private:
00083
00089   virtual string
00090   getName() const = 0;
00091
00092 }; // class ObjectMap
00093
00094 /*--------------------------------------------------------------------------
00095  * ObjectMap()
00096  *------------------------------------------------------------------------*/
00097
00098 template<typename OutputType>
00099 ObjectMap<OutputType>::ObjectMap() {
00100 }
00101
00102 /*--------------------------------------------------------------------------
00103  * map()
00104  *------------------------------------------------------------------------*/
00105
00106 template<typename OutputType>
00107 shared_ptr<OutputType>
00108 ObjectMap<OutputType>::map(const value::Variant& variant) const {
00109
00110   Builder<OutputType>& builder(Builder<OutputType>::getInstance());
00111
00112   value::Result result;
00113
00114   // Try to get result from a DataSet (whose name is stored by variant)
00115   if (variant.is<string>(frontend::LexicalToolKit::input)) {
00116
00117     const string&
00118       name(variant.get<string>(frontend::LexicalToolKit::input));
00119
00120     try {
00121
00122       shared_ptr<const DataSet>
00123         data(Repository::getInstance().getDataSet(name));
00124
00125       result = data->process(builder);
00126
00127       const value::ObjectPtr object(result.getObjectPtr());
00128       KV_ASSERT(object, "value::Result must be non null ObjectPtr!");
00129       return static_pointer_cast<OutputType>(object);
00130     }
00131
00132     catch(Repository::NotFound& error) {
00133       if (error.getName() != name)
00134         throw;
00135     }
00136   }
00137
00138   // Try to get result from variant
00139   return builder.getObject(variant);
00140 }
00141
00142 } // namespace key
00143 } // namespace keyvalue
00144
00145 #endif // KEYVALUE_KEY_MAP_OBJECTMAP_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/Parent.h Source File

  • File List
  • File Members
keyvalue » value

Parent.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_VALUE_HIERARCHY_H_
00029 #define KEYVALUE_VALUE_HIERARCHY_H_
00030
00031 namespace keyvalue {
00032 namespace value {
00033
00114 #if DOXYGEN
00115 template <typename T>
00116 struct Parent {};
00117 #endif
00118
00119 } // namespace value
00120 } // namespace keyvalue
00121
00122 #endif // KEYVALUE_VALUE_HIERARCHY_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/map/PartialMap.h Source File

  • File List
  • File Members
keyvalue » key » map

PartialMap.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_MAP_PARTIALMAP_H_
00029 #define KEYVALUE_KEY_MAP_PARTIALMAP_H_
00030
00031 #include <boost/static_assert.hpp>
00032 #include <boost/type_traits/is_same.hpp>
00033
00034 #include "keyvalue/extern/String.h"
00035 #include "keyvalue/extern/Ptime.h"
00036 #include "keyvalue/key/Key.h"
00037
00038 namespace keyvalue {
00039
00040 // Forward declaration
00041
00042 namespace value {
00043 class Variant;
00044 }
00045
00046 namespace key {
00047
00074 template <typename OutputType>
00075 class PartialMap {
00076
00077 public:
00078
00079   typedef OutputType OutputType_;
00080
00081   PartialMap();
00082
00094   OutputType
00095   map(const value::Variant& variant) const;
00096
00106   virtual OutputType
00107   get(const string& name) const = 0;
00108
00109 private:
00110
00116   virtual string
00117   getName() const = 0;
00118
00119   typedef typename boost::is_same<OutputType, double>::type IsDouble_;
00120   typedef typename boost::is_same<OutputType, ptime>::type IsPtime_;
00121   typedef typename boost::is_same<OutputType, unsigned int>::type IsUInt_;
00122
00123   /*
00124    ATTENTION: If you get a compiler error here about
00125
00126    'boost::STATIC_ASSERTION_FAILURE<x>'
00127
00128    this means that you are trying to instantiate PartialMap policy for an
00129    OutputType different of double, ptime and unsigned int.
00130    */
00131   BOOST_STATIC_ASSERT(IsDouble_::value || IsPtime_::value ||
00132     IsUInt_::value);
00133
00134 }; // class PartialMap
00135
00136 } // namespace key
00137 } // namespace keyvalue
00138
00139 #endif // KEYVALUE_KEY_MAP_PARTIALMAP_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/pattern/Pattern.h Source File

  • File List
  • File Members
keyvalue » pattern

Pattern.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_PATTERN_PATTERN_H_
00030 #define KEYVALUE_PATTERN_PATTERN_H_
00031
00032 #include <boost/utility.hpp>
00033
00034 #include "keyvalue/extern/String.h"
00035 #include "keyvalue/value/Value.h"
00036
00037 namespace keyvalue {
00038
00039 // Forward declarations
00040
00041 namespace frontend {
00042   class Queue;
00043 }
00044
00049 namespace pattern {
00050
00063 class Pattern : private boost::noncopyable {
00064
00065 public:
00066
00079   virtual bool
00080   parse(frontend::Queue& queue) = 0;
00081
00093   virtual std::pair<string, value::Value>
00094   pop() = 0;
00095
00102   virtual bool
00103   isEmpty() const = 0;
00104
00105 protected:
00106
00116   class QueueRaii {
00117
00118   public:
00119
00126     QueueRaii(frontend::Queue& queue);
00127     ~QueueRaii();
00128
00129   private:
00130
00131     frontend::Queue& queue_;
00132
00133   }; // class QueueRaii
00134
00135 }; // class Pattern
00136
00153 bool
00154 isKey(const value::Variant& variant);
00155
00179 string
00180 getKey(const value::Variant& variant);
00181
00182 } // namespace pattern
00183 } // namespace keyvalue
00184
00185 #endif // KEYVALUE_PATTERN_PATTERN_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/Positive.h Source File

  • File List
  • File Members
keyvalue » key » generic

Positive.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_GENERIC_POSITIVE_H_
00029 #define KEYVALUE_KEY_GENERIC_POSITIVE_H_
00030
00031 #include "keyvalue/extern/String.h"
00032 #include "keyvalue/key/generic/bound/Geq.h"
00033 #include "keyvalue/key/generic/Bounded.h"
00034
00035 namespace keyvalue {
00036 namespace key {
00037
00043 class Positive :  public Bounded<double, Geq> {
00044
00045 public:
00046
00053   explicit
00054   Positive(const string& name);
00055
00056 }; // class Positive
00057
00058 } // namespace key
00059 } // namespace keyvalue
00060
00061 #endif // KEYVALUE_KEY_GENERIC_POSITIVE_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/process.h Source File

  • File List
  • File Members
keyvalue » mngt

process.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_MNGT_PROCESS_H_
00029 #define KEYVALUE_MNGT_PROCESS_H_
00030
00031 #include "keyvalue/extern/SharedPtr.h"
00032 #include "keyvalue/value/Value.h"
00033
00034 namespace keyvalue {
00035
00036 // Forward declarations
00037
00038 namespace frontend {
00039   class Queue;
00040 }
00041
00042 class DataSet;
00043
00060 value::Value
00061 process(frontend::Queue& data);
00062
00080 value::Value
00081 process(shared_ptr<DataSet> data);
00082
00083 } // namespace keyvalue
00084
00085 #endif // KEYVALUE_MNGT_PROCESS_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/specific/ProcessNow.h Source File

  • File List
  • File Members
keyvalue » key » specific

ProcessNow.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_SPECIFIC_PROCESSNOW_H_
00029 #define KEYVALUE_KEY_SPECIFIC_PROCESSNOW_H_
00030
00031 #include "keyvalue/key/Traits.h"
00032
00033 namespace keyvalue {
00034 namespace key {
00035
00043 class ProcessNow : public Traits<bool> {
00044
00045 public:
00046
00050   ProcessNow();
00051
00052 }; // class ProcessNow
00053
00054 } // namespace key
00055 } // namespace keyvalue
00056
00057 #endif // KEYVALUE_KEY_SPECIFIC_PROCESSNOW_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/ProcessorMngr.h Source File

  • File List
  • File Members
keyvalue » mngt

ProcessorMngr.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_MNGT_PROCESSORMNGR_H_
00029 #define KEYVALUE_MNGT_PROCESSORMNGR_H_
00030
00031 #include <map>
00032
00033 #include "keyvalue/extern/SharedPtr.h"
00034 #include "keyvalue/extern/String.h"
00035
00036 namespace keyvalue {
00037
00038 // Forward declarations
00039 class DataSet;
00040 class Processor;
00041 namespace value {
00042   class Variant;
00043 }
00044
00059 class ProcessorMngr {
00060
00061 public:
00062
00068   static ProcessorMngr&
00069   getInstance();
00070
00076   void
00077   add(const Processor* processor);
00078
00089   const Processor&
00090   getProcessor(const string& name) const;
00091
00092 private:
00093
00102   static const Processor* kvProcessors_[];
00103
00110   static const Processor* processors_[];
00111
00112   ProcessorMngr();
00113
00114   typedef std::map<string, const Processor*> MapType_;
00115   MapType_ map_;
00116
00117   bool dummy;
00118
00119 }; // class ProcessorMngr
00120
00121 } // namespace keyvalue
00122
00123 #endif // KEYVALUE_MNGT_PROCESSORMNGR_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/extern/Ptime.h Source File

  • File List
  • File Members
keyvalue » extern

Ptime.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_EXTERN_PTIME_H_
00029 #define KEYVALUE_EXTERN_PTIME_H_
00030
00031 #ifdef _MSC_VER
00032 #pragma warning( push )
00033 #pragma warning( disable : 4224 )
00034 #endif
00035
00036 // Prevent use of boost binaries
00037 #define BOOST_ALL_NO_LIB
00038 #include <boost/date_time/posix_time/posix_time.hpp>
00039
00040 #ifdef _MSC_VER
00041 #pragma warning( pop )
00042 #endif
00043
00044 namespace keyvalue {
00045
00046   using namespace boost::posix_time;
00047   using namespace boost::gregorian;
00048
00049 } // namespace keyvalue
00050
00051 #endif // KEYVALUE_EXTERN_PTIME_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/frontend/Queue.h Source File

  • File List
  • File Members
keyvalue » frontend

Queue.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_FRONTEND_QUEUE_H_
00029 #define KEYVALUE_FRONTEND_QUEUE_H_
00030
00031 #include <boost/utility.hpp>
00032
00033 #include "keyvalue/extern/String.h"
00034 #include "keyvalue/value/Value.h"
00035
00036 namespace keyvalue {
00037 namespace frontend {
00038
00053 class Queue : private boost::noncopyable {
00054
00055 public:
00056
00057   virtual string
00058   getName() const = 0;
00059
00067   virtual bool
00068   isEmpty() const = 0;
00069
00082   virtual value::Value
00083   pop() = 0;
00084
00091   virtual void
00092   remove() = 0;
00093
00100   virtual void
00101   putBack() = 0;
00102
00103 }; // class Queue
00104
00105 } // namespace frontend
00106 } // namespace keyvalue
00107
00108 #endif // KEYVALUE_FRONTEND_QUEUE_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/bridge/Register.h Source File

  • File List
  • File Members
keyvalue » bridge

Register.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00033 /*
00034  * Each entry in this file has the following format:
00035  *
00036  * PROCESSOR(identifier)
00037  *
00038  * where identifier is an \c extern initialized Processor pointer
00039  * pointing to the unique instance of a Processor.
00040  *
00041  * Below, two examples of how such pointers are initialized:
00042  * (Notice that the pointers must belong to \c namespace
00043  * keyvalue::bridge.)
00044  *
00045  * // Extract from keyvalue/bridge/processor/Logger.cpp
00046  *
00047  * namespace keyvalue {
00048  * namespace bridge {
00049  *   Processor* logger = &Builder<logger::Logger>::getInstance();
00050  *
00051  * // Extract from keyvalue/bridge/processor/Logger.cpp
00052  *
00053  * namespace keyvalue {
00054  * namespace bridge {
00055  *   class DataSetNames;
00056  *   Processor* dataSetNames = &Calculator<DataSetNames>::getInstance();
00057  */
00058
00059 #ifdef PROCESSOR
00060 PROCESSOR(deleteDataSets)
00061 PROCESSOR(listOfDataSets)
00062 PROCESSOR(logger)
00063 PROCESSOR(numberOfDataSets)
00064 #endif
00065
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/Repository.h Source File

  • File List
  • File Members
keyvalue » mngt

Repository.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_MNGT_REPOSITORY_H_
00029 #define KEYVALUE_MNGT_REPOSITORY_H_
00030
00031 #include <map>
00032
00033 #include <boost/utility.hpp>
00034
00035 #include "keyvalue/extern/SharedPtr.h"
00036 #include "keyvalue/sys/exception/Exception.h"
00037 #include "keyvalue/value/Vector.h"
00038
00039 namespace keyvalue {
00040
00041 // Forward declarations
00042
00043 class DataSet;
00044
00053 class Repository : private boost::noncopyable {
00054
00055 public:
00056
00062   static Repository&
00063   getInstance();
00064
00080   void
00081   add(shared_ptr<DataSet> dataSet);
00082
00091   bool
00092   erase(const string& name);
00093
00099   size_t
00100   clear();
00101
00110   shared_ptr<DataSet>
00111   find(const string& name) const;
00112
00122   shared_ptr<DataSet>
00123   getDataSet(const string& name) const;
00124
00130   size_t
00131   getSize() const;
00132
00139   value::Vector
00140   getList() const;
00141
00145   class NotFound : public RuntimeError {
00146
00147   public:
00148
00149     /***
00150      * @brief   Constructor stores the name of DataSet which was not found.
00151      *
00152      * @param   name  : Name of DataSet which was not found.
00153      */
00154     explicit
00155     NotFound(string name);
00156
00157     ~NotFound() throw();
00158
00159     /***
00160      * @brief   Gets the name of DataSet which was not found.
00161      *
00162      * @return  The name od DataSet which was not found.
00163      */
00164     const string&
00165     getName() const;
00166
00167   private:
00168
00169     const string name_;
00170   };
00171
00172 private:
00173
00174   typedef std::map <string, shared_ptr<DataSet> > Map_;
00175   typedef Map_::value_type                        Pair_;
00176   Map_                                            map_;
00177
00178   Repository();
00179
00180 }; // class Repository
00181
00182 } // namespace keyvalue
00183
00184 #endif // KEYVALUE_MNGT_REPOSITORY_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/Result.h Source File

  • File List
  • File Members
keyvalue » value

Result.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_VALUE_RESULT_H_
00029 #define KEYVALUE_VALUE_RESULT_H_
00030
00031 #include <iosfwd>
00032
00033 #include <boost/variant.hpp>
00034
00035 #include "keyvalue/extern/SharedPtr.h"
00036 #include "keyvalue/value/Value.h"
00037
00038 namespace keyvalue {
00039 namespace value {
00040
00053 typedef shared_ptr<void> ObjectPtr;
00054
00060 class Result {
00061
00062 public:
00063
00064   typedef boost::variant<ObjectPtr, Value> DataType_;
00065
00069   Result();
00070
00078   Result(const DataType_& data);
00079
00087   template<typename Rhs>
00088   Result(const Rhs& rhs);
00089
00099   template<typename Rhs>
00100   Result&
00101   operator=(const Rhs& rhs);
00102
00109   ObjectPtr
00110   getObjectPtr() const;
00111
00115   ObjectPtr
00116   getObjectPtr();
00117
00124   const Value*
00125   getValue() const;
00126
00130   Value*
00131   getValue();
00132
00133 private:
00134
00135   DataType_ data_;
00136
00137 }; // class Result
00138
00142 std::ostream&
00143 operator<<(std::ostream& os, const Result& rhs);
00144
00158 template<typename Rhs>
00159 struct Parent;
00160
00161 template<>
00162 struct Parent<Result::DataType_> {
00163   typedef Result Type_;
00164 };
00165
00166 template<>
00167 struct Parent<ObjectPtr> {
00168   typedef Result::DataType_ Type_;
00169 };
00170
00171 template<typename T>
00172 struct Parent<shared_ptr<T> > {
00173   typedef ObjectPtr Type_;
00174 };
00175
00176 template<typename T>
00177 struct Parent<T*> {
00178   typedef shared_ptr<T> Type_;
00179 };
00180
00181 template<>
00182 struct Parent<Value> {
00183   typedef Result::DataType_ Type_;
00184 };
00185
00186 /*--------------------------------------------------------------------------
00187  * Result()
00188  *------------------------------------------------------------------------*/
00189
00190 template<typename Rhs>
00191 Result::Result(const Rhs& rhs) :
00192   data_(Result(typename Parent<Rhs>::Type_(rhs)).data_) {
00197 }
00198
00199 /*--------------------------------------------------------------------------
00200  * operator=()
00201  *------------------------------------------------------------------------*/
00202
00203 template<typename Rhs>
00204 Result&
00205 Result::operator=(const Rhs& rhs) {
00210   return *this = typename Parent<Rhs>::Type_(rhs);
00211 }
00212
00213 } // namespace value
00214 } // namespace keyvalue
00215
00216 #endif // KEYVALUE_VALUE_RESULT_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/util/Saver.h Source File

  • File List
  • File Members
keyvalue » util

Saver.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_UTIL_SAVER_H_
00029 #define KEYVALUE_UTIL_SAVER_H_
00030
00031 #include <boost/utility.hpp>
00032
00033 namespace keyvalue {
00034 namespace util {
00035
00049 template <typename SavedType>
00050 class Saver : private boost::noncopyable {
00051
00052 public:
00053
00059   explicit
00060   Saver(SavedType& data);
00061
00070   Saver(SavedType& data, const SavedType& onExit);
00071
00072   ~Saver();
00073
00079   SavedType
00080   getSaved() const;
00081
00082 private:
00083
00084   SavedType& data_;
00085   SavedType  onExit_;
00086
00087 }; // class Saver
00088
00089 /*--------------------------------------------------------------------------
00090  * Saver()
00091  *------------------------------------------------------------------------*/
00092
00093 template <typename SavedType>
00094 Saver<SavedType>::Saver(SavedType& data) : data_(data), onExit_(data_) {
00095 }
00096
00097 template <typename SavedType>
00098 Saver<SavedType>::Saver(SavedType& data, const SavedType& onExit) :
00099   data_(data), onExit_(onExit) {
00100 }
00101
00102 /*--------------------------------------------------------------------------
00103  * ~Saver()
00104  *------------------------------------------------------------------------*/
00105
00106 template <typename SavedType>
00107 Saver<SavedType>::~Saver() {
00108   data_ = onExit_;
00109 }
00110
00111 /*--------------------------------------------------------------------------
00112  * Saver()
00113  *------------------------------------------------------------------------*/
00114
00115 template <typename SavedType>
00116 SavedType
00117 Saver<SavedType>::getSaved() const {
00118   return data_;
00119 }
00120
00121 } // namespace util
00122 } // namespace keyvalue
00123
00124 #endif // KEYVALUE_UTIL_SAVER_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/extern/SharedPtr.h Source File

  • File List
  • File Members
keyvalue » extern

SharedPtr.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_EXTERN_SHARED_PTR_H_
00029 #define KEYVALUE_EXTERN_SHARED_PTR_H_
00030
00031 #include <boost/shared_ptr.hpp>
00032 #include <boost/make_shared.hpp>
00033
00034 namespace keyvalue {
00035
00036   using boost::shared_ptr;
00037   using boost::static_pointer_cast;
00038   using boost::dynamic_pointer_cast;
00039   using boost::make_shared;
00040
00041 } // namespace keyvalue
00042
00043 #endif // KEYVALUE_EXTERN_SHARED_PTR_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/StdLogger.h Source File

  • File List
  • File Members
keyvalue » sys » logger

StdLogger.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_SYS_LOGGER_STDLOGGER_H_
00029 #define KEYVALUE_SYS_LOGGER_STDLOGGER_H_
00030
00031 #include "keyvalue/sys/logger/LoggerImpl.h"
00032
00038 namespace keyvalue {
00039 namespace logger {
00040
00041 class StdLogger : public LoggerImpl<> {
00042
00043 public:
00044
00045   explicit
00046   StdLogger(unsigned int level);
00047
00048 private:
00049
00050   bool
00051   send(const string& message);
00052
00053 }; // class StdLogger
00054
00055 } // namespace logger
00056 } // namespace keyvalue
00057
00058 #endif  // KEYVALUE_SYS_LOGGER _STDLOGGER_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/converter/StdMatrix.h Source File

  • File List
  • File Members
keyvalue » key » converter

StdMatrix.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_KEY_CONVERTER_STDMATRIX_H_
00030 #define KEYVALUE_KEY_CONVERTER_STDMATRIX_H_
00031
00032 #include "keyvalue/extern/SharedPtr.h"
00033 #include "keyvalue/extern/Vector.h"
00034 #include "keyvalue/sys/exception/KV_ASSERT.h"
00035 #include "keyvalue/value/Variant.h"
00036 #include "keyvalue/value/Matrix.h"
00037
00038 namespace keyvalue {
00039 namespace key {
00040
00058 template <typename ElementType>
00059 class StdMatrix {
00060
00061 public:
00062
00066   typedef value::Matrix InputType_;
00067
00074   typedef shared_ptr<std::vector<std::vector<ElementType> > > OutputType_;
00075
00088   StdMatrix(const InputType_& input, OutputType_* cache);
00089
00096   bool
00097   isEmpty() const;
00098
00104   value::Variant
00105   pop();
00106
00113   void
00114   insert(const ElementType& element);
00115
00121   OutputType_
00122   getOutput() const;
00123
00130   bool
00131   mustUpdate() const;
00132
00133 private:
00134
00135   const InputType_& input_;
00136   OutputType_       output_;
00137   OutputType_*      cache_;
00138   size_t            nRows_;
00139   size_t            nCols_;
00140   size_t            i_;
00141   size_t            j_;
00142   bool              mustUpdate_;
00143
00144 };
00145
00146 /*--------------------------------------------------------------------------
00147  * StdMatrix()
00148  *------------------------------------------------------------------------*/
00149
00150 template <typename ElementType>
00151 StdMatrix<ElementType>::StdMatrix(const InputType_& input,
00152   OutputType_* const cache) : input_(input), cache_(cache),
00153   output_(new std::vector<std::vector<ElementType> >),
00154   nRows_(input.getNRows()), nCols_(input.getNCols()), i_(0), j_(0),
00155   mustUpdate_(!cache) {
00156
00157   KV_ASSERT(nRows_ != 0 && nCols_ != 0, "Empty matrix given to StdMatrix!");
00158
00159   output_->reserve(nRows_);
00160   output_->push_back(std::vector<ElementType>());
00161   output_->back().reserve(nCols_);
00162
00163   mustUpdate_ = mustUpdate_ || (*cache_)->size() != nRows_ ||
00164     (*(*cache_))[0].size() != nCols_;
00165 }
00166
00167 /*--------------------------------------------------------------------------
00168  * end()
00169  *------------------------------------------------------------------------*/
00170
00171 template <typename ElementType>
00172 bool
00173 StdMatrix<ElementType>::isEmpty() const {
00174   return (j_ == nCols_ && i_ == nRows_ - 1);
00175 }
00176
00177 /*--------------------------------------------------------------------------
00178  * pop()
00179  *------------------------------------------------------------------------*/
00180
00181 template <typename ElementType>
00182 value::Variant
00183 StdMatrix<ElementType>::pop() {
00184
00185   KV_ASSERT(!isEmpty(), "All elements have been processed!");
00186
00187   if (j_ == nCols_) {
00188     j_ = 0;
00189     ++i_;
00190   }
00191
00192   return input_(i_, j_++);
00193 }
00194
00195 /*--------------------------------------------------------------------------
00196  * insert()
00197  *------------------------------------------------------------------------*/
00198
00199 template <typename ElementType>
00200 void
00201 StdMatrix<ElementType>::insert(const ElementType& element) {
00202
00203   if (output_->back().size() == nCols_) {
00204     output_->push_back(std::vector<ElementType>());
00205     output_->back().reserve(nCols_);
00206   }
00207
00208   output_->back().push_back(element);
00209
00210   KV_ASSERT(i_ < nRows_, "Calls to StdMatrix.pop() and StdMatrix.insert() "
00211     "must be intercalated!");
00212
00213   mustUpdate_ = mustUpdate_ ||
00214     (*(*cache_))[j_ = 0 ? i_-1 : i_][j_ = 0 ? nCols_-1 : j_-1] != element;
00215 }
00216
00217 /*--------------------------------------------------------------------------
00218  * getOutput()
00219  *------------------------------------------------------------------------*/
00220
00221 template <typename ElementType>
00222 typename StdMatrix<ElementType>::OutputType_
00223 StdMatrix<ElementType>::getOutput() const {
00224   return output_;
00225 }
00226
00227 /*--------------------------------------------------------------------------
00228  * mustUpdate()
00229  *------------------------------------------------------------------------*/
00230
00231 template <typename ElementType>
00232 bool
00233 StdMatrix<ElementType>::mustUpdate() const {
00234   return mustUpdate_;
00235 }
00236
00237 } // namespace key
00238 } // namespace keyvalue
00239
00240 #endif // KEYVALUE_KEY_CONVERTER_STDMATRIX_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/converter/StdSingle.h Source File

  • File List
  • File Members
keyvalue » key » converter

StdSingle.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_KEY_CONVERTER_STDSINGLE_H_
00030 #define KEYVALUE_KEY_CONVERTER_STDSINGLE_H_
00031
00032 #include "keyvalue/sys/exception/KV_ASSERT.h"
00033 #include "keyvalue/value/Single.h"
00034 #include "keyvalue/value/Variant.h"
00035
00036 namespace keyvalue {
00037 namespace key {
00038
00066 template <typename ElementType>
00067 class StdSingle {
00068
00069 public:
00070
00074   typedef value::Single InputType_;
00075
00082   typedef ElementType OutputType_;
00083
00096   StdSingle(const InputType_& input, OutputType_* cache);
00097
00104   bool
00105   isEmpty() const;
00106
00112   value::Variant
00113   pop();
00114
00121   void
00122   insert(const ElementType& element);
00123
00129   OutputType_
00130   getOutput() const;
00131
00138   bool
00139   mustUpdate() const;
00140
00141 private:
00142
00143   const InputType_&   input_;
00144   OutputType_* const  cache_;
00145   OutputType_         output_;
00146   bool                empty_;
00147   bool                mustUpdate_;
00148
00149 };
00150
00151 /*--------------------------------------------------------------------------
00152  * StdSingle()
00153  *------------------------------------------------------------------------*/
00154
00155 template <typename ElementType>
00156 StdSingle<ElementType>::StdSingle(const InputType_& input,
00157   OutputType_* const cache) : input_(input), cache_(cache), empty_(false),
00158   mustUpdate_(!cache) {
00159 }
00160
00161 /*--------------------------------------------------------------------------
00162  * isEmpty()
00163  *------------------------------------------------------------------------*/
00164
00165 template <typename ElementType>
00166 bool
00167 StdSingle<ElementType>::isEmpty() const {
00168   return empty_;
00169 }
00170
00171 /*--------------------------------------------------------------------------
00172  * pop()
00173  *------------------------------------------------------------------------*/
00174
00175 template <typename ElementType>
00176 value::Variant
00177 StdSingle<ElementType>::pop() {
00178   KV_ASSERT(!isEmpty(), "Element has been processed!");
00179   empty_ = true;
00180   return input_;
00181 }
00182
00183 /*--------------------------------------------------------------------------
00184  * insert()
00185  *------------------------------------------------------------------------*/
00186
00187 template <typename ElementType>
00188 void
00189 StdSingle<ElementType>::insert(const ElementType& element) {
00190   output_ = element;
00191   mustUpdate_ = mustUpdate_ || output_ == *cache_;
00192 }
00193
00194 /*--------------------------------------------------------------------------
00195  * getOutput()
00196  *------------------------------------------------------------------------*/
00197
00198 template <typename ElementType>
00199 typename StdSingle<ElementType>::OutputType_
00200 StdSingle<ElementType>::getOutput() const {
00201   return output_;
00202 }
00203
00204 /*--------------------------------------------------------------------------
00205  * getOutput()
00206  *------------------------------------------------------------------------*/
00207
00208 template <typename ElementType>
00209 bool
00210 StdSingle<ElementType>::mustUpdate() const {
00211   return mustUpdate_;
00212 }
00213
00214 } // namespace key
00215 } // namespace keyvalue
00216
00217 #endif // KEYVALUE_KEY_CONVERTER_STDSINGLE_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/converter/StdVector.h Source File

  • File List
  • File Members
keyvalue » key » converter

StdVector.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_KEY_CONVERTER_STDVECTOR_H_
00030 #define KEYVALUE_KEY_CONVERTER_STDVECTOR_H_
00031
00032 #include "keyvalue/extern/SharedPtr.h"
00033 #include "keyvalue/extern/Vector.h"
00034 #include "keyvalue/sys/exception/KV_ASSERT.h"
00035 #include "keyvalue/value/Variant.h"
00036 #include "keyvalue/value/Vector.h"
00037
00038 namespace keyvalue {
00039 namespace key {
00040
00057 template <typename ElementType>
00058 class StdVector {
00059
00060 public:
00061
00065   typedef value::Vector InputType_;
00066
00073   typedef shared_ptr<std::vector<ElementType> > OutputType_;
00074
00087   StdVector(const InputType_& input, OutputType_* cache);
00088
00095   bool
00096   isEmpty() const;
00097
00103   value::Variant
00104   pop();
00105
00112   void
00113   insert(const ElementType& element);
00114
00120   OutputType_
00121   getOutput() const;
00122
00129   bool
00130   mustUpdate() const;
00131
00132 private:
00133
00134   const InputType_&   input_;
00135   OutputType_          output_;
00136   OutputType_* const  cache_;
00137   const size_t        size_;
00138   size_t               i_;
00139   bool                mustUpdate_;
00140
00141 };
00142
00143 /*--------------------------------------------------------------------------
00144  * StdVector()
00145  *------------------------------------------------------------------------*/
00146
00147 template <typename ElementType>
00148 StdVector<ElementType>::StdVector(const InputType_& input,
00149   OutputType_* const cache) : input_(input),
00150   output_(new std::vector<ElementType>), cache_(cache),
00151   size_(input.getSize()), i_(0), mustUpdate_(!cache) {
00152
00153   output_->reserve(size_);
00154   mustUpdate_ = mustUpdate_ || size_ != (*cache_)->size();
00155 }
00156
00157 /*--------------------------------------------------------------------------
00158  * end()
00159  *------------------------------------------------------------------------*/
00160
00161 template <typename ElementType>
00162 bool
00163 StdVector<ElementType>::isEmpty() const {
00164   return i_ == size_;
00165 }
00166
00167 /*--------------------------------------------------------------------------
00168  * pop()
00169  *------------------------------------------------------------------------*/
00170
00171 template <typename ElementType>
00172 value::Variant
00173 StdVector<ElementType>::pop() {
00174   KV_ASSERT(!isEmpty(), "All elements have been processed!");
00175   return input_(i_++);
00176 }
00177
00178 /*--------------------------------------------------------------------------
00179  * insert()
00180  *------------------------------------------------------------------------*/
00181
00182 template <typename ElementType>
00183 void
00184 StdVector<ElementType>::insert(const ElementType& element) {
00185   output_->push_back(element);
00186   KV_ASSERT(i_ <= size_, "Calls to StdVector.pop() and StdVector.insert() "
00187     "must be intercalated!");
00188   mustUpdate_ = mustUpdate_ || (*(*cache_))[i_-1] != element;
00189 }
00190
00191 /*--------------------------------------------------------------------------
00192  * getOutput()
00193  *------------------------------------------------------------------------*/
00194
00195 template <typename ElementType>
00196 typename StdVector<ElementType>::OutputType_
00197 StdVector<ElementType>::getOutput() const {
00198   return output_;
00199 }
00200
00201 /*--------------------------------------------------------------------------
00202  * mustUpdate()
00203  *------------------------------------------------------------------------*/
00204
00205 template <typename ElementType>
00206 bool
00207 StdVector<ElementType>::mustUpdate() const {
00208   return mustUpdate_;
00209 }
00210
00211 } // namespace key
00212 } // namespace keyvalue
00213
00214 #endif // KEYVALUE_KEY_CONVERTER_STDVECTOR_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/monotone/StrictlyDecreasing.h Source File

  • File List
  • File Members
keyvalue » key » generic » monotone

StrictlyDecreasing.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_GENERIC_MONOTONE_STRICTLYDECREASING_H_
00029 #define KEYVALUE_KEY_GENERIC_MONOTONE_STRICTLYDECREASING_H_
00030
00031 namespace keyvalue {
00032 namespace key {
00033
00043 class StrictlyDecreasing {
00044
00045 public:
00046
00059   template <typename ElementType>
00060   static bool
00061   check(const ElementType& x, const ElementType& y);
00062
00068   static const char*
00069   getName();
00070
00071 }; // class StrictlyDecreasing
00072
00073 } // namespace key
00074 } // namespace keyvalue
00075
00076 #endif // KEYVALUE_KEY_GENERIC_MONOTONE_STRICTLYDECREASING_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/monotone/StrictlyIncreasing.h Source File

  • File List
  • File Members
keyvalue » key » generic » monotone

StrictlyIncreasing.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_GENERIC_MONOTONE_STRICTLYINCREASING_H_
00029 #define KEYVALUE_KEY_GENERIC_MONOTONE_STRICTLYINCREASING_H_
00030
00031 namespace keyvalue {
00032 namespace key {
00033
00043 class StrictlyIncreasing {
00044
00045 public:
00046
00059   template <typename ElementType>
00060   static bool
00061   check(const ElementType& x, const ElementType& y);
00062
00068   static const char*
00069   getName();
00070
00071 }; // class StrictlyIncreasing
00072
00073 } // namespace key
00074 } // namespace keyvalue
00075
00076 #endif // KEYVALUE_KEY_GENERIC_MONOTONE_STRICTLYINCREASING_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/generic/StrictlyPositive.h Source File

  • File List
  • File Members
keyvalue » key » generic

StrictlyPositive.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_KEY_GENERIC_STRICTLYPOSITIVE_H_
00029 #define KEYVALUE_KEY_GENERIC_STRICTLYPOSITIVE_H_
00030
00031 #include "keyvalue/extern/String.h"
00032 #include "keyvalue/key/generic/bound/Greater.h"
00033 #include "keyvalue/key/generic/Bounded.h"
00034
00035 namespace keyvalue {
00036 namespace key {
00037
00043 class StrictlyPositive : public Bounded<double, Greater> {
00044
00045 public:
00046
00050   explicit
00051   StrictlyPositive(const string& name);
00052
00053 }; // class StrictlyPositive
00054
00055 } // namespace key
00056 } // namespace keyvalue
00057
00058 #endif // KEYVALUE_KEY_GENERIC_STRICTLYPOSITIVE_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/extern/String.h Source File

  • File List
  • File Members
keyvalue » extern

String.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_EXTERN_STRING_H_
00029 #define KEYVALUE_EXTERN_STRING_H_
00030
00031 #include <string>
00032
00033 namespace keyvalue {
00034
00035   using std::string;
00036
00037 } // namespace keyvalue
00038
00039 #endif // KEYVALUE_EXTERN_STRING_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Graph Member List

This is the complete list of members for Graph, including all inherited members.
first_ (defined in Graph) | Graph
Graph() (defined in Graph) | Graph
Graph(shared_ptr< Record > first, shared_ptr< Record > last, bool hasChanged) (defined in Graph) | Graph
hasChanged_ (defined in Graph) | Graph
last_ (defined in Graph) | Graph
Generated on Sat Mar 20 14:14:52 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Record Member List

This is the complete list of members for Record, including all inherited members.
cache_ (defined in Record) | Record |
driver_ (defined in Record) | Record |
isBusy_ (defined in Record) | Record |
keyType_ (defined in Record) | Record |
next_ (defined in Record) | Record |
rawValue_ (defined in Record) | Record |
Record(const value::Value &rawValue) (defined in Record) | Record | [explicit]
Record(WeakPtr next, WeakPtr driver) (defined in Record) | Record |
WeakPtr typedef (defined in Record) | Record |
Generated on Sat Mar 20 14:14:52 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

Helper< From, To > Member List

This is the complete list of members for Helper< From, To >, including all inherited members.
converter_ (defined in Helper< From, To >) | Helper< From, To > | [static]
io_ (defined in Helper< From, To >) | Helper< From, To > | [static]
Type_ typedef (defined in Helper< From, To >) | Helper< From, To > |
Generated on Sat Mar 20 14:14:57 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

VectorOutputBase Member List

This is the complete list of members for VectorOutputBase, including all inherited members.
AsIs enum value (defined in VectorOutputBase) | VectorOutputBase
Column enum value (defined in VectorOutputBase) | VectorOutputBase
Flag enum name | VectorOutputBase
Row enum value (defined in VectorOutputBase) | VectorOutputBase
Generated on Sat Mar 20 14:15:08 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

IsBasic< ElementType > Member List

This is the complete list of members for IsBasic< ElementType >, including all inherited members.
value_ enum value (defined in IsBasic< ElementType >) IsBasic< ElementType >
Generated on Sat Mar 20 14:15:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

IsBasicOrEnum< ElementType > Member List

This is the complete list of members for IsBasicOrEnum< ElementType >, including all inherited members.
value_ enum value (defined in IsBasicOrEnum< ElementType >) IsBasicOrEnum< ElementType >
Generated on Sat Mar 20 14:15:19 2010 for KeyValue by doxygen 1.6.1


KeyValue: Member List

  • Class List
  • Class Hierarchy
  • Class Members

TypeName< Type > Member List

This is the complete list of members for TypeName< Type >, including all inherited members.
value_ (defined in TypeName< Type >) TypeName< Type > [static]
Generated on Sat Mar 20 14:15:21 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/pattern/Table.h Source File

  • File List
  • File Members
keyvalue » pattern

Table.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_PATTERN_TABLE_H_
00029 #define KEYVALUE_PATTERN_TABLE_H_
00030
00031 #include "keyvalue/pattern/Pattern.h"
00032
00033 namespace keyvalue {
00034 namespace pattern {
00035
00059 class Table : public Pattern {
00060
00061 public:
00062
00063   Table();
00064
00065   bool
00066   parse(frontend::Queue& queue);
00067
00068   std::pair<string, value::Value>
00069   pop();
00070
00071   bool
00072   isEmpty() const;
00073
00074 private:
00075
00076   size_t        next_;
00077   string        keys_[3];
00078   value::Value  values_[3];
00079
00080 }; // class Table
00081
00082 } // namespace pattern
00083 } // namespace keyvalue
00084
00085 #endif // KEYVALUE_PATTERN_TABLE_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/util/tenor2ptime.h Source File

  • File List
  • File Members
keyvalue » util

tenor2ptime.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_UTIL_TENOR2PTIME_H_
00029 #define KEYVALUE_UTIL_TENOR2PTIME_H_
00030
00031 #include "keyvalue/extern/Ptime.h"
00032 #include "keyvalue/extern/String.h"
00033
00034 namespace keyvalue {
00035 namespace util {
00036
00061 ptime
00062 tenor2ptime(const ptime& start, const string& tenor);
00063
00064 } // namespace util
00065 } // namespace keyvalue
00066
00067 #endif // KEYVALUE_UTIL_TENOR2PTIME_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/Traits.h Source File

  • File List
  • File Members
keyvalue » key

Traits.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_KEY_TRAITS_H_
00030 #define KEYVALUE_KEY_TRAITS_H_
00031
00032 #include "keyvalue/key/converter/StdSingle.h"
00033 #include "keyvalue/key/map/Default.h"
00034 #include "keyvalue/key/Checker.h"
00035 #include "keyvalue/key/Key.h"
00036 #include "keyvalue/util/IsBasic.h"
00037
00038 namespace keyvalue {
00039 namespace key {
00040
00108 template <typename ElementType,
00109   template <typename> class ConverterType = StdSingle,
00110   template <typename> class MapType       = Default>
00111 class Traits :
00112   public Key,
00113   public MapType<ElementType>,
00114   public Checker<
00115     ConverterType<typename MapType<ElementType>::OutputType_> > {
00116
00117 public:
00118
00119   typedef Traits<ElementType, ConverterType, MapType> Traits_;
00120
00121   typedef ConverterType<typename MapType<ElementType>::OutputType_>
00122      ConverterType_;
00123
00124   typedef typename ConverterType_::InputType_         InputType_;
00125   typedef typename ConverterType_::OutputType_        OutputType_;
00126
00127   enum { isBasicOrEnum_ = util::IsBasicOrEnum<ElementType>::value_ };
00128
00134   Traits(const string& name);
00135
00141   string
00142   getName() const;
00143
00144 }; // class Traits
00145
00146 /*--------------------------------------------------------------------------
00147  * Traits()
00148  *------------------------------------------------------------------------*/
00149
00150 template <typename ElementType, template <typename> class ConverterType,
00151   template <typename> class MapType>
00152 Traits<ElementType, ConverterType, MapType>::Traits(const string& name) :
00153   Key(name) {
00154 }
00155
00156 /*--------------------------------------------------------------------------
00157  * getName()
00158  *------------------------------------------------------------------------*/
00159
00160 template <typename ElementType, template <typename> class ConverterType,
00161   template <typename> class MapType>
00162 string
00163 Traits<ElementType, ConverterType, MapType>::getName() const {
00164   return Key::getName();
00165 }
00166
00167 } // namespace key
00168 } // namespace keyvalue
00169
00170 #endif // KEYVALUE_KEY_TRAITS_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/TypeName.h Source File

  • File List
  • File Members
keyvalue » value

TypeName.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_VALUE_TYPENAME_H_
00029 #define KEYVALUE_VALUE_TYPENAME_H_
00030
00031 #include "keyvalue/extern/String.h"
00032
00033 namespace keyvalue {
00034 namespace value {
00035
00043 template <typename Type>
00044 struct TypeName {
00045   static const char* value_;
00046 };
00047
00048 } // namespace value
00049 } // namespace keyvalue
00050
00051 #endif // KEYVALUE_VALUE_TYPENAME_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/util/Util.h Source File

  • File List
  • File Members
keyvalue » util

Util.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_UTIL_UTIL_H_
00029 #define KEYVALUE_UTIL_UTIL_H_
00030
00031 namespace keyvalue {
00032
00037 namespace util {
00038
00039 } // namespace util
00040 } // namespace keyvalue
00041
00042 #endif // KEYVALUE_UTIL_UTIL_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/Matrix.h Source File

  • File List
  • File Members
keyvalue » value

Matrix.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_VALUE_MATRIX_H_
00029 #define KEYVALUE_VALUE_MATRIX_H_
00030
00031 #include <iosfwd>
00032 #include <boost/intrusive_ptr.hpp>
00033
00034 #include "keyvalue/value/Variant.h"
00035
00036 namespace keyvalue {
00037 namespace value {
00038
00057 class Matrix {
00058
00059 public:
00060
00071   explicit
00072   Matrix(size_t nRows = 1, size_t nCols = 1);
00073
00079   size_t
00080   getNRows() const;
00081
00087   size_t
00088   getNCols() const;
00089
00106    void
00107    resize(size_t nRows, size_t nCols);
00108
00124   const Variant&
00125   operator()(size_t i, size_t j) const;
00126
00130   Variant&
00131   operator()(size_t i, size_t j);
00132
00153   bool
00154   operator==(const Matrix& rhs) const;
00155
00156 protected:
00157
00177   void
00178   transposeVector();
00179
00180 private:
00181
00189   struct Impl;
00190   boost::intrusive_ptr<Impl> pimpl_;
00191
00192   friend void
00193   intrusive_ptr_add_ref(Matrix::Impl* pimpl);
00194
00195   friend void
00196   intrusive_ptr_release(Matrix::Impl* pimpl);
00197 };
00198
00208 void
00209 intrusive_ptr_add_ref(Matrix::Impl* pimpl);
00210
00220 void
00221 intrusive_ptr_release(Matrix::Impl* pimpl);
00222
00228 std::ostream&
00229 operator<<(std::ostream& os, const Matrix& matrix);
00230
00231 } // namespace value
00232 } // namespace keyvalue
00233
00234 #endif // KEYVALUE_VALUE_MATRIX_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/Single.h Source File

  • File List
  • File Members
keyvalue » value

Single.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_VALUE_SINGLE_H_
00029 #define KEYVALUE_VALUE_SINGLE_H_
00030
00031 #include <iosfwd>
00032
00033 #include "keyvalue/value/Vector.h"
00034
00035 namespace keyvalue {
00036 namespace value {
00037
00045 class Single : public Vector {
00046
00047 public:
00048
00053   Single();
00054
00062   Single(const Variant& data);
00063
00071   template <typename Rhs>
00072   Single(const Rhs& rhs);
00073
00083   template <typename Rhs>
00084   Single&
00085   operator=(const Rhs& rhs);
00086
00087 }; // class Single
00088
00094 std::ostream&
00095 operator<<(std::ostream& os, const Single& rhs);
00096
00106 template <typename Rhs>
00107 struct Parent;
00108
00109 template <>
00110 struct Parent<Variant> {
00111   typedef Single Type_;
00112 };
00113
00114 /*--------------------------------------------------------------------------
00115  * Single()
00116  *------------------------------------------------------------------------*/
00117
00118 template <typename Rhs>
00119 Single::Single(const Rhs& rhs) : Vector(1) {
00124   (*this)(0) = Variant(rhs);
00125 }
00126
00127 /*--------------------------------------------------------------------------
00128  * operator=()
00129  *------------------------------------------------------------------------*/
00130
00131 template <typename Rhs>
00132 Single&
00133 Single::operator=(const Rhs& rhs) {
00138   return *this = typename Parent<Rhs>::Type_(rhs);
00139 }
00140
00141 } // namespace value
00142 } // namespace keyvalue
00143
00144 #endif // KEYVALUE_VALUE_SINGLE_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/Vector.h Source File

  • File List
  • File Members
keyvalue » value

Vector.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_VALUE_VECTOR_H_
00029 #define KEYVALUE_VALUE_VECTOR_H_
00030
00031 #include <iosfwd>
00032
00033 #include "keyvalue/extern/Vector.h"
00034 #include "keyvalue/value/Matrix.h"
00035
00036 namespace keyvalue {
00037 namespace value {
00038
00046 class Vector : public Matrix {
00047
00048 public:
00049
00062   explicit
00063   Vector(size_t size = 1, bool isRow = false);
00064
00082   template <typename ElementType>
00083   Vector(const vector<ElementType>& data, bool isRow = false);
00084
00090   size_t
00091   getSize() const;
00092
00105    void
00106    resize(size_t size);
00107
00121   const Variant&
00122   operator()(size_t i) const;
00123
00127   Variant&
00128   operator()(size_t i);
00129
00133   void
00134   transpose();
00135
00136 }; // class Vector
00137
00143 std::ostream&
00144 operator<<(std::ostream& os, const Vector& vector);
00145
00155 template <typename Rhs>
00156 struct Parent;
00157
00158 template <typename T>
00159 struct Parent<vector<T> > {
00160   typedef Vector Type_;
00161 };
00162
00163 } // namespace value
00164 } // namespace keyvalue
00165
00166 #endif // KEYVALUE_VALUE_VECTOR_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/Value.h Source File

  • File List
  • File Members
keyvalue » value

Value.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_VALUE_VALUE_H_
00029 #define KEYVALUE_VALUE_VALUE_H_
00030
00031 #include <iosfwd>
00032
00033 #include <boost/variant.hpp>
00034
00035 #include "keyvalue/value/Matrix.h"
00036 #include "keyvalue/value/Single.h"
00037 #include "keyvalue/value/Vector.h"
00038
00039 namespace keyvalue {
00040
00044 namespace value {
00045
00051 class Value {
00052
00053 public:
00054
00055   typedef boost::variant<Single, Vector, Matrix> DataType_;
00056
00061   Value();
00062
00070   Value(const DataType_& data);
00071
00079   template <typename Rhs>
00080   Value(const Rhs& rhs);
00081
00091   template <typename Rhs>
00092   Value&
00093   operator=(const Rhs& rhs);
00094
00098   bool
00099   operator==(const Value& rhs) const;
00100
00109   template <typename Type>
00110   const Type*
00111   get() const;
00112
00116   template <typename Type>
00117   Type*
00118   get();
00119
00120 private:
00121
00122   DataType_ data_;
00123
00124 }; // class Value
00125
00131 std::ostream&
00132 operator<<(std::ostream& os, const Value& rhs);
00133
00146 template <typename Rhs>
00147 struct Parent;
00148
00149 template <>
00150 struct Parent<Value::DataType_> {
00151   typedef Value Type_;
00152 };
00153
00154 template <>
00155 struct Parent<Single> {
00156   typedef Value::DataType_ Type_;
00157 };
00158
00159 template <>
00160 struct Parent<Vector> {
00161   typedef Value::DataType_ Type_;
00162 };
00163
00164 template <>
00165 struct Parent<Matrix> {
00166   typedef Value::DataType_ Type_;
00167 };
00168
00169 /*--------------------------------------------------------------------------
00170  * Value()
00171  *------------------------------------------------------------------------*/
00172
00173 template <typename Rhs>
00174 Value::Value(const Rhs& rhs) :
00175   data_(Value(typename Parent<Rhs>::Type_(rhs)).data_) {
00180 }
00181
00182 /*--------------------------------------------------------------------------
00183  * operator=()
00184  *------------------------------------------------------------------------*/
00185
00186 template <typename Rhs>
00187 Value&
00188 Value::operator=(const Rhs& rhs) {
00193   return *this = typename Parent<Rhs>::Type_(rhs);
00194 }
00195
00196 } // namespace value
00197 } // namespace keyvalue
00198
00199 #endif // KEYVALUE_VALUE_VALUE_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/value/Variant.h Source File

  • File List
  • File Members
keyvalue » value

Variant.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_VALUE_VARIANT_H_
00029 #define KEYVALUE_VALUE_VARIANT_H_
00030
00031 #include <iosfwd>
00032
00033 #include <boost/variant.hpp>
00034
00035 #include "keyvalue/extern/String.h"
00036 #include "keyvalue/extern/Ptime.h"
00037 #include "keyvalue/frontend/LexicalToolKit.h"
00038 #include "keyvalue/value/Nothing.h"
00039
00040 namespace keyvalue {
00041 namespace value {
00042
00043 // Forward declaration
00044 class Single;
00045
00059 class Variant {
00060
00061 public:
00062
00063   typedef boost::variant<Nothing, bool, double, ptime, string> DataType_;
00064
00068   Variant();
00069
00077   Variant(const DataType_& data);
00078
00086   template <typename Rhs>
00087   Variant(const Rhs& rhs);
00088
00096   Variant(const Single& data);
00097
00107   template <typename Rhs>
00108   Variant&
00109   operator=(const Rhs& rhs);
00110
00141   template <typename ElementType>
00142   bool
00143   is(frontend::LexicalToolKit::IO io) const;
00144
00179   template <typename ElementType>
00180   ElementType
00181   get(frontend::LexicalToolKit::IO io) const;
00182
00183   friend std::ostream&
00184   operator<<(std::ostream& os, const Variant& variant);
00185
00186 private:
00187
00199   template <typename ElementType>
00200   const ElementType*
00201   get() const;
00202
00203   DataType_ data_;
00204
00205 }; // class Variant
00206
00212 std::ostream&
00213 operator<<(std::ostream& os, const Variant& rhs);
00214
00235 template <typename Rhs>
00236 struct Parent;
00237
00238 template <>
00239 struct Parent<Variant::DataType_> {
00240   typedef Variant Type_;
00241 };
00242
00243 template <>
00244 struct Parent<Nothing> {
00245   typedef Variant::DataType_ Type_;
00246 };
00247
00248 template <>
00249 struct Parent<bool> {
00250   typedef Variant::DataType_ Type_;
00251 };
00252
00253 template <>
00254 struct Parent<double> {
00255   typedef Variant::DataType_ Type_;
00256 };
00257
00258 template <>
00259 struct Parent<unsigned int> {
00260   typedef double Type_;
00261 };
00262
00263 template <>
00264 struct Parent<long unsigned int> {
00265   typedef double Type_;
00266 };
00267
00268 template <>
00269 struct Parent<string> {
00270   typedef Variant::DataType_ Type_;
00271 };
00272
00273 template <>
00274 struct Parent<char[]> {
00275   typedef string Type_;
00276 };
00277
00278 template <size_t N>
00279 struct Parent<char[N]> {
00280   typedef string Type_;
00281 };
00282
00283 template <size_t N>
00284 struct Parent<const char[N]> {
00285   typedef string Type_;
00286 };
00287
00288 template <>
00289 struct Parent<char *> {
00290   typedef string Type_;
00291 };
00292
00293 template <>
00294 struct Parent<ptime> {
00295   typedef Variant::DataType_ Type_;
00296 };
00297
00298 /*--------------------------------------------------------------------------
00299  * Variant()
00300  *------------------------------------------------------------------------*/
00301
00302 template <typename Rhs>
00303 Variant::Variant(const Rhs& rhs) :
00304   data_(Variant(typename Parent<Rhs>::Type_(rhs)).data_) {
00309 }
00310
00311 /*--------------------------------------------------------------------------
00312  * operator=()
00313  *------------------------------------------------------------------------*/
00314
00315 template <typename Rhs>
00316 Variant&
00317 Variant::operator=(const Rhs& rhs) {
00322   return *this = typename Parent<Rhs>::Type_(rhs);
00323 }
00324
00325 } // namespace value
00326 } // namespace keyvalue
00327
00328 #endif // KEYVALUE_VALUE_VARIANT_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/key/specific/VectorOutput.h Source File

  • File List
  • File Members
keyvalue » key » specific

VectorOutput.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef BRIDGE_KEY_VECTOROUTPUT_H_
00029 #define BRIDGE_KEY_VECTOROUTPUT_H_
00030
00031 #include "keyvalue/key/map/FlagMap.h"
00032 #include "keyvalue/key/converter/StdSingle.h"
00033 #include "keyvalue/key/Traits.h"
00034
00035 namespace keyvalue {
00036 namespace key {
00037
00046 struct VectorOutputBase {
00050   enum Flag { AsIs, Row, Column };
00051 };
00052
00060 class VectorOutput : public VectorOutputBase,
00061   public Traits<VectorOutputBase::Flag, StdSingle, FlagMap> {
00062
00063 public:
00064
00065   VectorOutput();
00066
00079   Flag
00080   get(const string& name) const;
00081
00082 }; // class VectorOutput
00083
00084 } // namespace key
00085 } // namespace keyvalue
00086
00087 #endif // BRIDGE_KEY_VECTOROUTPUT_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/WindowsConsole.h Source File

  • File List
  • File Members
keyvalue » sys » logger

WindowsConsole.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #if _WIN32 || DOXYGEN
00029
00030 #ifndef KEYVALUE_SYS_LOGGER_WINDOWSCONSOLE_H_
00031 #define KEYVALUE_SYS_LOGGER_WINDOWSCONSOLE_H_
00032
00033 #undef UNICODE
00034
00035 #include <windows.h>
00036
00037 #include "keyvalue/extern/String.h"
00038 #include "keyvalue/sys/logger/LoggerImpl.h"
00039 #include "keyvalue/sys/logger/policy/AddPrefix.h"
00040 #include "keyvalue/sys/logger/policy/XtermColor.h"
00041 #include "keyvalue/sys/logger/policy/ForwardToGlobalLogger.h"
00042
00043 namespace keyvalue {
00044 namespace logger {
00045
00051 class WindowsConsole : public LoggerImpl<AddPrefix, XtermColor,
00052   ForwardToGlobalLogger> {
00053
00054 public:
00055
00056   typedef LoggerImpl<keyvalue::logger::AddPrefix,
00057     keyvalue::logger::XtermColor,
00058     keyvalue::logger::ForwardToGlobalLogger> MyBase_;
00059
00060   WindowsConsole(unsigned int level, const string& title,
00061     const string& path);
00062
00063   ~WindowsConsole();
00064
00065 private:
00066
00067   HANDLE childStdInWrite_;
00068   PROCESS_INFORMATION childProcess_;
00069
00070   bool
00071   send(const string& message);
00072
00073 }; // class WindowsConsole
00074
00075 } // namespace logger
00076 } // namespace keyvalue
00077
00078 #endif  // KEYVALUE_SYS_LOGGER_WINDOWSCONSOLE_H_
00079
00080 #endif // _WIN32
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/XBuilder.h Source File

  • File List
  • File Members
keyvalue » mngt

XBuilder.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_MNGT_XBUILDER_H_
00030 #define KEYVALUE_MNGT_XBUILDER_H_
00031
00032 #include "keyvalue/mngt/Builder.h"
00033 #include "keyvalue/value/Variant.h"
00034
00035 namespace keyvalue {
00036
00048 template <typename ObjectType>
00049 class XBuilder : public Builder<ObjectType> {
00050
00051 public:
00052
00063   static Builder&
00064   getInstance();
00065
00075   shared_ptr<ObjectType>
00076   getObject(const value::Variant& data) const;
00077
00078 private:
00079
00080   XBuilder();
00081
00088   static Builder&
00089   getSingleton();
00090
00091 }; // class XBuilder
00092
00093 /*--------------------------------------------------------------------------
00094  * getInstance()
00095  *------------------------------------------------------------------------*/
00096
00097 template <typename ObjectType>
00098 Builder<ObjectType>&
00099 XBuilder<ObjectType>::getInstance() {
00100   setGetter(getSingleton);
00101   return Builder<ObjectType>::getInstance();
00102 }
00103
00104 /*--------------------------------------------------------------------------
00105  * XBuilder()
00106  *------------------------------------------------------------------------*/
00107
00108 template <typename ObjectType>
00109 XBuilder<ObjectType>::XBuilder() {
00110 }
00111
00112 /*--------------------------------------------------------------------------
00113  * getSingleton()
00114  *------------------------------------------------------------------------*/
00115
00116 template <typename ObjectType>
00117 Builder<ObjectType>&
00118 XBuilder<ObjectType>::getSingleton() {
00119   static XBuilder<ObjectType> singleton;
00120   return singleton;
00121 }
00122
00123 } // namespace keyvalue
00124
00125 #endif // KEYVALUE_MNGT_XBUILDER_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/mngt/XCalculator.h Source File

  • File List
  • File Members
keyvalue » mngt

XCalculator.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00029 #ifndef KEYVALUE_MNGT_XCALCULATOR_H_
00030 #define KEYVALUE_MNGT_XCALCULATOR_H_
00031
00032 #include "keyvalue/mngt/Calculator.h"
00033 #include "keyvalue/value/Variant.h"
00034
00035 namespace keyvalue {
00036
00048 template <typename Tag>
00049 class XCalculator : public Calculator<Tag> {
00050
00051 public:
00052
00063   static Calculator&
00064   getInstance();
00065
00075   value::Value
00076   getValue(const value::Variant& data) const;
00077
00078 private:
00079
00080   XCalculator();
00081
00088   static Calculator&
00089   getSingleton();
00090
00091 }; // class XCalculator
00092
00093 /*--------------------------------------------------------------------------
00094  * getInstance()
00095  *------------------------------------------------------------------------*/
00096
00097 template <typename Tag>
00098 Calculator<Tag>&
00099 XCalculator<Tag>::getInstance() {
00100   setGetter(getSingleton);
00101   return Calculator<Tag>::getInstance();
00102 }
00103
00104 /*--------------------------------------------------------------------------
00105  * XCalculator()
00106  *------------------------------------------------------------------------*/
00107
00108 template <typename Tag>
00109 XCalculator<Tag>::XCalculator() {
00110 }
00111
00112 /*--------------------------------------------------------------------------
00113  * getSingleton()
00114  *------------------------------------------------------------------------*/
00115
00116 template <typename Tag>
00117 Calculator<Tag>&
00118 XCalculator<Tag>::getSingleton() {
00119   static XCalculator<Tag> singleton;
00120   return singleton;
00121 }
00122
00123 } // namespace keyvalue
00124
00125 #endif // KEYVALUE_MNGT_XCALCULATOR_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/policy/XtermColor.h Source File

  • File List
  • File Members
keyvalue » sys » logger » policy

XtermColor.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #ifndef KEYVALUE_SYS_LOGGER_POLICY_XTERMCOLOR_H_
00029 #define KEYVALUE_SYS_LOGGER_POLICY_XTERMCOLOR_H_
00030
00031 #include <boost/utility.hpp>
00032
00033 #include "keyvalue/extern/String.h"
00034
00035 namespace keyvalue {
00036
00037 // Forward declarations
00038
00039 class Message;
00040
00041 namespace logger {
00042
00049 class XtermColor : private boost::noncopyable {
00050
00051 protected:
00052
00053   bool
00054   apply(const Message& message);
00055
00056   virtual bool
00057   send(const string& message) = 0;
00058
00059 }; // class XtermColor
00060
00061 } // namespace logger
00062 } // namespace keyvalue
00063
00064 #endif // KEYVALUE_SYS_LOGGER_POLICY_XTERMCOLOR_H_
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1


KeyValue: keyvalue/sys/logger/XtermConsole.h Source File

  • File List
  • File Members
keyvalue » sys » logger

XtermConsole.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *
00003  * Copyright (C) 2009-2010 Cassio Neri Moreira
00004  *
00005  * This file is part of the KeyValue library.
00006  *
00007  * The KeyValue library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or (at
00010  * your option) any later version.
00011  *
00012  * The KeyValue library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
00015  * Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License along
00018  * with KeyValue. If not, see <http://www.gnu.org/licenses/>.
00019  *
00020  **************************************************************************/
00021
00028 #if !_WIN32 || DOXYGEN
00029
00030 #ifndef KEYVALUE_SYS_LOGGER_XTERMCONSOLE_H_
00031 #define KEYVALUE_SYS_LOGGER_XTERMCONSOLE_H_
00032
00033 #include <cstdio>
00034
00035 #include "keyvalue/sys/logger/LoggerImpl.h"
00036 #include "keyvalue/sys/logger/policy/AddPrefix.h"
00037 #include "keyvalue/sys/logger/policy/XtermColor.h"
00038
00039 namespace keyvalue {
00040 namespace logger {
00041
00047 class XtermConsole : public LoggerImpl<AddPrefix, XtermColor> {
00048
00049 public:
00050
00051   XtermConsole(unsigned int level, const string& title);
00052
00053   ~XtermConsole();
00054
00055 private:
00056
00064   class FileRaii {
00065
00066   public:
00067
00068     explicit
00069     FileRaii(const int fd = -1);
00070
00071     ~FileRaii();
00072
00073     FileRaii& operator=(const int fd);
00074
00075     void
00076     close();
00077
00078     int
00079     getFd() const;
00080
00081   private:
00082
00083     int fd_;
00084   };
00085
00086   unsigned int  level_;
00087   pid_t         childPid_;
00088   FileRaii      writeSlave_;
00089
00090   bool
00091   send(const string& message);
00092
00093 }; // class XtermConsole
00094
00095 } // namespace logger
00096 } // namespace keyvalue
00097
00098 #endif  // KEYVALUE_SYS_LOGGER_XTERMCONSOLE_H_
00099
00100 #endif // !_WIN32 || DOXYGEN
Generated on Sat Mar 20 14:13:15 2010 for KeyValue by doxygen 1.6.1