libzypp  10.5.0
zypp::xml::ParseDef::Impl Class Reference

ParseDef implementation. More...

List of all members.

Public Types

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

Public Member Functions

 Impl (const std::string &name_r, Mode mode_r, const shared_ptr< ParseDefConsume > &target_r=shared_ptr< ParseDefConsume >())
 ~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 94 of file ParseDef.cc.


Member Typedef Documentation

Definition at line 98 of file ParseDef.cc.

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

Definition at line 99 of file ParseDef.cc.


Constructor & Destructor Documentation

zypp::xml::ParseDef::Impl::Impl ( const std::string &  name_r,
Mode  mode_r,
const shared_ptr< ParseDefConsume > &  target_r = shared_ptr<ParseDefConsume>() 
) [inline]

Definition at line 102 of file ParseDef.cc.

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

Definition at line 111 of file ParseDef.cc.


Member Function Documentation

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

Definition at line 119 of file ParseDef.cc.

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

Definition at line 122 of file ParseDef.cc.

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

Definition at line 125 of file ParseDef.cc.

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

Definition at line 128 of file ParseDef.cc.

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

Definition at line 186 of file ParseDef.cc.

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

Definition at line 134 of file ParseDef.cc.

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

Definition at line 207 of file ParseDef.cc.

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:
ParseDefValidateExceptionif no matching end node found.

Definition at line 329 of file ParseDef.cc.

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

Definition at line 155 of file ParseDef.cc.

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 161 of file ParseDef.cc.


Friends And Related Function Documentation

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

Definition at line 348 of file ParseDef.cc.


Member Data Documentation

Definition at line 169 of file ParseDef.cc.

Definition at line 171 of file ParseDef.cc.


The documentation for this class was generated from the following file: