aGrUM  0.20.3
a C++ library for (probabilistic) graphical models
ticpp::Comment Class Reference

Wrapper around TiXmlComment. More...

#include <ticpp.h>

+ Inheritance diagram for ticpp::Comment:
+ Collaboration diagram for ticpp::Comment:

Public Member Functions

 Comment ()
 Constructor. More...
 
 Comment (TiXmlComment *comment)
 Constructor. More...
 
 Comment (const std::string &comment)
 Constructor. More...
 
template<class T >
void GetValue (T *value) const
 Get the value of this node Uses Base::FromString to convert TiXmlNode::ValueStr from a std::string, and puts it in the passed pointer. More...
 
std::string Value () const
 Get the value of this node. More...
 
template<class T >
void SetValue (const T &value)
 Set the value of this node. More...
 
void Clear ()
 Clear all Nodes below this. More...
 
NodeParent (bool throwIfNoParent=true) const
 The Parent of this Node. More...
 
NodeFirstChild (bool throwIfNoChildren=true) const
 The first child of this node. More...
 
NodeFirstChild (const char *value, bool throwIfNoChildren=true) const
 
NodeFirstChild (const std::string &value, bool throwIfNoChildren=true) const
 The first child of this node with the matching value. More...
 
NodeLastChild (bool throwIfNoChildren=true) const
 The last child of this node. More...
 
NodeLastChild (const char *value, bool throwIfNoChildren=true) const
 
NodeLastChild (const std::string &value, bool throwIfNoChildren=true) const
 The last child of this node with the matching value. More...
 
NodeIterateChildren (Node *previous) const
 An alternate way to walk the children of a node. More...
 
NodeIterateChildren (const std::string &value, Node *previous) const
 This flavor of IterateChildren searches for children with a particular value. More...
 
NodeInsertEndChild (Node &addThis)
 Adds a child past the LastChild. More...
 
NodeLinkEndChild (Node *childNode)
 Adds a child past the LastChild. More...
 
NodeInsertBeforeChild (Node *beforeThis, Node &addThis)
 Adds a child before the specified child. More...
 
NodeInsertAfterChild (Node *afterThis, Node &addThis)
 Adds a child after the specified child. More...
 
NodeReplaceChild (Node *replaceThis, Node &withThis)
 Replace a child of this node. More...
 
void RemoveChild (Node *removeThis)
 Delete a child of this node. More...
 
NodePreviousSibling (bool throwIfNoSiblings=true) const
 Navigate to a sibling node. More...
 
NodePreviousSibling (const std::string &value, bool throwIfNoSiblings=true) const
 Navigate to a sibling node with the given value. More...
 
NodePreviousSibling (const char *value, bool throwIfNoSiblings=true) const
 
NodeNextSibling (bool throwIfNoSiblings=true) const
 Navigate to a sibling node. More...
 
NodeNextSibling (const std::string &value, bool throwIfNoSiblings=true) const
 Navigate to a sibling node with the given value. More...
 
NodeNextSibling (const char *value, bool throwIfNoSiblings=true) const
 
template<class T >
void IterateFirst (const std::string &value, T **first) const
 
virtual void IterateFirst (const std::string &, Attribute **) const
 
template<class T >
void IterateNext (const std::string &value, T **next) const
 
template<class T >
void IteratePrevious (const std::string &value, T **previous) const
 
ElementNextSiblingElement (bool throwIfNoSiblings=true) const
 Navigate to a sibling element. More...
 
ElementNextSiblingElement (const std::string &value, bool throwIfNoSiblings=true) const
 Navigate to a sibling element with the given value. More...
 
ElementNextSiblingElement (const char *value, bool throwIfNoSiblings=true) const
 
ElementFirstChildElement (bool throwIfNoChildren=true) const
 The first child element of this node. More...
 
ElementFirstChildElement (const char *value, bool throwIfNoChildren=true) const
 
ElementFirstChildElement (const std::string &value, bool throwIfNoChildren=true) const
 The first child element of this node with the matching value. More...
 
int Type () const
 Query the type (as TiXmlNode::NodeType ) of this node. More...
 
DocumentGetDocument (bool throwIfNoDocument=true) const
 Return a pointer to the Document this node lives in. More...
 
bool NoChildren () const
 Check if this node has no children. More...
 
template<class T >
T * To () const
 Pointer conversion ( NOT OBJECT CONVERSION ) - replaces TiXmlNode::ToElement, TiXmlNode::ToDocument, TiXmlNode::ToComment, etc. More...
 
DocumentToDocument () const
 Pointer conversion - replaces TiXmlNode::ToDocument. More...
 
ElementToElement () const
 Pointer conversion - replaces TiXmlNode::ToElement. More...
 
CommentToComment () const
 Pointer conversion - replaces TiXmlNode::ToComment. More...
 
TextToText () const
 Pointer conversion - replaces TiXmlNode::ToText. More...
 
DeclarationToDeclaration () const
 Pointer conversion - replaces TiXmlNode::ToDeclaration. More...
 
StylesheetReferenceToStylesheetReference () const
 Pointer conversion - replaces TiXmlNode::ToStylesheetReference. More...
 
std::unique_ptr< NodeClone () const
 Create an exact duplicate of this node and return it. More...
 
bool Accept (TiXmlVisitor *visitor) const
 Accept a hierchical visit the nodes in the TinyXML DOM. More...
 
template<class T >
std::string ToString (const T &value) const
 Converts any class with a proper overload of the << opertor to a std::string. More...
 
std::string ToString (const std::string &value) const
 
template<class T >
void FromString (const std::string &temp, T *out) const
 Converts a std::string to any class with a proper overload of the >> opertor. More...
 
void FromString (const std::string &temp, std::string *out) const
 Specialization for std::string. More...
 
int Row () const
 Return the position, in the original source file, of this node or attribute. More...
 
int Column () const
 Return the position, in the original source file, of this node or attribute. More...
 
bool operator== (const Base &rhs) const
 Compare internal TiXml pointers to determine is both are wrappers around the same node. More...
 
bool operator!= (const Base &rhs) const
 Compare internal TiXml pointers to determine is both are wrappers around the same node. More...
 
std::string BuildDetailedErrorString () const
 Builds detailed error string using TiXmlDocument::Error() and others. More...
 

Protected Attributes

TiXmlCommentm_tiXmlPointer
 Internal pointer to the TiXml Class which is being wrapped. More...
 
TiCppRCImpm_impRC
 Holds status of internal TiXmlPointer - use this to determine if object has been deleted already. More...
 

Protected Member Functions

TiXmlNodeGetTiXmlPointer () const
 
void SetTiXmlPointer (TiXmlComment *newPointer)
 
TiXmlBaseGetBasePointer () const
 
NodeNodeFactory (TiXmlNode *tiXmlNode, bool throwIfNull=true, bool rememberSpawnedWrapper=true) const
 
void SetImpRC (TiXmlBase *nodeBase)
 
void ValidatePointer () const
 

Detailed Description

Wrapper around TiXmlComment.

Definition at line 1349 of file ticpp.h.

Constructor & Destructor Documentation

◆ Comment() [1/3]

Comment::Comment ( )

Constructor.

Definition at line 656 of file ticpp.cpp.

References Comment().

Referenced by Comment().

658  m_impRC->InitRef();
659 }
void InitRef()
Set Reference Count to 1 - dangerous! - Use only if you are sure of the consequences.
Definition: ticpp.cpp:967
TiCppRCImp * m_impRC
Holds status of internal TiXmlPointer - use this to determine if object has been deleted already...
Definition: ticpp.h:267
An XML comment.
Definition: tinyxml.h:1330
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Comment() [2/3]

Comment::Comment ( TiXmlComment comment)

Constructor.

Definition at line 661 of file ticpp.cpp.

References Comment().

Referenced by Comment(), ticpp::Node::ToComment(), and ticpp::Visitor::Visit().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Comment() [3/3]

Comment::Comment ( const std::string &  comment)

Constructor.

Definition at line 664 of file ticpp.cpp.

References Comment().

Referenced by Comment().

666  m_impRC->InitRef();
667  m_tiXmlPointer->SetValue(comment);
668 }
void SetValue(const char *_value)
Changes the value of the node.
Definition: tinyxml.h:538
TiXmlComment * m_tiXmlPointer
Internal pointer to the TiXml Class which is being wrapped.
Definition: ticpp.h:1262
void InitRef()
Set Reference Count to 1 - dangerous! - Use only if you are sure of the consequences.
Definition: ticpp.cpp:967
TiCppRCImp * m_impRC
Holds status of internal TiXmlPointer - use this to determine if object has been deleted already...
Definition: ticpp.h:267
An XML comment.
Definition: tinyxml.h:1330
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Function Documentation

◆ Accept()

bool Node::Accept ( TiXmlVisitor visitor) const
inherited

Accept a hierchical visit the nodes in the TinyXML DOM.

