Nebula
Loading...
Searching...
No Matches
IO::XmlWriter Class Reference

#include <xmlwriter.h>

Detailed Description

Write XML-formatted data to a stream.

Inherits IO::StreamWriter.

Public Member Functions

 XmlWriter ()
 constructor
virtual ~XmlWriter ()
 destructor
virtual bool Open ()
 begin writing the stream
virtual void Close ()
 end writing the stream
bool BeginNode (const Util::String &nodeName)
 begin a new node under the current node
void EndNode ()
 end current node, set current node to parent
void WriteContent (const Util::String &text)
 write content text
void WriteComment (const Util::String &comment)
 write a comment
void WriteRaw (const Util::String &xml)
 write raw XML
void SetString (const Util::String &name, const Util::String &value)
 set string attribute on current node
void SetBool (const Util::String &name, bool value)
 set bool attribute on current node
void SetInt (const Util::String &name, int value)
 set int attribute on current node
void SetFloat (const Util::String &name, float value)
 set float attribute on current node
void SetVec2 (const Util::String &name, const Math::vec2 &value)
 set vec2 attribute on current node
void SetVec4 (const Util::String &name, const Math::vec4 &value)
 set vec4 attribute on current node
void SetMat4 (const Util::String &name, const Math::mat4 &value)
 set mat4 attribute on current node
void SetTransform44 (const Util::String &name, const Math::transform44 &value)
 set transform44 attribute on current node
template<typename T>
void Set (const Util::String &name, const T &value)
 generic setter, template specializations implemented in nebula3/code/addons/nebula2
Public Member Functions inherited from IO::StreamWriter
 StreamWriter ()
 constructor
virtual ~StreamWriter ()
 destructor
void SetStream (const Ptr< Stream > &s)
 set stream to write to
const Ptr< Stream > & GetStream () const
 get currently set stream
bool HasStream () const
 return true if a stream is set
bool IsOpen () const
 return true if currently open
Public Member Functions inherited from Core::RefCounted
 RefCounted ()
 constructor
int GetRefCount () const
 get the current refcount
void AddRef ()
 increment refcount by one
void Release ()
 decrement refcount and destroy object if refcount is zero
bool IsInstanceOf (const Rtti &rtti) const
 return true if this object is instance of given class
bool IsInstanceOf (const Util::String &className) const
 return true if this object is instance of given class by string
bool IsInstanceOf (const Util::FourCC &classFourCC) const
 return true if this object is instance of given class by fourcc
bool IsA (const Rtti &rtti) const
 return true if this object is instance of given class, or a derived class
bool IsA (const Util::String &rttiName) const
 return true if this object is instance of given class, or a derived class, by string
bool IsA (const Util::FourCC &rttiFourCC) const
 return true if this object is instance of given class, or a derived class, by fourcc
const Util::StringGetClassName () const
 get the class name
Util::FourCC GetClassFourCC () const
 get the class FourCC code

Private Member Functions

 __DeclareClass (XmlWriter)

Private Attributes

TiXmlDocumentxmlDocument
TiXmlElementcurNode

Additional Inherited Members

Static Public Member Functions inherited from Core::RefCounted
static void DumpRefCountingLeaks ()
 dump refcounting leaks, call at end of application (NEBULA_DEBUG builds only!)
Protected Member Functions inherited from Core::RefCounted
virtual ~RefCounted ()
 destructor (called when refcount reaches zero)
Protected Attributes inherited from IO::StreamWriter
Ptr< Streamstream
bool isOpen
bool streamWasOpen

Constructor & Destructor Documentation

◆ XmlWriter()

IO::XmlWriter::XmlWriter ( )

constructor

◆ ~XmlWriter()

IO::XmlWriter::~XmlWriter ( )
virtual

destructor

Member Function Documentation

◆ __DeclareClass()

IO::XmlWriter::__DeclareClass ( XmlWriter )
private

◆ BeginNode()

bool IO::XmlWriter::BeginNode ( const Util::String & nodeName)

begin a new node under the current node

Begin a new node.

The new node will be set as the current node. Nodes may form a hierarchy. Make sure to finalize a node with a corresponding call to EndNode()!

◆ Close()

void IO::XmlWriter::Close ( )
virtual

end writing the stream

Close the XML stream.

Reimplemented from IO::StreamWriter.

◆ EndNode()

void IO::XmlWriter::EndNode ( )

end current node, set current node to parent

Finalize current node.

This will set the parent of the current node as new current node so that correct hierarchical behaviour is implemented.

◆ Open()

bool IO::XmlWriter::Open ( )
virtual

begin writing the stream

Open the XML stream for writing.

This will create a new TiXmlDocument object which will be written to the stream in Close().

Reimplemented from IO::StreamWriter.

◆ Set()

template<typename T>
void IO::XmlWriter::Set ( const Util::String & name,
const T & value )

generic setter, template specializations implemented in nebula3/code/addons/nebula2

◆ SetBool()

void IO::XmlWriter::SetBool ( const Util::String & name,
bool value )

set bool attribute on current node

Set the provided attribute to a bool value.

◆ SetFloat()

void IO::XmlWriter::SetFloat ( const Util::String & name,
float value )

set float attribute on current node

Set the provided attribute to a float value.

◆ SetInt()

void IO::XmlWriter::SetInt ( const Util::String & name,
int value )

set int attribute on current node

Set the provided attribute to an int value.

◆ SetMat4()

void IO::XmlWriter::SetMat4 ( const Util::String & name,
const Math::mat4 & value )

set mat4 attribute on current node

Set the provided attribute to a mat4 value.

The stream must be in Write or ReadWrite mode for this.

◆ SetString()

void IO::XmlWriter::SetString ( const Util::String & name,
const Util::String & value )

set string attribute on current node

Set the provided attribute to a string value.

◆ SetTransform44()

void IO::XmlWriter::SetTransform44 ( const Util::String & name,
const Math::transform44 & value )

set transform44 attribute on current node

Set the provided attribute to a transform44 value.

The stream must be in Write or ReadWrite mode for this.

◆ SetVec2()

void IO::XmlWriter::SetVec2 ( const Util::String & name,
const Math::vec2 & value )

set vec2 attribute on current node

◆ SetVec4()

void IO::XmlWriter::SetVec4 ( const Util::String & name,
const Math::vec4 & value )

set vec4 attribute on current node

Set the provided attribute to a vec4 value.

◆ WriteComment()

void IO::XmlWriter::WriteComment ( const Util::String & comment)

write a comment

Write a comment into the XML file.

◆ WriteContent()

void IO::XmlWriter::WriteContent ( const Util::String & text)

write content text

Write inline text at current position.

◆ WriteRaw()

void IO::XmlWriter::WriteRaw ( const Util::String & xml)

write raw XML

Member Data Documentation

◆ curNode

TiXmlElement* IO::XmlWriter::curNode
private

◆ xmlDocument

TiXmlDocument* IO::XmlWriter::xmlDocument
private

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