Public Member Functions | |
FWConfiguration * | config (void) |
virtual void | data (const std::string &data) override |
virtual void | endElement (const std::string &tag) override |
FWXMLConfigParser (istream &f) | |
void | pushConfig (Attributes &attributes) |
virtual void | startElement (const std::string &tag, Attributes &attributes) override |
Public Member Functions inherited from SimpleSAXParser | |
void | parse (void) |
SimpleSAXParser (std::istream &f) | |
virtual | ~SimpleSAXParser () |
Private Types | |
enum | STATES { IN_BEGIN_DOCUMENT, IN_PUSHED_CONFIG, IN_POPPED_CONFIG, IN_BEGIN_STRING, IN_STORED_STRING } |
Private Attributes | |
std::vector< std::pair < std::string, FWConfiguration * > > | m_configs |
std::string | m_currentConfigName |
std::auto_ptr< FWConfiguration > | m_first |
enum STATES | m_state |
Additional Inherited Members | |
Public Types inherited from SimpleSAXParser | |
typedef std::vector< Attribute > | Attributes |
enum | PARSER_STATES { IN_DOCUMENT, IN_BEGIN_TAG, IN_DONE, IN_BEGIN_ELEMENT, IN_ELEMENT_WHITESPACE, IN_END_ELEMENT, IN_ATTRIBUTE_KEY, IN_END_TAG, IN_DATA, IN_BEGIN_ATTRIBUTE_VALUE, IN_STRING, IN_END_ATTRIBUTE_VALUE, IN_STRING_ENTITY, IN_DATA_ENTITY } |
Helper class which reads the XML configuration and constructs the FWConfiguration classes.
State machine for the parser can be found by cut and pasting the following in graphviz.
digraph { IN_BEGIN_DOCUMENT->IN_PUSHED_CONFIG [label = "beginElement(config)"]
IN_PUSHED_CONFIG->IN_PUSHED_CONFIG [label = "beginElement(config)"] IN_PUSHED_CONFIG->IN_POPPED_CONFIG [label = "endElement(config)"] IN_PUSHED_CONFIG->IN_BEGIN_STRING [label = "beginElement(string)"]
IN_POPPED_CONFIG->IN_PUSHED_CONFIG [label = "beginElement(config)"] IN_POPPED_CONFIG->IN_POPPED_CONFIG [label = "endElement(config)"] IN_POPPED_CONFIG->DONE [label = "top level config popped"]
IN_BEGIN_STRING->IN_STORED_STRING [label = "data()"]; IN_BEGIN_STRING->IN_PUSHED_CONFIG [label = "endElement(string)"]
IN_STORED_STRING->IN_PUSHED_CONFIG [label = "endElement(string)"] }
Definition at line 206 of file FWConfigurationManager.cc.
|
private |
Enumerator | |
---|---|
IN_BEGIN_DOCUMENT | |
IN_PUSHED_CONFIG | |
IN_POPPED_CONFIG | |
IN_BEGIN_STRING | |
IN_STORED_STRING |
Definition at line 208 of file FWConfigurationManager.cc.
|
inline |
Definition at line 217 of file FWConfigurationManager.cc.
|
inline |
The parsed configuration. Notice that the parser owns it and destroys it when destroyed.
Definition at line 337 of file FWConfigurationManager.cc.
References m_first.
|
inlineoverridevirtual |
Executes any transaction in the state machine which happens when the xml parser finds some data (i.e. text) between tags This is mainly used to handle <string> element contents but also whitespace between tags.
Reimplemented from SimpleSAXParser.
Definition at line 320 of file FWConfigurationManager.cc.
References debug_config_state_machine(), IN_BEGIN_STRING, IN_STORED_STRING, m_configs, and m_state.
Referenced by cuy.FindIssue::__init__().
|
inlineoverridevirtual |
Executes any transaction in the state machine which happens when the xml parser closes an element.
Notice that we need to do addKeyValue on endElement (and carry around the FWConfigutation name) because of the "copy by value" policy of addKeyValue addition which would add empty FWConfiguration objects if done on startElement.
Reimplemented from SimpleSAXParser.
Definition at line 289 of file FWConfigurationManager.cc.
References cond::rpcobimon::current, debug_config_state_machine(), IN_BEGIN_STRING, IN_POPPED_CONFIG, IN_PUSHED_CONFIG, IN_STORED_STRING, combine::key, m_configs, m_state, and AlCaHLTBitMon_QueryRunRegistry::string.
|
inline |
Pushes the configuration on stack eventually
Definition at line 224 of file FWConfigurationManager.cc.
References asciidump::attr, alignCSCRings::e, i, SimpleSAXParser::Attribute::key, m_configs, mergeVDriftHistosByStation::name, AlCaHLTBitMon_QueryRunRegistry::string, SimpleSAXParser::Attribute::value, and BeamSplash_cfg::version.
Referenced by startElement().
|
inlineoverridevirtual |
Executes any transaction in the state machine which happens when the xml parser finds an new element.
Reimplemented from SimpleSAXParser.
Definition at line 250 of file FWConfigurationManager.cc.
References debug_config_state_machine(), IN_BEGIN_DOCUMENT, IN_BEGIN_STRING, IN_POPPED_CONFIG, IN_PUSHED_CONFIG, m_configs, m_first, m_state, and pushConfig().
|
private |
Definition at line 343 of file FWConfigurationManager.cc.
Referenced by data(), endElement(), pushConfig(), and startElement().
|
private |
Definition at line 347 of file FWConfigurationManager.cc.
|
private |
Definition at line 345 of file FWConfigurationManager.cc.
Referenced by config(), and startElement().
|
private |
Definition at line 344 of file FWConfigurationManager.cc.
Referenced by data(), endElement(), and startElement().