Returns
The boolean returned by the visitor.

Definition at line 650 of file ticpp.cpp.

References TiXmlNode::Accept(), and ticpp::Node::GetTiXmlPointer().

650  {
651  return GetTiXmlPointer()->Accept(visitor);
652 }
virtual TiXmlNode * GetTiXmlPointer() const =0
virtual bool Accept(TiXmlVisitor *visitor) const =0
Accept a hierchical visit the nodes in the TinyXML DOM.
+ Here is the call graph for this function:

◆ BuildDetailedErrorString()

std::string ticpp::Base::BuildDetailedErrorString ( ) const
inlineinherited

Builds detailed error string using TiXmlDocument::Error() and others.

Definition at line 238 of file ticpp.h.

References TiXmlDocument::Error(), and ticpp::Base::GetBasePointer().

238  {
239  std::ostringstream full_message;
240 #ifndef TICPP_NO_RTTI
241  TiXmlNode* node = dynamic_cast< TiXmlNode* >(GetBasePointer());
242 
243  if (node != 0) {
244  TiXmlDocument* doc = node->GetDocument();
245 
246  if (doc != 0) {
247  if (doc->Error()) {
248  full_message << "\nDescription: " << doc->ErrorDesc() << "\nFile: "
249  << (strlen(doc->Value()) > 0 ? doc->Value()
250  : "<unnamed-file>")
251  << "\nLine: " << doc->ErrorRow()
252  << "\nColumn: " << doc->ErrorCol();
253  }
254  }
255  }
256 
257 #endif
258  return full_message.str();
259  }
int ErrorCol() const
The column where the error occured. See ErrorRow()
Definition: tinyxml.h:1762
const char * ErrorDesc() const
Contains a textual (english) description of the error if one occurs.
Definition: tinyxml.h:1743
virtual TiXmlBase * GetBasePointer() const =0
bool Error() const
If an error occurs, Error will be set to true.
Definition: tinyxml.h:1740
const char * Value() const
The meaning of &#39;value&#39; changes for the specific type of TiXmlNode.
Definition: tinyxml.h:517
Always the top level node.
Definition: tinyxml.h:1655
int ErrorRow() const
Returns the location (if known) of the error.
Definition: tinyxml.h:1761
const TiXmlDocument * GetDocument() const
Return a pointer to the Document this node lives in.
Definition: tinyxml.cpp:424
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
+ Here is the call graph for this function:

◆ Clear()

void Node::Clear ( )
inherited

Clear all Nodes below this.

Simple wrapper for TiXmlNode::Clear.

Definition at line 232 of file ticpp.cpp.

References TiXmlNode::Clear(), and ticpp::Node::GetTiXmlPointer().

232 { GetTiXmlPointer()->Clear(); }
virtual TiXmlNode * GetTiXmlPointer() const =0
void Clear()
Delete all the children of this node. Does not affect &#39;this&#39;.
Definition: tinyxml.cpp:139
+ Here is the call graph for this function:

◆ Clone()

std::unique_ptr< Node > Node::Clone ( ) const
inherited

Create an exact duplicate of this node and return it.

Note
Using auto_ptr to manage the memory declared on the heap by TiXmlNode::Clone.
// Now using clone
ticpp::Document doc( "C:\\Test.xml" );
ticpp::Node* sectionToClone;
sectionToClone = doc.FirstChild( "settings" );
std::auto_ptr< ticpp::Node > clonedNode = sectionToClone->Clone();
// Now you can use the clone.
ticpp::Node* node2 = clonedNode->FirstChildElement()->FirstChild();
...
// After the variable clonedNode goes out of scope it will automatically be
cleaned up.
Returns
Pointer the duplicate node.

Definition at line 635 of file ticpp.cpp.

References TiXmlNode::Clone(), and ticpp::Node::GetTiXmlPointer().

635  {
636  TiXmlNode* node = GetTiXmlPointer()->Clone();
637 
638  if (0 == node) {
639  TICPPTHROW("Node could not be cloned");
640  }
641 
642  std::unique_ptr< Node > temp(NodeFactory(node, false, false));
643 
644  // Take ownership of the memory from TiXml
645  temp->m_impRC->InitRef();
646 
647  return temp;
648 }
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual TiXmlNode * GetTiXmlPointer() const =0
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
virtual TiXmlNode * Clone() const =0
Create an exact duplicate of this node and return it.
Node * NodeFactory(TiXmlNode *tiXmlNode, bool throwIfNull=true, bool rememberSpawnedWrapper=true) const
Definition: ticpp.cpp:181
+ Here is the call graph for this function:

◆ Column()

int ticpp::Base::Column ( ) const
inlineinherited

Return the position, in the original source file, of this node or attribute.

Wrapper around TiXmlBase::Row()

Definition at line 215 of file ticpp.h.

References TiXmlBase::Column(), and ticpp::Base::GetBasePointer().

215 { return GetBasePointer()->Column(); }
virtual TiXmlBase * GetBasePointer() const =0
int Column() const
See Row()
Definition: tinyxml.h:276
+ Here is the call graph for this function:

◆ FirstChild() [1/3]

Node * Node::FirstChild ( bool  throwIfNoChildren = true) const
inherited

The first child of this node.

Parameters
throwIfNoChildren[DEF] If true, will throw an exception if there are no children.
Returns
Pointer to child, Null if no children and 'throwIfNoChildren' is false.
Exceptions
ExceptionWhen throwIfNoChildren is true, and TiXmlNode::FirstChild returns Null.
See also
TiXmlNode::FirstChild

Definition at line 244 of file ticpp.cpp.

References ticpp::Node::FirstChild().

244  {
245  return FirstChild("", throwIfNoChildren);
246 }
Node * FirstChild(bool throwIfNoChildren=true) const
The first child of this node.
Definition: ticpp.cpp:244
+ Here is the call graph for this function:

◆ FirstChild() [2/3]

Node * Node::FirstChild ( const char *  value,
bool  throwIfNoChildren = true 
) const
inherited

Definition at line 252 of file ticpp.cpp.

References TiXmlNode::FirstChild(), ticpp::Node::GetTiXmlPointer(), and ticpp::Node::NodeFactory().

Referenced by ticpp::Node::FirstChild().

252  {
253  TiXmlNode* childNode;
254 
255  if (0 == strlen(value)) {
256  childNode = GetTiXmlPointer()->FirstChild();
257  } else {
258  childNode = GetTiXmlPointer()->FirstChild(value);
259  }
260 
261  if ((0 == childNode) && throwIfNoChildren) {
262  TICPPTHROW("Child with the value of \"" << value << "\" not found");
263  }
264 
265  return NodeFactory(childNode, false);
266 }
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual TiXmlNode * GetTiXmlPointer() const =0
const TiXmlNode * FirstChild() const
The first child of this node. Will be null if there are no children.
Definition: tinyxml.h:552
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
Node * NodeFactory(TiXmlNode *tiXmlNode, bool throwIfNull=true, bool rememberSpawnedWrapper=true) const
Definition: ticpp.cpp:181
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FirstChild() [3/3]

Node * Node::FirstChild ( const std::string &  value,
bool  throwIfNoChildren = true 
) const
inherited

The first child of this node with the matching value.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
valueValue to match.
throwIfNoChildren[DEF] If true, will throw an exception if there are no children.
See also
FirstChild( const char* value, bool throwIfNoChildren = true )

Definition at line 248 of file ticpp.cpp.

248  {
249  return FirstChild(value.c_str(), throwIfNoChildren);
250 }
Node * FirstChild(bool throwIfNoChildren=true) const
The first child of this node.
Definition: ticpp.cpp:244

◆ FirstChildElement() [1/3]

Element * Node::FirstChildElement ( bool  throwIfNoChildren = true) const
inherited

The first child element of this node.

Parameters
throwIfNoChildren[DEF] If true, will throw an exception if there are no element children.
Returns
Pointer to child, Null if no element children and 'throwIfNoChildren' is false.
Exceptions
ExceptionWhen throwIfNoChildren is true, and TiXmlNode::FirstChildElement returns Null.
See also
TiXmlNode::FirstChildElement

Definition at line 501 of file ticpp.cpp.

References ticpp::Node::FirstChildElement().

501  {
502  return FirstChildElement("", throwIfNoChildren);
503 }
Element * FirstChildElement(bool throwIfNoChildren=true) const
The first child element of this node.
Definition: ticpp.cpp:501
+ Here is the call graph for this function:

◆ FirstChildElement() [2/3]

Element * Node::FirstChildElement ( const char *  value,
bool  throwIfNoChildren = true 
) const
inherited

Definition at line 510 of file ticpp.cpp.

References ticpp::Element::Element(), TiXmlNode::FirstChildElement(), and ticpp::Node::GetTiXmlPointer().

Referenced by ticpp::Node::FirstChildElement().

