decompiler
1.0.0
|
A Dispatcher for possible ArchOption commands. More...
#include <options.hh>
Public Member Functions | |
OptionDatabase (Architecture *g) | |
Construct given the owning Architecture. More... | |
~OptionDatabase (void) | |
Destructor. | |
string | set (const string &nm, const string &p1="", const string &p2="", const string &p3="") |
Issue an option command. More... | |
void | parseOne (const Element *el) |
Unwrap and execute a single option XML tag. More... | |
void | restoreXml (const Element *el) |
Execute a series of option commands passed by XML. More... | |
Private Member Functions | |
void | registerOption (ArchOption *option) |
Map from ArchOption name to its class instance. More... | |
Private Attributes | |
Architecture * | glb |
The Architecture affected by the contained ArchOption. | |
map< string, ArchOption * > | optionmap |
A map from option name to registered ArchOption instance. | |
A Dispatcher for possible ArchOption commands.
An option command is a specific request by a user to change the configuration options for an Architecture. This class takes care of dispatching the command to the proper ArchOption derived class, which does the work of actually modifying the configuration. The command is issued either through the set() method directly, or via an XML tag handed to the restoreXml() method. The restoreXml() method expects an <optionslist> tag with one or more sub-tags. The sub-tag names match the registered name of the option and have up to three child tags, <param1>, <param2> and <param3>, whose content is provided as the optional parameters to command.
OptionDatabase::OptionDatabase | ( | Architecture * | g | ) |
Construct given the owning Architecture.
Register all possible ArchOption objects with this database and set-up the parsing map.
g | is the Architecture owning this database |
void OptionDatabase::parseOne | ( | const Element * | el | ) |
Unwrap and execute a single option XML tag.
Unwrap the name and optional parameters and call method set()
el | is the command XML tag |
References Element::getChildren(), Element::getContent(), and Element::getName().
|
private |
Map from ArchOption name to its class instance.
To facilitate command parsing, enter the new ArchOption instance into the map based on its name
option | is the new ArchOption instance |
References ArchOption::getName().
void OptionDatabase::restoreXml | ( | const Element * | el | ) |
Execute a series of option commands passed by XML.
Parse the <optionslist> tag, treating each sub-tag as an option command.
el | is the <optionslist> tag |
References Element::getChildren().
Referenced by SetOptions::rawAction().
string OptionDatabase::set | ( | const string & | nm, |
const string & | p1 = "" , |
||
const string & | p2 = "" , |
||
const string & | p3 = "" |
||
) |
Issue an option command.
Perform an option command directly, given its name and optional parameters
nm | is the registered name of the option |
p1 | is the first optional parameter |
p2 | is the second optional parameter |
p3 | is the third optional parameter |
References ArchOption::apply().