Public Member Functions | Protected Member Functions | Protected Attributes

xmlstorage::XMLMessageReader Class Reference

Reader for XML Messages. More...

Inheritance diagram for xmlstorage::XMLMessageReader:
Inheritance graph
[legend]
Collaboration diagram for xmlstorage::XMLMessageReader:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 this (in char[] xml_str, in char[] system_id="")
XMLDoc get_document ()
XMLNode cur ()
 access to current node
XMLNode opCast ()
 automatic access to current node
XMLNode opCall ()
 call operator access to current node (instead of the C++ operator-> and operator*)
char[] get (in char[] attr_name, in char[] def="")
 attribute access
void put (in char[] attr_name, in char[] value)
 attribute setting
char[] opIndex (in char[] attr_name)
void opIndexAssign (in char[] attr_name, in char[] value)
void add_down (XMLNode child)
 insert children when building tree
bool back ()
 go back to previous position
bool go_down ()
 go down to first child
bool go_down (in char[] name, int n=0)
 search for child and go down
bool go (in char[] path)
 move XPath like to position in XML tree
bool create_relative (in char[] path)
 create child nodes using XPath notation and move to the deepest child
void create (in char[] name)
 create node and move to it
void smart_create (in char[] name)
 create node if not already existing and move to it
void smart_create (in char[] name, char[] attr_name, char[] attr_value)
 search matching child node identified by key name and an attribute value
char[] str ()

Protected Member Functions

 stack (XMLNode) _stack
void go_to (XMLNode child)
 go to specified node

Protected Attributes

XMLDoc _msg
XMLNode _root
XMLNode _cur

Detailed Description

Reader for XML Messages.

Definition at line 2262 of file xmlstorage.d.


Constructor & Destructor Documentation

xmlstorage::XMLMessageReader::this ( in char[]  xml_str,
in char[]  system_id = "" 
) [inline]

Definition at line 2265 of file xmlstorage.d.

    {
        super(_msg);

        _msg.read_buffer(xml_str, system_id);
    }

Member Function Documentation

void xmlstorage::XMLPos::add_down ( XMLNode  child ) [inline, inherited]

insert children when building tree

Definition at line 1116 of file xmlstorage.d.

    {
        _cur.add_child(child);
        go_to(child);
    }
bool xmlstorage::XMLPos::back (  ) [inline, inherited]

go back to previous position

Definition at line 1123 of file xmlstorage.d.

    {
        if (!_stack.empty()) {
            _cur = _stack.pop();
            return true;
        } else
            return false;
    }
void xmlstorage::XMLPos::create ( in char[]  name ) [inline, inherited]

create node and move to it

Definition at line 1188 of file xmlstorage.d.

    {
        add_down(new XMLNode(name));
    }
bool xmlstorage::XMLPos::create_relative ( in char[]  path ) [inline, inherited]

create child nodes using XPath notation and move to the deepest child

Definition at line 1177 of file xmlstorage.d.

References xmlstorage::XMLNode::create_relative().

    {
        XMLNode node = _cur.create_relative(path);
        if (!node)
            return false;   // invalid path specified

        go_to(node);
        return true;
    }

Here is the call graph for this function:

XMLNode xmlstorage::XMLPos::cur (  ) [inline, inherited]

access to current node

Definition at line 1079 of file xmlstorage.d.

    {
        return _cur;
    }
char [] xmlstorage::XMLPos::get ( in char[]  attr_name,
in char[]  def = "" 
) [inline, inherited]

attribute access

Definition at line 1094 of file xmlstorage.d.

References xmlstorage::XMLNode::get().

    {
        return _cur.get(attr_name, def);
    }

Here is the call graph for this function:

XMLDoc xmlstorage::XMLMessageReader::get_document (  ) [inline]

Definition at line 2272 of file xmlstorage.d.

    {
        return _msg;
    }
bool xmlstorage::XMLPos::go ( in char[]  path ) [inline, inherited]

move XPath like to position in XML tree

Definition at line 1157 of file xmlstorage.d.

