CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Classes | Functions
FWConfiguration.h File Reference
#include <vector>
#include <boost/scoped_ptr.hpp>
#include <string>
#include <ostream>

Go to the source code of this file.

Classes

class  FWConfiguration
 

Functions

void streamTo (std::ostream &, const FWConfiguration &, const std::string &name)
 

Function Documentation

void streamTo ( std::ostream &  oTo,
const FWConfiguration iConfig,
const std::string &  name 
)

Streaming FWConfiguration objects to xml.

Example of dump is:

<config name="top" version="1"> <string value="S1"> <string value="S2"> ... <string value="SN"> <config name="c1"> ... </configuration> <config name="c2"> ... </config> ... </config>

Streaming the top level configuration item will stream all its children.

Definition at line 215 of file FWConfiguration.cc.

References attrEscape(), FWConfiguration::keyValues(), streamTo(), FWConfiguration::stringValues(), and FWConfiguration::version().

Referenced by streamTo(), and FWConfigurationManager::writeToFile().

216 {
217  static int recursionLevel = -1;
218  recursionLevel += 1;
219  std::string indentation(recursionLevel, ' ');
220  oTo << indentation << "<config name=\"" << name
221  << "\" version=\"" << iConfig.version() << "\">\n";
222  if(iConfig.stringValues()) {
223  for(FWConfiguration::StringValues::const_iterator it = iConfig.stringValues()->begin();
224  it != iConfig.stringValues()->end();
225  ++it) {
226  oTo << indentation << " <string>" << attrEscape(*it) << "</string>\n";
227  }
228  }
229  if(iConfig.keyValues()) {
230  for(FWConfiguration::KeyValues::const_iterator it = iConfig.keyValues()->begin();
231  it != iConfig.keyValues()->end();
232  ++it) {
233  streamTo(oTo, it->second, attrEscape(it->first));
234  }
235  }
236  oTo << indentation << "</config>" << std::endl;
237  recursionLevel -= 1;
238 }
const StringValues * stringValues() const
const KeyValues * keyValues() const
void streamTo(std::ostream &, const FWConfiguration &, const std::string &name)
unsigned int version() const
std::string attrEscape(std::string value)