510  {
511  TiXmlElement* element;
512 
513  if (0 == strlen(value)) {
514  element = GetTiXmlPointer()->FirstChildElement();
515  } else {
516  element = GetTiXmlPointer()->FirstChildElement(value);
517  }
518 
519  if (0 == element) {
520  if (throwIfNoChildren) {
521  TICPPTHROW("Element (" << Value()
522  << ") does NOT contain a child with the value of '"
523  << value
524  << "'")
525  } else {
526  return 0;
527  }
528  }
529 
530  Element* temp = new Element(element);
531  element->m_spawnedWrappers.push_back(temp);
532 
533  return temp;
534 }
std::vector< ticpp::Base *> m_spawnedWrappers
Remember all wrappers that we&#39;ve created with &#39;new&#39; - ( e.g.
Definition: ticpprc.h:63
Wrapper around TiXmlElement.
Definition: ticpp.h:1493
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
const TiXmlElement * FirstChildElement() const
Convenience function to get through elements.
Definition: tinyxml.cpp:384
virtual TiXmlNode * GetTiXmlPointer() const =0
std::string Value() const
Get the value of this node.
Definition: ticpp.cpp:230
The element is a container class.
Definition: tinyxml.h:1095
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FirstChildElement() [3/3]

Element * Node::FirstChildElement ( const std::string &  value,
bool  throwIfNoChildren = true 
) const
inherited

The first child element of this node with the matching value.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
valueValue to match.
throwIfNoChildren[DEF] If true, will throw an exception if there are no element children.
See also
FirstChildElement( const char* value, bool throwIfNoChildren = true )

Definition at line 505 of file ticpp.cpp.

506  {
507  return FirstChildElement(value.c_str(), throwIfNoChildren);
508 }
Element * FirstChildElement(bool throwIfNoChildren=true) const
The first child element of this node.
Definition: ticpp.cpp:501

◆ FromString() [1/2]

template<class T >
void ticpp::Base::FromString ( const std::string &  temp,
T *  out 
) const
inlineinherited

Converts a std::string to any class with a proper overload of the >> opertor.

Parameters
tempThe string to be converted
out[OUT] The container for the returned value
Exceptions
ExceptionWhen temp cannot be converted to the target type

Definition at line 189 of file ticpp.h.

189  {
190  std::istringstream val(temp);
191  val >> *out;
192 
193  if (val.fail()) {
194  TICPPTHROW("Could not convert \"" << temp << "\" to target type");
195  }
196  }
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92

◆ FromString() [2/2]

void ticpp::Base::FromString ( const std::string &  temp,
std::string *  out 
) const
inlineinherited

Specialization for std::string.

Definition at line 201 of file ticpp.h.

201  {
202  *out = temp;
203  }

◆ GetBasePointer()

TiXmlBase* ticpp::Node::GetBasePointer ( ) const
inlineprotectedvirtualinherited

Implements ticpp::Base.

Definition at line 1073 of file ticpp.h.

1073 { return GetTiXmlPointer(); }
virtual TiXmlNode * GetTiXmlPointer() const =0

◆ GetDocument()

Document * Node::GetDocument ( bool  throwIfNoDocument = true) const
inherited

Return a pointer to the Document this node lives in.

Parameters
throwIfNoDocument[DEF] If true, will throw an exception if this node is not linked under a Document.
Returns
A pointer to the Document this node lives in, nullptr if not linked under a Document, and 'throwIfNoDocument' is false.
Exceptions
ExceptionWhen this node is not linked under a Document and 'throwIfNoDocument' is true.

Definition at line 538 of file ticpp.cpp.

References ticpp::Document::Document().

538  {
540 
541  if (0 == doc) {
542  if (throwIfNoDocument) {
543  TICPPTHROW("This node (" << Value() << ") is not linked under a document")
544  } else {
545  return 0;
546  }
547  }
548 
549  Document* temp = new Document(doc);
550  doc->m_spawnedWrappers.push_back(temp);
551 
552  return temp;
553 }
std::vector< ticpp::Base *> m_spawnedWrappers
Remember all wrappers that we&#39;ve created with &#39;new&#39; - ( e.g.
Definition: ticpprc.h:63
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual TiXmlNode * GetTiXmlPointer() const =0
std::string Value() const
Get the value of this node.
Definition: ticpp.cpp:230
Always the top level node.
Definition: tinyxml.h:1655
const TiXmlDocument * GetDocument() const
Return a pointer to the Document this node lives in.
Definition: tinyxml.cpp:424
Wrapper around TiXmlDocument.
Definition: ticpp.h:1404
+ Here is the call graph for this function:

◆ GetTiXmlPointer()

TiXmlNode* ticpp::NodeImp< TiXmlComment >::GetTiXmlPointer ( ) const
inlineprotectedvirtualinherited

Implements ticpp::Node.

Definition at line 1271 of file ticpp.h.

1271  {
1272  ValidatePointer();
1273  return m_tiXmlPointer;
1274  }
void ValidatePointer() const
Definition: ticpp.h:281
TiXmlComment * m_tiXmlPointer
Internal pointer to the TiXml Class which is being wrapped.
Definition: ticpp.h:1262

◆ GetValue()

template<class T >
void ticpp::Node::GetValue ( T *  value) const
inlineinherited

Get the value of this node Uses Base::FromString to convert TiXmlNode::ValueStr from a std::string, and puts it in the passed pointer.

Parameters
value[OUT] A pointer to fill with the value

Definition at line 470 of file ticpp.h.

470  {
471  FromString(GetTiXmlPointer()->ValueStr(), value);
472  }
virtual TiXmlNode * GetTiXmlPointer() const =0
void FromString(const std::string &temp, T *out) const
Converts a std::string to any class with a proper overload of the >> opertor.
Definition: ticpp.h:189

◆ InsertAfterChild()

Node * Node::InsertAfterChild ( Node afterThis,
Node addThis 
)
inherited

Adds a child after the specified child.

Throws if you try to insert a document.

Parameters
afterThisNode that will have addThis linked after.
addThisNode to insert after.
Exceptions
ExceptionWhen TiXmlNode::InsertAfterChild returns Null.
See also
InsertBeforeChild
TiXmlNode::InsertAfterChild

Definition at line 365 of file ticpp.cpp.

References TiXmlNode::DOCUMENT, ticpp::Node::GetTiXmlPointer(), TiCppRCImp::IncRef(), TiXmlNode::InsertAfterChild(), ticpp::Base::m_impRC, ticpp::Node::NodeFactory(), and ticpp::Node::Type().

365  {
366  if (addThis.Type() == TiXmlNode::DOCUMENT) {
367  TICPPTHROW("Node is a Document and can't be inserted");
368  }
369 
370  // Increment reference count when adding to the tree
371  addThis.m_impRC->IncRef();
372 
374  afterThis->GetTiXmlPointer(), *addThis.GetTiXmlPointer());
375 
376  if (0 == pointer) {
377  TICPPTHROW("Node can't be inserted");
378  }
379 
380  return NodeFactory(pointer);
381 }
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual TiXmlNode * GetTiXmlPointer() const =0
int Type() const
Query the type (as TiXmlNode::NodeType ) of this node.
Definition: ticpp.cpp:536
void IncRef()
Increment Reference Count.
Definition: ticpp.cpp:956
TiXmlNode * InsertAfterChild(TiXmlNode *afterThis, const TiXmlNode &addThis)
Add a new node related to this.
Definition: tinyxml.cpp:231
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
TiCppRCImp * m_impRC
Holds status of internal TiXmlPointer - use this to determine if object has been deleted already...
Definition: ticpp.h:267
Node * NodeFactory(TiXmlNode *tiXmlNode, bool throwIfNull=true, bool rememberSpawnedWrapper=true) const
Definition: ticpp.cpp:181
+ Here is the call graph for this function:

◆ InsertBeforeChild()

Node * Node::InsertBeforeChild ( Node beforeThis,
Node addThis 
)
inherited

Adds a child before the specified child.

Throws if you try to insert a document.

Parameters
beforeThisNode that will have addThis linked before.
addThisNode to insert before.
Exceptions
ExceptionWhen TiXmlNode::InsertBeforeChild returns Null.
See also
InsertAfterChild
TiXmlNode::InsertBeforeChild

Definition at line 347 of file ticpp.cpp.

References TiXmlNode::DOCUMENT, ticpp::Node::GetTiXmlPointer(), TiCppRCImp::IncRef(), TiXmlNode::InsertBeforeChild(), ticpp::Base::m_impRC, ticpp::Node::NodeFactory(), and ticpp::Node::Type().

