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: