zypp::xml::ParseDef::Impl Class Reference

ParseDef implementation. More...

List of all members.

Public Types

typedef shared_ptr
< Impl
ImplPtr
typedef std::map
< std::string,
ImplPtr
SubNodes

Public Member Functions

 Impl (const std::string &name_r, Mode mode_r)
 ~Impl ()
bool isOptional () const
bool isMandatory () const
bool singleDef () const
bool multiDef () const
void addNode (const ImplPtr &subnode_r)
ImplPtr getNode (const std::string &name_r) const
void take (Reader &reader_r)

Public Attributes

std::string _name
Mode _mode
DefaultIntegral
< unsigned, 0 > 
_visited
Impl_parent
SubNodes _subnodes
ParseDefImplConsume _callback
DefaultIntegral< int,-1 > _parseDepth

Private Member Functions

bool skipNode (Reader &reader_r)
 Skip the current node.
std::string exstr (const std::string &what_r, const Impl &impl_r) const
std::string exstr (const std::string &what_r, const Impl &impl_r, const Reader &reader_r) const

Friends

std::ostream & operator<< (std::ostream &str, const ParseDef::Impl &obj)


Detailed Description

ParseDef implementation.

Todo:
Check using share_ptr_from_this for parent in addNode.

Definition at line 127 of file ParseDef.cc.


Member Typedef Documentation

typedef shared_ptr<Impl> zypp::xml::ParseDef::Impl::ImplPtr

Definition at line 131 of file ParseDef.cc.

typedef std::map<std::string, ImplPtr> zypp::xml::ParseDef::Impl::SubNodes

Definition at line 132 of file ParseDef.cc.


Constructor & Destructor Documentation

zypp::xml::ParseDef::Impl::Impl ( const std::string &  name_r,
Mode  mode_r 
) [inline]

Definition at line 135 of file ParseDef.cc.

zypp::xml::ParseDef::Impl::~Impl (  )  [inline]

Definition at line 141 of file ParseDef.cc.

References _subnodes.


Member Function Documentation

bool zypp::xml::ParseDef::Impl::isOptional (  )  const [inline]

Definition at line 149 of file ParseDef.cc.

References _mode, and zypp::xml::ParseDefTraits::BIT_OPTIONAL.

bool zypp::xml::ParseDef::Impl::isMandatory (  )  const [inline]

Definition at line 152 of file ParseDef.cc.

References _mode, and zypp::xml::ParseDefTraits::BIT_MANDTAORY.

bool zypp::xml::ParseDef::Impl::singleDef (  )  const [inline]

Definition at line 155 of file ParseDef.cc.

References _mode, and zypp::xml::ParseDefTraits::BIT_ONCE.

bool zypp::xml::ParseDef::Impl::multiDef (  )  const [inline]

Definition at line 158 of file ParseDef.cc.

References _mode, and zypp::xml::ParseDefTraits::BIT_MULTIPLE.

Referenced by take().

void zypp::xml::ParseDef::Impl::addNode ( const ImplPtr subnode_r  ) 

Definition at line 216 of file ParseDef.cc.

References _subnodes, exstr(), and ZYPP_THROW.

ImplPtr zypp::xml::ParseDef::Impl::getNode ( const std::string &  name_r  )  const [inline]

Definition at line 164 of file ParseDef.cc.

References _subnodes.

Referenced by take().

void zypp::xml::ParseDef::Impl::take ( Reader reader_r  ) 

Definition at line 237 of file ParseDef.cc.

References _callback, _name, _parseDepth, _subnodes, _visited, zypp::xml::ParseDefImplConsume::cdata(), zypp::xml::ParseDefImplConsume::done(), zypp::xml::ParseDefImplConsume::doneSubnode(), exstr(), getNode(), multiDef(), zypp::xml::Reader::nextNode(), skipNode(), zypp::xml::ParseDefImplConsume::start(), zypp::xml::ParseDefImplConsume::startSubnode(), zypp::xml::ParseDefImplConsume::text(), WAR, and ZYPP_THROW.

bool zypp::xml::ParseDef::Impl::skipNode ( xml::Reader reader_r  )  [private]

Skip the current node.

Precondition:
Current node must be XML_READER_TYPE_ELEMENT.
Postcondition:
At the corresponding end node. (XML_READER_TYPE_END_ELEMENT or atill at the same node, if it'a an empty element <node />).
Returns:
last call to xml::Reader::nextNode.
Exceptions:
ParseDefValidateException if no matching end node found.

Definition at line 343 of file ParseDef.cc.

References exstr(), zypp::str::form(), zypp::xml::Reader::seekToEndNode(), and ZYPP_THROW.

Referenced by take().

std::string zypp::xml::ParseDef::Impl::exstr ( const std::string &  what_r,
const Impl impl_r 
) const [inline, private]

Definition at line 185 of file ParseDef.cc.

Referenced by addNode(), skipNode(), and take().

std::string zypp::xml::ParseDef::Impl::exstr ( const std::string &  what_r,
const Impl impl_r,
const Reader reader_r 
) const [inline, private]

Definition at line 191 of file ParseDef.cc.


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  str,
const ParseDef::Impl obj 
) [friend]

Definition at line 362 of file ParseDef.cc.


Member Data Documentation

std::string zypp::xml::ParseDef::Impl::_name

Definition at line 199 of file ParseDef.cc.

Referenced by zypp::xml::operator<<(), and take().

Mode zypp::xml::ParseDef::Impl::_mode

Definition at line 200 of file ParseDef.cc.

Referenced by isMandatory(), isOptional(), multiDef(), zypp::xml::operator<<(), and singleDef().

DefaultIntegral<unsigned,0> zypp::xml::ParseDef::Impl::_visited

Definition at line 201 of file ParseDef.cc.

Referenced by zypp::xml::operator<<(), and take().

Impl* zypp::xml::ParseDef::Impl::_parent

Definition at line 203 of file ParseDef.cc.

SubNodes zypp::xml::ParseDef::Impl::_subnodes

Definition at line 204 of file ParseDef.cc.

Referenced by addNode(), getNode(), take(), and ~Impl().

ParseDefImplConsume zypp::xml::ParseDef::Impl::_callback

Definition at line 205 of file ParseDef.cc.

Referenced by take().

DefaultIntegral<int,-1> zypp::xml::ParseDef::Impl::_parseDepth

Definition at line 207 of file ParseDef.cc.

Referenced by take().


The documentation for this class was generated from the following file:
Generated on Tue Sep 25 19:23:30 2007 for libzypp by  doxygen 1.5.3