347  {
348  if (addThis.Type() == TiXmlNode::DOCUMENT) {
349  TICPPTHROW("Node is a Document and can't be inserted");
350  }
351 
352  // Increment reference count when adding to the tree
353  addThis.m_impRC->IncRef();
354 
356  beforeThis->GetTiXmlPointer(), *addThis.GetTiXmlPointer());
357 
358  if (0 == pointer) {
359  TICPPTHROW("Node can't be inserted");
360  }
361 
362  return NodeFactory(pointer);
363 }
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
TiXmlNode * InsertBeforeChild(TiXmlNode *beforeThis, const TiXmlNode &addThis)
Add a new node related to this.
Definition: tinyxml.cpp:197
virtual TiXmlNode * GetTiXmlPointer() const =0
int Type() const
Query the type (as TiXmlNode::NodeType ) of this node.
Definition: ticpp.cpp:536
void IncRef()
Increment Reference Count.
Definition: ticpp.cpp:956
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
TiCppRCImp * m_impRC
Holds status of internal TiXmlPointer - use this to determine if object has been deleted already...
Definition: ticpp.h:267
Node * NodeFactory(TiXmlNode *tiXmlNode, bool throwIfNull=true, bool rememberSpawnedWrapper=true) const
Definition: ticpp.cpp:181
+ Here is the call graph for this function:

◆ InsertEndChild()

Node * Node::InsertEndChild ( Node addThis)
inherited

Adds a child past the LastChild.

Throws if you try to insert a document.

Note
This takes a copy of addThis so it is not as efficiant as LinkEndChild.
Parameters
addThisNode to insert.
Exceptions
ExceptionWhen TiXmlNode::InsertEndChild returns Null
See also
LinkEndChild
TiXmlNode::InsertEndChild

Definition at line 317 of file ticpp.cpp.

References TiXmlNode::DOCUMENT, ticpp::Node::GetTiXmlPointer(), TiXmlNode::InsertEndChild(), ticpp::Node::NodeFactory(), and ticpp::Node::Type().

317  {
318  if (addThis.Type() == TiXmlNode::DOCUMENT) {
319  TICPPTHROW("Node is a Document and can't be inserted");
320  }
321 
322  TiXmlNode* pointer =
324 
325  if (0 == pointer) {
326  TICPPTHROW("Node can't be inserted");
327  }
328 
329  return NodeFactory(pointer);
330 }
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
TiXmlNode * InsertEndChild(const TiXmlNode &addThis)
Add a new node related to this.
Definition: tinyxml.cpp:181
virtual TiXmlNode * GetTiXmlPointer() const =0
int Type() const
Query the type (as TiXmlNode::NodeType ) of this node.
Definition: ticpp.cpp:536
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
Node * NodeFactory(TiXmlNode *tiXmlNode, bool throwIfNull=true, bool rememberSpawnedWrapper=true) const
Definition: ticpp.cpp:181
+ Here is the call graph for this function:

◆ IterateChildren() [1/2]

Node * Node::IterateChildren ( Node previous) const
inherited

An alternate way to walk the children of a node.

Simple wrapper for TiXmlNode::IterateChildren.

Parameters
previousThe previous Node* that was returned from IterateChildren.
Returns
nullptr When there are no more children.

Definition at line 292 of file ticpp.cpp.

References ticpp::Node::GetTiXmlPointer(), TiXmlNode::IterateChildren(), and ticpp::Node::NodeFactory().

292  {
293  TiXmlNode* pointer;
294 
295  if (0 == previous) {
296  pointer = GetTiXmlPointer()->IterateChildren(0);
297  } else {
298  pointer = GetTiXmlPointer()->IterateChildren(previous->GetTiXmlPointer());
299  }
300 
301  return NodeFactory(pointer, false);
302 }
virtual TiXmlNode * GetTiXmlPointer() const =0
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
const TiXmlNode * IterateChildren(const TiXmlNode *previous) const
An alternate way to walk the children of a node.
Definition: tinyxml.cpp:331
Node * NodeFactory(TiXmlNode *tiXmlNode, bool throwIfNull=true, bool rememberSpawnedWrapper=true) const
Definition: ticpp.cpp:181
+ Here is the call graph for this function:

◆ IterateChildren() [2/2]

Node * Node::IterateChildren ( const std::string &  value,
Node previous 
) const
inherited

This flavor of IterateChildren searches for children with a particular value.

Simple wrapper for TiXmlNode::IterateChildren.

Parameters
valueThe value you want to search for.
previousThe previous Node* that was returned from IterateChildren.
Returns
nullptr When there are no more children.

Definition at line 304 of file ticpp.cpp.

References ticpp::Node::NodeFactory().

304  {
305  TiXmlNode* pointer;
306 
307  if (0 == previous) {
308  pointer = GetTiXmlPointer()->IterateChildren(value, 0);
309  } else {
310  pointer =
311  GetTiXmlPointer()->IterateChildren(value, previous->GetTiXmlPointer());
312  }
313 
314  return NodeFactory(pointer, false);
315 }
virtual TiXmlNode * GetTiXmlPointer() const =0
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
const TiXmlNode * IterateChildren(const TiXmlNode *previous) const
An alternate way to walk the children of a node.
Definition: tinyxml.cpp:331
Node * NodeFactory(TiXmlNode *tiXmlNode, bool throwIfNull=true, bool rememberSpawnedWrapper=true) const
Definition: ticpp.cpp:181
+ Here is the call graph for this function:

◆ IterateFirst() [1/2]

template<class T >
void ticpp::Node::IterateFirst ( const std::string &  value,
T **  first 
) const
inlineinherited

Definition at line 783 of file ticpp.h.

783  {
784  *first = 0;
785 
786  for (Node* child = FirstChild(value, false); child;
787  child = child->NextSibling(value, false)) {
788  *first = dynamic_cast< T* >(child);
789 
790  if (0 != *first) {
791  return;
792  }
793  }
794  }
Node * NextSibling(bool throwIfNoSiblings=true) const
Navigate to a sibling node.
Definition: ticpp.cpp:438
Node * FirstChild(bool throwIfNoChildren=true) const
The first child of this node.
Definition: ticpp.cpp:244

◆ IterateFirst() [2/2]

virtual void ticpp::Node::IterateFirst ( const std::string &  ,
Attribute **   
) const
inlinevirtualinherited

Reimplemented in ticpp::Element.

Definition at line 796 of file ticpp.h.

796  {
797  TICPPTHROW("Attributes can only be iterated with Elements.")
798  }
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92

◆ IterateNext()

template<class T >
void ticpp::Node::IterateNext ( const std::string &  value,
T **  next 
) const
inlineinherited

Definition at line 808 of file ticpp.h.

808  {
809  Node* sibling = NextSibling(value, false);
810  *next = dynamic_cast< T* >(sibling);
811 
812  while ((0 != sibling) && (0 == *next)) {
813  sibling = sibling->NextSibling(value, false);
814  *next = dynamic_cast< T* >(sibling);
815  }
816  }
Node * NextSibling(bool throwIfNoSiblings=true) const
Navigate to a sibling node.
Definition: ticpp.cpp:438

◆ IteratePrevious()

template<class T >
void ticpp::Node::IteratePrevious ( const std::string &  value,
T **  previous 
) const
inlineinherited

Definition at line 826 of file ticpp.h.

826  {
827  Node* sibling = PreviousSibling(value, false);
828  *previous = dynamic_cast< T* >(sibling);
829 
830  while ((0 != sibling) && (0 == *previous)) {
831  sibling = sibling->PreviousSibling(value, false);
832  *previous = dynamic_cast< T* >(sibling);
833  }
834  }
Node * PreviousSibling(bool throwIfNoSiblings=true) const
Navigate to a sibling node.
Definition: ticpp.cpp:410

◆ LastChild() [1/3]

Node * Node::LastChild ( bool  throwIfNoChildren = true) const
inherited

The last child of this node.

Parameters
throwIfNoChildren[DEF] If true, will throw an exception if there are no children.
Returns
Pointer to child, Null if no children and 'throwIfNoChildren' is false.
Exceptions
ExceptionWhen throwIfNoChildren is true, and TiXmlNode::LastChild returns Null.
See also
TiXmlNode::LastChild

Definition at line 268 of file ticpp.cpp.

References ticpp::Node::LastChild().

268  {
269  return LastChild("", throwIfNoChildren);
270 }
Node * LastChild(bool throwIfNoChildren=true) const
The last child of this node.
Definition: ticpp.cpp:268
+ Here is the call graph for this function:

◆ LastChild() [2/3]

Node * Node::LastChild ( const char *  value,
bool  throwIfNoChildren = true 
) const
inherited

Definition at line 276 of file ticpp.cpp.

References ticpp::Node::GetTiXmlPointer(), TiXmlNode::LastChild(), and ticpp::Node::NodeFactory().

Referenced by ticpp::Node::LastChild().

276  {
277  TiXmlNode* childNode;
278 
279  if (0 == strlen(value)) {
280  childNode = GetTiXmlPointer()->LastChild();
281  } else {
282  childNode = GetTiXmlPointer()->LastChild(value);
283  }
284 
285  if ((0 == childNode) && throwIfNoChildren) {
286  TICPPTHROW("Child with the value of \"" << value << "\" not found");
287  }
288 
289  return NodeFactory(childNode, false);
290 }
const TiXmlNode * LastChild() const
Definition: tinyxml.h:572
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual TiXmlNode * GetTiXmlPointer() const =0
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
Node * NodeFactory(TiXmlNode *tiXmlNode, bool throwIfNull=true, bool rememberSpawnedWrapper=true) const
Definition: ticpp.cpp:181
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LastChild() [3/3]

