10#ifndef Teuchos_XMLOBJECT_H 
   11#define Teuchos_XMLOBJECT_H 
   61  const std::string& getTag() 
const;
 
   64  bool hasAttribute(
const std::string& name) 
const;
 
   67  const std::string& getAttribute(
const std::string& name) 
const;
 
   70  const std::string& getRequired(
const std::string& name) 
const;
 
   74    {
return std::atof(getRequired(name).
c_str());}
 
 
   78    {
return std::atoi(getRequired(name).
c_str());}
 
 
   84    std::istringstream 
iss(getRequired(name));
 
 
   90  bool getRequiredBool(
const std::string& name) 
const ;
 
   96    if (hasAttribute(name)){
 
 
  105  int numChildren() 
const;
 
  113  int findFirstChild(std::string 
tagName) 
const;
 
  116  int numContentLines() 
const;
 
  119  const std::string& getContentLine(
int i) 
const;
 
  122  std::string toString() 
const;
 
  125  void print(std::ostream& os, 
int indent) 
const;
 
  128  std::string header() 
const;
 
  131  std::string terminatedHeader() 
const;
 
  134  std::string footer() 
const;
 
  140  void checkTag(
const std::string& 
expected) 
const ;
 
  148    {addAttribute(name, Teuchos::toString(
val));}
 
 
  152    {addAttribute(name, Teuchos::toString(
val));}
 
 
  156    {addAttribute(name, Teuchos::toString(
val));}
 
 
  163         "XMLObject::addAttribute: XMLObject is empty");
 
  164  ptr_->addAttribute(name, Teuchos::toString(value));
 
 
  175  void appendContentLine(
const size_t& 
i, 
const std::string &
str) {
 
  176    ptr_->appendContentLine(
i, 
str);
 
  179  void removeContentLine(
const size_t& i) {
 
  180    ptr_->removeContentLine(i);
 
  188#pragma warning(disable:4251) 
  190  RCP<XMLObjectImplem> ptr_;
 
 
  199TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT 
bool XMLObject::getRequired<bool>(
const std::string& name) 
const;
 
  202TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT 
int XMLObject::getRequired<int>(
const std::string& name) 
const;
 
  205TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT 
double XMLObject::getRequired<double>(
const std::string& name) 
const;
 
  208TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT std::string XMLObject::getRequired<std::string>(
const std::string& name) 
const;
 
  211TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT 
void XMLObject::addAttribute<const std::string&>(
const std::string& name, 
const std::string& value);
 
  231  return xml.toString();
 
 
A utilities class for Teuchos.
 
Low level implementation of XMLObject.
 
Thrown when attempting to parse an empty XML std::string.
 
Smart reference counting pointer class for automatic garbage collection.
 
T * get() const
Get the raw C++ pointer to the underlying object.
 
The XMLObjectImplem class takes care of the low-level implementation details of XMLObject.
 
Representation of an XML data tree. XMLObject is a ref-counted handle to a XMLObjectImplem object,...
 
double getRequiredDouble(const std::string &name) const
Get a required attribute, returning it as a double.
 
void addBool(const std::string &name, bool val)
Add a bool as an attribute.
 
void addDouble(const std::string &name, double val)
Add a double as an attribute.
 
int getRequiredInt(const std::string &name) const
Get a required attribute, returning it as an int.
 
void addInt(const std::string &name, int val)
Add an int as an attribute.
 
T getWithDefault(const std::string &name, const T &defaultValue) const
Get an attribute, assigning a default value if the requested attribute does not exist.
 
void addAttribute(const std::string &name, T value)
Lookup whether or not Doubles are allowed.
 
T getRequired(const std::string &name) const
Get a required attribute, returning it as T.
 
XMLObject()
Empty constructor.
 
std::string toString(const XMLObject &xml)
Write XMLObject to std::string.
 
bool isEmpty() const
Find out if a node is empty.
 
std::ostream & operator<<(std::ostream &os, const XMLObject &xml)
Write XMLObject to os stream.
 
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
Macro for throwing an exception with breakpointing to ease debugging.
 
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...