Nektar++
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
Nektar::LibUtilities::XmlTagWriter Class Reference

#include <FieldIOXml.h>

Inheritance diagram for Nektar::LibUtilities::XmlTagWriter:
[legend]

Public Member Functions

 XmlTagWriter (TiXmlElement *elem)
 Default constructor. More...
 
- Public Member Functions inherited from Nektar::LibUtilities::TagWriter
std::shared_ptr< TagWriterAddChild (const std::string &name)
 Create a child node. More...
 
void SetAttr (const std::string &key, const std::string &val)
 Set an attribute on the node. More...
 

Protected Member Functions

TagWriterSharedPtr v_AddChild (const std::string &name) override
 Add a child node. More...
 
void v_SetAttr (const std::string &key, const std::string &val) override
 Set an attribute key/value pair on this tag. More...
 
- Protected Member Functions inherited from Nektar::LibUtilities::TagWriter
virtual ~TagWriter ()
 
virtual std::shared_ptr< TagWriterv_AddChild (const std::string &name)=0
 
virtual void v_SetAttr (const std::string &key, const std::string &val)=0
 

Private Attributes

TiXmlElement * m_El
 Internal TinyXML document storage. More...
 

Detailed Description

Definition at line 114 of file FieldIOXml.h.

Constructor & Destructor Documentation

◆ XmlTagWriter()

Nektar::LibUtilities::XmlTagWriter::XmlTagWriter ( TiXmlElement *  elem)
inline

Default constructor.

Definition at line 118 of file FieldIOXml.h.

118 : m_El(elem)
119 {
120 }
TiXmlElement * m_El
Internal TinyXML document storage.
Definition: FieldIOXml.h:164

Referenced by v_AddChild().

Member Function Documentation

◆ v_AddChild()

TagWriterSharedPtr Nektar::LibUtilities::XmlTagWriter::v_AddChild ( const std::string &  name)
inlineoverrideprotectedvirtual

Add a child node.

Implements Nektar::LibUtilities::TagWriter.

Definition at line 124 of file FieldIOXml.h.

125 {
126 TiXmlElement *child = new TiXmlElement(name.c_str());
127 m_El->LinkEndChild(child);
128 return TagWriterSharedPtr(new XmlTagWriter(child));
129 }
XmlTagWriter(TiXmlElement *elem)
Default constructor.
Definition: FieldIOXml.h:118
std::shared_ptr< TagWriter > TagWriterSharedPtr
Definition: FieldIO.h:78

References m_El, CellMLToNektar.pycml::name, and XmlTagWriter().

◆ v_SetAttr()

void Nektar::LibUtilities::XmlTagWriter::v_SetAttr ( const std::string &  key,
const std::string &  val 
)
inlineoverrideprotectedvirtual

Set an attribute key/value pair on this tag.

Implements Nektar::LibUtilities::TagWriter.

Definition at line 132 of file FieldIOXml.h.

133 {
134 if (boost::starts_with(key, "XML_"))
135 {
136 // Auto-expand XML parameters.
137 std::string elmtName = key.substr(4);
138 TiXmlElement *child = new TiXmlElement(elmtName.c_str());
139
140 // Parse string we're given
141 TiXmlDocument doc;
142 doc.Parse(val.c_str());
143
144 TiXmlElement *e = doc.FirstChildElement();
145
146 while (e)
147 {
148 child->LinkEndChild(e->Clone());
149 e = e->NextSiblingElement();
150 }
151
152 m_El->LinkEndChild(child);
153 }
154 else
155 {
156 TiXmlElement *child = new TiXmlElement(key.c_str());
157 child->LinkEndChild(new TiXmlText(val.c_str()));
158 m_El->LinkEndChild(child);
159 }
160 }

References m_El.

Member Data Documentation

◆ m_El

TiXmlElement* Nektar::LibUtilities::XmlTagWriter::m_El
private

Internal TinyXML document storage.

Definition at line 164 of file FieldIOXml.h.

Referenced by v_AddChild(), and v_SetAttr().