Node * Node::LastChild ( const std::string &  value,
bool  throwIfNoChildren = true 
) const
inherited

The last child of this node with the matching value.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
valueValue to match.
throwIfNoChildren[DEF] If true, will throw an exception if there are no children.
See also
LastChild( const char* value, bool throwIfNoChildren = true )

Definition at line 272 of file ticpp.cpp.

272  {
273  return LastChild(value.c_str(), throwIfNoChildren);
274 }
Node * LastChild(bool throwIfNoChildren=true) const
The last child of this node.
Definition: ticpp.cpp:268

◆ LinkEndChild()

Node * Node::LinkEndChild ( Node childNode)
inherited

Adds a child past the LastChild.

Throws if you try to link a document.

Parameters
childNodeNode to link.
Exceptions
ExceptionWhen TiXmlNode::LinkEndChild returns Null.
See also
InsertEndChild
TiXmlNode::LinkEndChild

Definition at line 332 of file ticpp.cpp.

References TiXmlNode::DOCUMENT, ticpp::Node::GetTiXmlPointer(), TiCppRCImp::IncRef(), TiXmlNode::LinkEndChild(), ticpp::Base::m_impRC, and ticpp::Node::Type().

332  {
333  if (childNode->Type() == TiXmlNode::DOCUMENT) {
334  TICPPTHROW("Node is a Document and can't be linked");
335  }
336 
337  // Increment reference count when adding to the tree
338  childNode->m_impRC->IncRef();
339 
340  if (0 == GetTiXmlPointer()->LinkEndChild(childNode->GetTiXmlPointer())) {
341  TICPPTHROW("Node can't be linked");
342  }
343 
344  return childNode;
345 }
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual TiXmlNode * GetTiXmlPointer() const =0
int Type() const
Query the type (as TiXmlNode::NodeType ) of this node.
Definition: ticpp.cpp:536
void IncRef()
Increment Reference Count.
Definition: ticpp.cpp:956
TiCppRCImp * m_impRC
Holds status of internal TiXmlPointer - use this to determine if object has been deleted already...
Definition: ticpp.h:267
Node * LinkEndChild(Node *childNode)
Adds a child past the LastChild.
Definition: ticpp.cpp:332
+ Here is the call graph for this function:

◆ NextSibling() [1/3]

Node * Node::NextSibling ( bool  throwIfNoSiblings = true) const
inherited

Navigate to a sibling node.

Wrapper around TiXmlNode::NextSibling.

Parameters
throwIfNoSiblings[DEF] If true, will throw an exception if there are no siblings.
Returns
Pointer to sibling, Null if no siblings and 'throwIfNoSiblings' is false.
Exceptions
ExceptionWhen TiXmlNode::NextSibling returns Null and 'throwIfNoSiblings' is true.

Definition at line 438 of file ticpp.cpp.

References ticpp::Node::NextSibling().

438  {
439  return NextSibling("", throwIfNoSiblings);
440 }
Node * NextSibling(bool throwIfNoSiblings=true) const
Navigate to a sibling node.
Definition: ticpp.cpp:438
+ Here is the call graph for this function:

◆ NextSibling() [2/3]

Node * Node::NextSibling ( const std::string &  value,
bool  throwIfNoSiblings = true 
) const
inherited

Navigate to a sibling node with the given value.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
valueThe value of the node to look for.
throwIfNoSiblings[DEF] If true, will throw an exception if there are no siblings.
See also
NextSibling( bool throwIfNoSiblings )

Definition at line 442 of file ticpp.cpp.

442  {
443  return NextSibling(value.c_str(), throwIfNoSiblings);
444 }
Node * NextSibling(bool throwIfNoSiblings=true) const
Navigate to a sibling node.
Definition: ticpp.cpp:438

◆ NextSibling() [3/3]

Node * Node::NextSibling ( const char *  value,
bool  throwIfNoSiblings = true 
) const
inherited

Definition at line 446 of file ticpp.cpp.

References ticpp::Node::GetTiXmlPointer(), TiXmlNode::NextSibling(), and ticpp::Node::NodeFactory().

Referenced by ticpp::Node::NextSibling().

446  {
447  TiXmlNode* sibling;
448 
449  if (0 == strlen(value)) {
450  sibling = GetTiXmlPointer()->NextSibling();
451  } else {
452  sibling = GetTiXmlPointer()->NextSibling(value);
453  }
454 
455  if ((0 == sibling) && throwIfNoSiblings) {
456  TICPPTHROW("No Siblings found with value, '" << value << "', After this Node ("
457  << Value()
458  << ")")
459  }
460 
461  return NodeFactory(sibling, false);
462 }
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual TiXmlNode * GetTiXmlPointer() const =0
std::string Value() const
Get the value of this node.
Definition: ticpp.cpp:230
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
Node * NodeFactory(TiXmlNode *tiXmlNode, bool throwIfNull=true, bool rememberSpawnedWrapper=true) const
Definition: ticpp.cpp:181
const TiXmlNode * NextSibling(const std::string &_value) const
STL std::string form.
Definition: tinyxml.h:695
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NextSiblingElement() [1/3]

Element * Node::NextSiblingElement ( bool  throwIfNoSiblings = true) const
inherited

Navigate to a sibling element.

Wrapper around TiXmlNode::NextSibling.

Parameters
throwIfNoSiblings[DEF] If true, will throw an exception if there are no sibling element.
Returns
Pointer to sibling, Null if no siblings and 'throwIfNoSiblings' is false.
Exceptions
ExceptionWhen TiXmlNode::NextSibling returns Null and 'throwIfNoSiblings' is true.

Definition at line 464 of file ticpp.cpp.

References ticpp::Node::NextSiblingElement().

464  {
465  return NextSiblingElement("", throwIfNoSiblings);
466 }
Element * NextSiblingElement(bool throwIfNoSiblings=true) const
Navigate to a sibling element.
Definition: ticpp.cpp:464
+ Here is the call graph for this function:

◆ NextSiblingElement() [2/3]

Element * Node::NextSiblingElement ( const std::string &  value,
bool  throwIfNoSiblings = true 
) const
inherited

Navigate to a sibling element with the given value.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
valueThe value of the element to look for.
throwIfNoSiblings[DEF] If true, will throw an exception if there are no sibling elements.
See also
NextSiblingElement( bool throwIfNoSiblings )

Definition at line 468 of file ticpp.cpp.

469  {
470  return NextSiblingElement(value.c_str(), throwIfNoSiblings);
471 }
Element * NextSiblingElement(bool throwIfNoSiblings=true) const
Navigate to a sibling element.
Definition: ticpp.cpp:464

◆ NextSiblingElement() [3/3]

Element * Node::NextSiblingElement ( const char *  value,
bool  throwIfNoSiblings = true 
) const
inherited

Definition at line 473 of file ticpp.cpp.

References ticpp::Element::Element(), ticpp::Node::GetTiXmlPointer(), and TiXmlNode::NextSiblingElement().

Referenced by ticpp::Node::NextSiblingElement().

474  {
475  TiXmlElement* sibling;
476 
477  if (0 == strlen(value)) {
478  sibling = GetTiXmlPointer()->NextSiblingElement();
479  } else {
480  sibling = GetTiXmlPointer()->NextSiblingElement(value);
481  }
482 
483  if (0 == sibling) {
484  if (throwIfNoSiblings) {
485  TICPPTHROW("No Element Siblings found with value, '"
486  << value
487  << "', After this Node ("
488  << Value()
489  << ")")
490  } else {
491  return 0;
492  }
493  }
494 
495  Element* temp = new Element(sibling);
496  sibling->m_spawnedWrappers.push_back(temp);
497 
498  return temp;
499 }
std::vector< ticpp::Base *> m_spawnedWrappers
Remember all wrappers that we&#39;ve created with &#39;new&#39; - ( e.g.
Definition: ticpprc.h:63
Wrapper around TiXmlElement.
Definition: ticpp.h:1493
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual TiXmlNode * GetTiXmlPointer() const =0
std::string Value() const
Get the value of this node.
Definition: ticpp.cpp:230
const TiXmlElement * NextSiblingElement() const
Convenience function to get through elements.
Definition: tinyxml.cpp:404
The element is a container class.
Definition: tinyxml.h:1095
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NoChildren()

bool Node::NoChildren ( ) const
inherited

Check if this node has no children.

Returns
true if this node has no children.

Definition at line 555 of file ticpp.cpp.

References ticpp::Node::GetTiXmlPointer(), and TiXmlNode::NoChildren().