References xmlstorage::XMLNode::find_relative().

    {
        XMLNode node = _cur;

         // Is this an absolute path?
        if (path.length>0 && path[0]=='/') {
            node = _root;
            path = path[1..length];
        }

        node = node.find_relative(path);

        if (node) {
            go_to(node);
            return true;
        } else
            return false;
    }

Here is the call graph for this function:

bool xmlstorage::XMLPos::go_down (  ) [inline, inherited]

go down to first child

Definition at line 1133 of file xmlstorage.d.

References xmlstorage::XMLNode::get_first_child().

    {
        XMLNode node = _cur.get_first_child();

        if (node) {
            go_to(node);
            return true;
        } else
            return false;
    }

Here is the call graph for this function:

bool xmlstorage::XMLPos::go_down ( in char[]  name,
int  n = 0 
) [inline, inherited]

search for child and go down

Definition at line 1145 of file xmlstorage.d.

References xmlstorage::XMLNode::find().

    {
        XMLNode node = _cur.find(name, n);

        if (node) {
            go_to(node);
            return true;
        } else
            return false;
    }

Here is the call graph for this function:

void xmlstorage::XMLPos::go_to ( XMLNode  child ) [inline, protected, inherited]

go to specified node

Definition at line 1226 of file xmlstorage.d.

    {
        _stack.push(_cur);
        _cur = child;
    }
XMLNode xmlstorage::XMLPos::opCall (  ) [inline, inherited]

call operator access to current node (instead of the C++ operator-> and operator*)

Definition at line 1088 of file xmlstorage.d.

    {
        return _cur;
    }
XMLNode xmlstorage::XMLPos::opCast (  ) [inline, inherited]

automatic access to current node

Definition at line 1085 of file xmlstorage.d.

{return _cur;}
char [] xmlstorage::XMLPos::opIndex ( in char[]  attr_name ) [inline, inherited]

Definition at line 1105 of file xmlstorage.d.

    {
        return _cur[attr_name];
    }
void xmlstorage::XMLPos::opIndexAssign ( in char[]  attr_name,
in char[]  value 
) [inline, inherited]

Definition at line 1110 of file xmlstorage.d.

    {
        _cur[attr_name] = value;
    }
void xmlstorage::XMLPos::put ( in char[]  attr_name,
in char[]  value 
) [inline, inherited]

attribute setting

Definition at line 1100 of file xmlstorage.d.

    {
        _cur.put(attr_name, value);
    }
void xmlstorage::XMLPos::smart_create ( in char[]  name ) [inline, inherited]

create node if not already existing and move to it

Definition at line 1194 of file xmlstorage.d.

References xmlstorage::XMLNode::find().

    {
        XMLNode node = _cur.find(name);

        if (node)
            go_to(node);
        else
            add_down(new XMLNode(name));
    }

Here is the call graph for this function:

void xmlstorage::XMLPos::smart_create ( in char[]  name,
char[]  attr_name,
char[]  attr_value 
) [inline, inherited]

search matching child node identified by key name and an attribute value

Definition at line 1205 of file xmlstorage.d.

References xmlstorage::XMLNode::find(), and xmlstorage::XMLNode::put().

    {
        XMLNode node = _cur.find(name, attr_name, attr_value);

        if (node)
            go_to(node);
        else {
            node = new XMLNode(name);
            add_down(node);
            node.put(attr_name, attr_value);
        }
    }

Here is the call graph for this function:

xmlstorage::XMLPos::stack ( XMLNode   ) [protected, inherited]
char [] xmlstorage::XMLPos::str (  ) [inline, inherited]

Definition at line 1218 of file xmlstorage.d.

{return _cur._name;}

Member Data Documentation

XMLNode xmlstorage::XMLPos::_cur [protected, inherited]

Definition at line 1222 of file xmlstorage.d.

Definition at line 2278 of file xmlstorage.d.

XMLNode xmlstorage::XMLPos::_root [protected, inherited]

Definition at line 1221 of file xmlstorage.d.


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