configuration::ModeController Class Reference

#include <modecontroller.h>

Inheritance diagram for configuration::ModeController:
rulesmanager::RulesManager< RuleType, RuleTarget, RuleStorage >

List of all members.

Public Types

typedef ModeConfigurationParser ConfParser

Public Member Functions

 ModeController ()
 ModeController (PropertyMode defMod)
virtual ~ModeController ()
virtual PropertyMode getDefaultMode () const
virtual PropertyMode setDefaultMode (PropertyMode mode)
virtual PropertyMode getMode (const std::string &type, const std::string &name) const

Private Attributes

PropertyMode defaultMode
ModeMatcher matcher

Detailed Description

Basic mode controller implementation.

Provides mapping from type, name pair to Property mode, where type stands for complex type name (Value of complex - dictionary - Type field value) and name for field name in given complex type.

Rules
We will write type, name pair in following format:

 type[.name]: mode
 

not specified is represented by empty string or word containing just blanks.

Usage
Instance with empty constructor is created with mdUnknown default mode. If you need to specify different one, use setDefaultMode method or constructor with parameter.
Rules for modes can be add either manualy by addRule (inherited from RulesManager class) method or from file using loadFromFile method. loadFromFile method requires file name and parser parameters. Second one is implementator which implements parsing functionality for given configuration file format.

 Example:
 // Initializes mode controller
 //============================
 // creates ModeController instance
 ModeController modeControler;
 // Creates low-level parser for simple configuration files (one line one
 // setting). This base parser is used by ConfParser which is used by
 // ModeController in loadFromFile 
 StringConfigurationParser baseParser(StringConfigurationParser(NULL));
 ModeController::ConfParser parser(baseParser);
 // parser is ready, we can load rules 
 int result=modeControler.loadFromFile(fileName, parser);
 if(result==-1)
   cerr << "File \""<<fileName<<"" parsing failed"<<endl;
 else
   cout << result << "new rules added"<<endl;
 // use mode controller
 //====================
 PropertyMode mode=modeControler.getMode(ParentType, ChildName);
 

Member Typedef Documentation

Type for configuration parser for loadFromFile method.

See also:
ModeConfigurationParser

Constructor & Destructor Documentation

configuration::ModeController::ModeController (  )  [inline]

Constructor.

Intiailizes defaultMode to mdUnknown. Sets ModeMatcher instance to ModeRulesManager.

References matcher, and rulesmanager::RulesManager< RuleType, RuleTarget, RuleStorage >::setRuleMatcher().

configuration::ModeController::ModeController ( PropertyMode  defMod  )  [inline]

Constructor with default mode.

Parameters:
defMod Default mode to be used.

Initializes defaultMode with given one. Sets ModeMatcher instance to ModeRulesManager.

References matcher, and rulesmanager::RulesManager< RuleType, RuleTarget, RuleStorage >::setRuleMatcher().

virtual configuration::ModeController::~ModeController (  )  [inline, virtual]

Virtual destructor. This method is empty, because no special treatment is required.


Member Function Documentation

virtual PropertyMode configuration::ModeController::getDefaultMode (  )  const [inline, virtual]

Get default mode.

Default policy for non matching rules.

Returns:
defaultMode field value.

References defaultMode.

virtual PropertyMode configuration::ModeController::getMode ( const std::string &  type,
const std::string &  name 
) const [inline, virtual]

Get mode for value with given type and name.

Parameters:
type Type field value of complex type.
name Name if the field in complex type.

Given parameters may be empty what means not specified.
If no rule matches given pair, getDefaultMode is returned.

See also:
RulesManager::findMatching
Returns:
Mode which is most specific for given type, name pair.

References defaultMode, and rulesmanager::RulesManager< RuleType, RuleTarget, RuleStorage >::findMatching().

Referenced by gui::PropertyModeController::mode().

virtual PropertyMode configuration::ModeController::setDefaultMode ( PropertyMode  mode  )  [inline, virtual]

Sets default mode.

Parameters:
mode New default mode.
Returns:
Previous value of default mode.

References defaultMode.


Member Data Documentation

Default mode.

Value is set in constructor.

Referenced by getDefaultMode(), getMode(), and setDefaultMode().

Matcher for rules.

This matched for supertype matcher intialization in constructor.

Reimplemented from rulesmanager::RulesManager< RuleType, RuleTarget, RuleStorage >.

Referenced by ModeController().


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