555 { return GetTiXmlPointer()->NoChildren(); }
virtual TiXmlNode * GetTiXmlPointer() const =0
bool NoChildren() const
Returns true if this node has no children.
Definition: tinyxml.h:782
+ Here is the call graph for this function:

◆ NodeFactory()

Node * Node::NodeFactory ( TiXmlNode tiXmlNode,
bool  throwIfNull = true,
bool  rememberSpawnedWrapper = true 
) const
protectedinherited

Definition at line 181 of file ticpp.cpp.

References TiXmlNode::Type().

Referenced by ticpp::Node::FirstChild(), ticpp::Node::InsertAfterChild(), ticpp::Node::InsertBeforeChild(), ticpp::Node::InsertEndChild(), ticpp::Node::IterateChildren(), ticpp::Node::LastChild(), ticpp::Node::NextSibling(), ticpp::Node::Parent(), ticpp::Node::PreviousSibling(), and ticpp::Node::ReplaceChild().

183  {
184  if (0 == tiXmlNode) {
185  if (throwIfNull) {
186  TICPPTHROW("tiXmlNode is nullptr")
187  } else {
188  return 0;
189  }
190  }
191 
192  Node* temp;
193 
194  switch (tiXmlNode->Type()) {
195  case TiXmlNode::DOCUMENT:
196  temp = new Document(tiXmlNode->ToDocument());
197  break;
198 
199  case TiXmlNode::ELEMENT:
200  temp = new Element(tiXmlNode->ToElement());
201  break;
202 
203  case TiXmlNode::COMMENT:
204  temp = new Comment(tiXmlNode->ToComment());
205  break;
206 
207  case TiXmlNode::TEXT:
208  temp = new Text(tiXmlNode->ToText());
209  break;
210 
212  temp = new Declaration(tiXmlNode->ToDeclaration());
213  break;
214 
216  temp = new StylesheetReference(tiXmlNode->ToStylesheetReference());
217  break;
218 
219  default:
220  TICPPTHROW("Type is unsupported")
221  }
222 
223  if (rememberSpawnedWrapper) {
224  tiXmlNode->m_spawnedWrappers.push_back(temp);
225  }
226 
227  return temp;
228 }
Wrapper around TiXmlNode.
Definition: ticpp.h:460
Wrapper around TiXmlComment.
Definition: ticpp.h:1349
std::vector< ticpp::Base *> m_spawnedWrappers
Remember all wrappers that we&#39;ve created with &#39;new&#39; - ( e.g.
Definition: ticpprc.h:63
Wrapper around TiXmlElement.
Definition: ticpp.h:1493
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual const TiXmlElement * ToElement() const
Cast to a more defined type. Will return null if not of the requested type.
Definition: tinyxml.h:788
virtual const TiXmlText * ToText() const
Cast to a more defined type. Will return null if not of the requested type.
Definition: tinyxml.h:800
Wrapper around TiXmlText.
Definition: ticpp.h:1368
virtual const TiXmlDocument * ToDocument() const
Cast to a more defined type. Will return null if not of the requested type.
Definition: tinyxml.h:784
virtual const TiXmlComment * ToComment() const
Cast to a more defined type. Will return null if not of the requested type.
Definition: tinyxml.h:792
Wrapper around TiXmlDeclaration.
Definition: ticpp.h:1886
int Type() const
Query the type (as an enumerated value, above) of this node.
Definition: tinyxml.h:770
virtual const TiXmlDeclaration * ToDeclaration() const
Cast to a more defined type. Will return null if not of the requested type.
Definition: tinyxml.h:804
virtual const TiXmlStylesheetReference * ToStylesheetReference() const
Cast to a more defined type. Will return null if not of the requested type.
Definition: tinyxml.h:808
Wrapper around TiXmlDocument.
Definition: ticpp.h:1404
Wrapper around TiXmlStylesheetReference.
Definition: ticpp.h:1922
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator!=()

bool ticpp::Base::operator!= ( const Base rhs) const
inlineinherited

Compare internal TiXml pointers to determine is both are wrappers around the same node.

Definition at line 231 of file ticpp.h.

References ticpp::Base::GetBasePointer().

231  {
232  return (GetBasePointer() != rhs.GetBasePointer());
233  }
virtual TiXmlBase * GetBasePointer() const =0
+ Here is the call graph for this function:

◆ operator==()

bool ticpp::Base::operator== ( const Base rhs) const
inlineinherited

Compare internal TiXml pointers to determine is both are wrappers around the same node.

Definition at line 222 of file ticpp.h.

References ticpp::Base::GetBasePointer().

222  {
223  return (GetBasePointer() == rhs.GetBasePointer());
224  }
virtual TiXmlBase * GetBasePointer() const =0
+ Here is the call graph for this function:

◆ Parent()

Node * Node::Parent ( bool  throwIfNoParent = true) const
inherited

The Parent of this Node.

Simple wrapper for TiXmlNode::Parent.

Parameters
throwIfNoParent[DEF] If true, throws when Parent = nullptr.
Returns
The parent of this node, nullptr if there is no Parent.
Exceptions
ExceptionWhen throwIfNoParent is true, and TiXmlNode::Parent returns Null.

Definition at line 234 of file ticpp.cpp.

References ticpp::Node::GetTiXmlPointer(), ticpp::Node::NodeFactory(), and TiXmlNode::Parent().

234  {
235  TiXmlNode* parent = GetTiXmlPointer()->Parent();
236 
237  if ((0 == parent) && throwIfNoParent) {
238  TICPPTHROW("No parent exists");
239  }
240 
241  return NodeFactory(parent, false);
242 }
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual TiXmlNode * GetTiXmlPointer() const =0
TiXmlNode * Parent()
One step up the DOM.
Definition: tinyxml.h:549
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
Node * NodeFactory(TiXmlNode *tiXmlNode, bool throwIfNull=true, bool rememberSpawnedWrapper=true) const
Definition: ticpp.cpp:181
+ Here is the call graph for this function:

◆ PreviousSibling() [1/3]

Node * Node::PreviousSibling ( bool  throwIfNoSiblings = true) const
inherited

Navigate to a sibling node.

Wrapper around TiXmlNode::PreviousSibling.

Parameters
throwIfNoSiblings[DEF] If true, will throw an exception if there are no siblings.
Returns
Pointer to sibling, Null if no siblings and 'throwIfNoSiblings' is false.
Exceptions
ExceptionWhen TiXmlNode::PreviousSibling returns Null and 'throwIfNoSiblings' is true.

Definition at line 410 of file ticpp.cpp.

References ticpp::Node::PreviousSibling().

410  {
411  return PreviousSibling("", throwIfNoSiblings);
412 }
Node * PreviousSibling(bool throwIfNoSiblings=true) const
Navigate to a sibling node.
Definition: ticpp.cpp:410
+ Here is the call graph for this function:

◆ PreviousSibling() [2/3]

Node * Node::PreviousSibling ( const std::string &  value,
bool  throwIfNoSiblings = true 
) const
inherited

Navigate to a sibling node with the given value.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
valueThe value of the node to look for.
throwIfNoSiblings[DEF] If true, will throw an exception if there are no siblings.
See also
PreviousSibling( bool throwIfNoSiblings )

Definition at line 414 of file ticpp.cpp.

415  {
416  return PreviousSibling(value.c_str(), throwIfNoSiblings);
417 }
Node * PreviousSibling(bool throwIfNoSiblings=true) const
Navigate to a sibling node.
Definition: ticpp.cpp:410

◆ PreviousSibling() [3/3]

Node * Node::PreviousSibling ( const char *  value,
bool  throwIfNoSiblings = true 
) const
inherited

Definition at line 419 of file ticpp.cpp.

References ticpp::Node::GetTiXmlPointer(), ticpp::Node::NodeFactory(), and TiXmlNode::PreviousSibling().

Referenced by ticpp::Node::PreviousSibling().

419  {
420  TiXmlNode* sibling;
421 
422  if (0 == strlen(value)) {
423  sibling = GetTiXmlPointer()->PreviousSibling();
424  } else {
425  sibling = GetTiXmlPointer()->PreviousSibling(value);
426  }
427 
428  if ((0 == sibling) && throwIfNoSiblings) {
429  TICPPTHROW("No Siblings found with value, '" << value
430  << "', Prior to this Node ("
431  << Value()
432  << ")")
433  }
434 
435  return NodeFactory(sibling, false);
436 }
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual TiXmlNode * GetTiXmlPointer() const =0
std::string Value() const
Get the value of this node.
Definition: ticpp.cpp:230
const TiXmlNode * PreviousSibling() const
Navigate to a sibling node.
Definition: tinyxml.h:678
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
Node * NodeFactory(TiXmlNode *tiXmlNode, bool throwIfNull=true, bool rememberSpawnedWrapper=true) const
Definition: ticpp.cpp:181
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RemoveChild()

void Node::RemoveChild ( Node removeThis)
inherited

Delete a child of this node.

Parameters
removeThisNode to delete.
Exceptions
ExceptionWhen removeThis is not a child of this Node.
See also
TiXmlNode::RemoveChild

Definition at line 401 of file ticpp.cpp.

References ticpp::Node::GetTiXmlPointer(), and TiXmlNode::RemoveChild().

401  {
402  if (!GetTiXmlPointer()->RemoveChild(removeThis->GetTiXmlPointer())) {
403  TICPPTHROW("Node to remove (" << removeThis->Value()
404  << ") is not a child of this Node ("
405  << Value()
406  << ")")
407  }
408 }
void RemoveChild(Node *removeThis)
Delete a child of this node.
Definition: ticpp.cpp:401
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual TiXmlNode * GetTiXmlPointer() const =0
std::string Value() const
Get the value of this node.
Definition: ticpp.cpp:230
+ Here is the call graph for this function:

◆ ReplaceChild()

Node * Node::ReplaceChild ( Node replaceThis,
Node withThis 
)
inherited

Replace a child of this node.

Throws if you try to replace with a document.

Parameters
replaceThisNode to replace.
withThisNode that is replacing replaceThis.
Exceptions
ExceptionWhen TiXmlNode::ReplaceChild returns Null.
See also
TiXmlNode::ReplaceChild

Definition at line 383 of file ticpp.cpp.

References TiXmlNode::DOCUMENT, ticpp::Node::GetTiXmlPointer(), TiCppRCImp::IncRef(), ticpp::Base::m_impRC, ticpp::Node::NodeFactory(), TiXmlNode::ReplaceChild(), and ticpp::Node::Type().

383  {
384  if (withThis.Type() == TiXmlNode::DOCUMENT) {
385  TICPPTHROW("Node is a Document and can't be inserted");
386  }
387 
388  // Increment reference count when adding to the tree
389  withThis.m_impRC->IncRef();
390 
391  TiXmlNode* pointer = GetTiXmlPointer()->ReplaceChild(
392  replaceThis->GetTiXmlPointer(), *withThis.GetTiXmlPointer());
393 
394  if (0 == pointer) {
395  TICPPTHROW("Node can't be inserted");
396  }
397 
398  return NodeFactory(pointer);
399 }
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
TiXmlNode * ReplaceChild(TiXmlNode *replaceThis, const TiXmlNode &withThis)
Replace a child of this node.
Definition: tinyxml.cpp:265
virtual TiXmlNode * GetTiXmlPointer() const =0
int Type() const
Query the type (as TiXmlNode::NodeType ) of this node.
Definition: ticpp.cpp:536
void IncRef()
Increment Reference Count.
Definition: ticpp.cpp:956
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
TiCppRCImp * m_impRC
Holds status of internal TiXmlPointer - use this to determine if object has been deleted already...
Definition: ticpp.h:267
Node * NodeFactory(TiXmlNode *tiXmlNode, bool throwIfNull=true, bool rememberSpawnedWrapper=true) const
Definition: ticpp.cpp:181
+ Here is the call graph for this function:

◆ Row()

int ticpp::Base::Row ( ) const
inlineinherited

Return the position, in the original source file, of this node or attribute.

Wrapper around TiXmlBase::Row()

Definition at line 209 of file ticpp.h.

References ticpp::Base::GetBasePointer(), and TiXmlBase::Row().

209 { return GetBasePointer()->Row(); }
virtual TiXmlBase * GetBasePointer() const =0
int Row() const
Return the position, in the original source file, of this node or attribute.
Definition: tinyxml.h:275
+ Here is the call graph for this function:

◆ SetImpRC()

void ticpp::Base::SetImpRC ( TiXmlBase nodeBase)
inlineprotectedinherited

Definition at line 279 of file ticpp.h.

References ticpp::Base::m_impRC, and TiCppRC::m_tiRC.

Referenced by ticpp::NodeImp< TiXmlDeclaration >::SetTiXmlPointer().

279 { m_impRC = nodeBase->m_tiRC; }
TiCppRCImp * m_impRC
Holds status of internal TiXmlPointer - use this to determine if object has been deleted already...
Definition: ticpp.h:267
+ Here is the caller graph for this function:

◆ SetTiXmlPointer()

void ticpp::NodeImp< TiXmlComment >::SetTiXmlPointer ( TiXmlComment newPointer)
inlineprotectedinherited

Definition at line 1283 of file ticpp.h.

1283  {
1284  m_tiXmlPointer = newPointer;
1285  SetImpRC(newPointer);
1286  }
void SetImpRC(TiXmlBase *nodeBase)
Definition: ticpp.h:279
TiXmlComment * m_tiXmlPointer
Internal pointer to the TiXml Class which is being wrapped.
Definition: ticpp.h:1262

◆ SetValue()

template<class T >
void ticpp::Node::SetValue ( const T &  value)
inlineinherited

Set the value of this node.

Uses Base::ToString to convert value to a std::string, then calls TiXmlNode::SetValue.

Parameters
valueThe value to set

Definition at line 490 of file ticpp.h.

490  {
491  GetTiXmlPointer()->SetValue(ToString(value));
492  }
void SetValue(const char *_value)
Changes the value of the node.
Definition: tinyxml.h:538
virtual TiXmlNode * GetTiXmlPointer() const =0
std::string ToString(const T &value) const
Converts any class with a proper overload of the << opertor to a std::string.
Definition: ticpp.h:169

◆ To()

template<class T >
T* ticpp::Node::To ( ) const
inlineinherited

Pointer conversion ( NOT OBJECT CONVERSION ) - replaces TiXmlNode::ToElement, TiXmlNode::ToDocument, TiXmlNode::ToComment, etc.

Exceptions
ExceptionWhen the target is not an object of class T
Warning
Some ancient compilers do not support explicit specification of member template arguments, which this depends on ( e.g. VC6 ).

Definition at line 961 of file ticpp.h.

961  {
962  T* pointer = dynamic_cast< T* >(this);
963 
964  if (0 == pointer) {
965  std::string thisType = typeid(this).name();
966  std::string targetType = typeid(T).name();
967  std::string thatType = typeid(*this).name();
968  TICPPTHROW("The " << thisType.substr(6) << " could not be casted to a "
969  << targetType.substr(6)
970  << " *, because the target object is not a "
971  << targetType.substr(6)
972  << ". (It is a "
973  << thatType.substr(6)
974  << ")");
975  }
976 
977  return pointer;
978  }
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92

◆ ToComment()

Comment * Node::ToComment ( ) const
inherited

Pointer conversion - replaces TiXmlNode::ToComment.

Exceptions
ExceptionWhen this node is not a Comment.

Definition at line 583 of file ticpp.cpp.

References Comment(), ticpp::Node::GetTiXmlPointer(), and TiXmlNode::ToComment().

583  {
585 
586  if (0 == doc) {
587  TICPPTHROW("This node (" << Value() << ") is not a Comment")
588  }
589 
590  Comment* temp = new Comment(doc);
591  doc->m_spawnedWrappers.push_back(temp);
592 
593  return temp;
594 }
Wrapper around TiXmlComment.
Definition: ticpp.h:1349
std::vector< ticpp::Base *> m_spawnedWrappers
Remember all wrappers that we&#39;ve created with &#39;new&#39; - ( e.g.
Definition: ticpprc.h:63
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual TiXmlNode * GetTiXmlPointer() const =0
std::string Value() const
Get the value of this node.
Definition: ticpp.cpp:230
virtual const TiXmlComment * ToComment() const
Cast to a more defined type. Will return null if not of the requested type.
Definition: tinyxml.h:792
An XML comment.
Definition: tinyxml.h:1330
+ Here is the call graph for this function:

◆ ToDeclaration()

Declaration * Node::ToDeclaration ( ) const
inherited

Pointer conversion - replaces TiXmlNode::ToDeclaration.

Exceptions
ExceptionWhen this node is not a Declaration.

Definition at line 609 of file ticpp.cpp.

References ticpp::Declaration::Declaration(), ticpp::Node::GetTiXmlPointer(), and TiXmlNode::ToDeclaration().

609  {
611 
612  if (0 == doc) {
613  TICPPTHROW("This node (" << Value() << ") is not a Declaration")
614  }
615 
616  Declaration* temp = new Declaration(doc);
617  doc->m_spawnedWrappers.push_back(temp);
618 
619  return temp;
620 }
std::vector< ticpp::Base *> m_spawnedWrappers
Remember all wrappers that we&#39;ve created with &#39;new&#39; - ( e.g.
Definition: ticpprc.h:63
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual TiXmlNode * GetTiXmlPointer() const =0
In correct XML the declaration is the first entry in the file.
Definition: tinyxml.h:1469
std::string Value() const
Get the value of this node.
Definition: ticpp.cpp:230
Wrapper around TiXmlDeclaration.
Definition: ticpp.h:1886
virtual const TiXmlDeclaration * ToDeclaration() const
Cast to a more defined type. Will return null if not of the requested type.
Definition: tinyxml.h:804
+ Here is the call graph for this function:

◆ ToDocument()

Document * Node::ToDocument ( ) const
inherited

Pointer conversion - replaces TiXmlNode::ToDocument.

Exceptions
ExceptionWhen this node is not a Document.

Definition at line 557 of file ticpp.cpp.

References ticpp::Document::Document().

557  {
559 
560  if (0 == doc) {
561  TICPPTHROW("This node (" << Value() << ") is not a Document")
562  }
563 
564  Document* temp = new Document(doc);
565  doc->m_spawnedWrappers.push_back(temp);
566 
567  return temp;
568 }
std::vector< ticpp::Base *> m_spawnedWrappers
Remember all wrappers that we&#39;ve created with &#39;new&#39; - ( e.g.
Definition: ticpprc.h:63
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual TiXmlNode * GetTiXmlPointer() const =0
std::string Value() const
Get the value of this node.
Definition: ticpp.cpp:230
virtual const TiXmlDocument * ToDocument() const
Cast to a more defined type. Will return null if not of the requested type.
Definition: tinyxml.h:784
Always the top level node.
Definition: tinyxml.h:1655
Wrapper around TiXmlDocument.
Definition: ticpp.h:1404
+ Here is the call graph for this function:

◆ ToElement()

Element * Node::ToElement ( ) const
inherited

Pointer conversion - replaces TiXmlNode::ToElement.

Exceptions
ExceptionWhen this node is not a Element.

Definition at line 570 of file ticpp.cpp.

References ticpp::Element::Element(), ticpp::Node::GetTiXmlPointer(), and TiXmlNode::ToElement().

570  {
572 
573  if (0 == doc) {
574  TICPPTHROW("This node (" << Value() << ") is not a Element")
575  }
576 
577  Element* temp = new Element(doc);
578  doc->m_spawnedWrappers.push_back(temp);
579 
580  return temp;
581 }
std::vector< ticpp::Base *> m_spawnedWrappers
Remember all wrappers that we&#39;ve created with &#39;new&#39; - ( e.g.
Definition: ticpprc.h:63
Wrapper around TiXmlElement.
Definition: ticpp.h:1493
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual const TiXmlElement * ToElement() const
Cast to a more defined type. Will return null if not of the requested type.
Definition: tinyxml.h:788
virtual TiXmlNode * GetTiXmlPointer() const =0
std::string Value() const
Get the value of this node.
Definition: ticpp.cpp:230
The element is a container class.
Definition: tinyxml.h:1095
+ Here is the call graph for this function:

◆ ToString() [1/2]

template<class T >
std::string ticpp::Base::ToString ( const T &  value) const
inlineinherited

Converts any class with a proper overload of the << opertor to a std::string.

Parameters
valueThe value to be converted
Exceptions
ExceptionWhen value cannot be converted to a std::string

Definition at line 169 of file ticpp.h.

169  {
170  std::stringstream convert;
171  convert << value;
172 
173  if (convert.fail()) {
174  TICPPTHROW("Could not convert value to text");
175  }
176 
177  return convert.str();
178  }
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92

◆ ToString() [2/2]

std::string ticpp::Base::ToString ( const std::string &  value) const
inlineinherited

Definition at line 180 of file ticpp.h.

180 { return value; }

◆ ToStylesheetReference()

StylesheetReference * Node::ToStylesheetReference ( ) const
inherited

Pointer conversion - replaces TiXmlNode::ToStylesheetReference.

Exceptions
ExceptionWhen this node is not a StylesheetReference.

Definition at line 622 of file ticpp.cpp.

References ticpp::Node::GetTiXmlPointer(), ticpp::StylesheetReference::StylesheetReference(), and TiXmlNode::ToStylesheetReference().

622  {
624 
625  if (0 == doc) {
626  TICPPTHROW("This node (" << Value() << ") is not a StylesheetReference")
627  }
628 
629  StylesheetReference* temp = new StylesheetReference(doc);
630  doc->m_spawnedWrappers.push_back(temp);
631 
632  return temp;
633 }
std::vector< ticpp::Base *> m_spawnedWrappers
Remember all wrappers that we&#39;ve created with &#39;new&#39; - ( e.g.
Definition: ticpprc.h:63
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual TiXmlNode * GetTiXmlPointer() const =0
A stylesheet reference looks like this:
Definition: tinyxml.h:1543
std::string Value() const
Get the value of this node.
Definition: ticpp.cpp:230
virtual const TiXmlStylesheetReference * ToStylesheetReference() const
Cast to a more defined type. Will return null if not of the requested type.
Definition: tinyxml.h:808
Wrapper around TiXmlStylesheetReference.
Definition: ticpp.h:1922
+ Here is the call graph for this function:

◆ ToText()

Text * Node::ToText ( ) const
inherited

Pointer conversion - replaces TiXmlNode::ToText.

Exceptions
ExceptionWhen this node is not a Text.

Definition at line 596 of file ticpp.cpp.

References ticpp::Node::GetTiXmlPointer(), ticpp::Text::Text(), TiXmlText::TiXmlElement, and TiXmlNode::ToText().

596  {
597  TiXmlText* doc = GetTiXmlPointer()->ToText();
598 
599  if (0 == doc) {
600  TICPPTHROW("This node (" << Value() << ") is not a Text")
601  }
602 
603  Text* temp = new Text(doc);
604  doc->m_spawnedWrappers.push_back(temp);
605 
606  return temp;
607 }
std::vector< ticpp::Base *> m_spawnedWrappers
Remember all wrappers that we&#39;ve created with &#39;new&#39; - ( e.g.
Definition: ticpprc.h:63
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
virtual const TiXmlText * ToText() const
Cast to a more defined type. Will return null if not of the requested type.
Definition: tinyxml.h:800
Wrapper around TiXmlText.
Definition: ticpp.h:1368
virtual TiXmlNode * GetTiXmlPointer() const =0
std::string Value() const
Get the value of this node.
Definition: ticpp.cpp:230
XML text.
Definition: tinyxml.h:1386
+ Here is the call graph for this function:

◆ Type()

int Node::Type ( ) const
inherited

Query the type (as TiXmlNode::NodeType ) of this node.

Definition at line 536 of file ticpp.cpp.

References ticpp::Node::GetTiXmlPointer(), and TiXmlNode::Type().

Referenced by ticpp::Node::InsertAfterChild(), ticpp::Node::InsertBeforeChild(), ticpp::Node::InsertEndChild(), ticpp::Node::LinkEndChild(), and ticpp::Node::ReplaceChild().

536 { return GetTiXmlPointer()->Type(); }
virtual TiXmlNode * GetTiXmlPointer() const =0
int Type() const
Query the type (as an enumerated value, above) of this node.
Definition: tinyxml.h:770
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ValidatePointer()

void ticpp::Base::ValidatePointer ( ) const
inlineprotectedinherited

Definition at line 281 of file ticpp.h.

References TiCppRCImp::IsNull(), and ticpp::Base::m_impRC.

Referenced by ticpp::Attribute::GetBasePointer(), ticpp::Attribute::GetName(), ticpp::NodeImp< TiXmlDeclaration >::GetTiXmlPointer(), ticpp::Attribute::GetValue(), ticpp::Attribute::Name(), ticpp::Attribute::Next(), ticpp::Attribute::Previous(), ticpp::Attribute::Print(), ticpp::Attribute::SetName(), ticpp::Attribute::SetValue(), and ticpp::Attribute::Value().

281  {
282  if (m_impRC->IsNull()) {
283  TICPPTHROW("Internal TiXml Pointer is nullptr");
284  }
285  }
#define TICPPTHROW(message)
This allows you to stream your exceptions in.
Definition: ticpp.h:92
bool IsNull()
Returns state of internal pointer - will be null if the object was deleted.
Definition: ticpp.cpp:973
TiCppRCImp * m_impRC
Holds status of internal TiXmlPointer - use this to determine if object has been deleted already...
Definition: ticpp.h:267
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Value()

std::string Node::Value ( ) const
inherited

Get the value of this node.

Simple wrapper for TiXmlNode::ValueStr.

See also
GetValue

Definition at line 230 of file ticpp.cpp.

References ticpp::Node::GetTiXmlPointer(), and TiXmlNode::ValueStr().

230 { return GetTiXmlPointer()->ValueStr(); }
const std::string & ValueStr() const
Return Value() as a std::string.
Definition: tinyxml.h:524
virtual TiXmlNode * GetTiXmlPointer() const =0
+ Here is the call graph for this function:

Member Data Documentation

◆ m_impRC

◆ m_tiXmlPointer

TiXmlComment * ticpp::NodeImp< TiXmlComment >::m_tiXmlPointer
protectedinherited

Internal pointer to the TiXml Class which is being wrapped.

Definition at line 1262 of file ticpp.h.


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