Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > e8201bf25fe615fa1a8b232e84a1236d > files > 28

libxnm-devel-0.1.3-3.fc12.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>src/xnm.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="dir_a825c5a75cd0c09c6e5bad1a80440c04.html">src</a>
  </div>
</div>
<div class="contents">
<h1>xnm.h File Reference</h1>The libxnm header file.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;glib.h&gt;</code><br>

<p>
<a href="xnm_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structXnmValue.html">XnmValue</a></td></tr>

<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <b>XNM_ERROR</b> =  0, 
<b>XNM_ERROR_SYNTAX_ERROR</b> =  1, 
<b>XNM_ERROR_KEY_NOT_FOUND</b> =  2
 }</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#3a6586e2bc52922ca880931f68f90e84">XnmValueType</a> { <br>
&nbsp;&nbsp;<b>XNM_UNKNOWN</b>, 
<b>XNM_TABLE</b>, 
<b>XNM_ARRAY</b>, 
<b>XNM_STRING</b>, 
<br>
&nbsp;&nbsp;<b>XNM_BINARY</b>
<br>
 }</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#06c3ee8df49603f2aad739d285179e06">XnmValueGetType</a> { <br>
&nbsp;&nbsp;<b>XNM_GET_UINT8</b>, 
<b>XNM_GET_UINT16</b>, 
<b>XNM_GET_UINT</b>, 
<b>XNM_GET_UINT32</b>, 
<br>
&nbsp;&nbsp;<b>XNM_GET_INT8</b>, 
<b>XNM_GET_INT16</b>, 
<b>XNM_GET_INT</b>, 
<b>XNM_GET_INT32</b>, 
<br>
&nbsp;&nbsp;<b>XNM_GET_INT64</b>, 
<b>XNM_GET_FLOAT</b>, 
<b>XNM_GET_DOUBLE</b>, 
<b>XNM_GET_STRING</b>, 
<br>
&nbsp;&nbsp;<b>XNM_GET_BOOL</b>
<br>
 }</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#144adfe0d13dc5c3dcc507491778cc41">xnm_value_new_string</a> (const gchar *s)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#936c57fd5d7d5ef0b292efcfe72cbe09">xnm_value_new_table</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#c8ca7c7c0946a5c52e00070fac2c99d2">xnm_value_new_array</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#c42ff90d826164d82eb81cf866a1354a">xnm_value_new_binary</a> (const gchar *buf, size_t size)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#cebb1c769e50dda33868b9c06f9eb23e">xnm_value_ref</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#e638c66188b57521792404e4cc61c629">xnm_value_unref</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">gchar *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#ab2b28f893e053a5ab3ca9fe0afdd59a">xnm_value_export_to_string</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#200b9e0ba79c5fb95e53c7c1a5869a76">xnm_value_get</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value_tree, const char *key, <a class="el" href="structXnmValue.html">XnmValue</a> **xnm_value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#a5c81a90fe1ad55f71699c5f5734a51e">xnm_value_get_string</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value, const char *key, gchar **string_val)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#22eb29b840b66863d87bad4bb1a62314">xnm_value_get_const_string</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value_tree, const char *key, const gchar **const_val_string)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#cf6a2568f7d910e67e3e8323d8b61f8d">xnm_value_get_int</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value, const char *key, int *val_int)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#8dd500e7727fa2efc6b167c774451ffb">xnm_value_get_bool</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value, const char *key, gboolean *val_bool)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#72bd5015e3e6b9c853abfc4ecdabb48b">xnm_value_array_push_value</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value_array, <a class="el" href="structXnmValue.html">XnmValue</a> *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#89dcf69f95cdea22b248e1ad8a3ab581">xnm_value_array_push_string</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value_array, const gchar *string)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#6433fc5b4afb59ca8ed7d4592238eec7">xnm_value_array_push_int</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value_array, int value_int)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#d6c05af0da1af59b59de87b79ecc5d3f">xnm_value_array_push_printf</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value_array, const gchar *format,...)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#8be4e6e56710a5865fdfb4003f167b0a">xnm_value_table_set_key_value</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value_tree, const gchar *key, <a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#9161807d2bf248d29af7e172169d1b6a">xnm_value_table_set_key_value_string</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value_parent, const gchar *key, const gchar *string)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#eef96b7ef63c8b66a8d11ab90ac20792">xnm_value_set_key_value_printf</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value_parent, const gchar *key, const gchar *format,...)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#7343bccb1d8c50c2de232dbd429e4dfc">xnm_value_get_array_length</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value, const char *key)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#56ff15c5debd596dc1b18b4efd772d95">xnm_value_get_values</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value,...)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#23b2cd798592a48bb2025f225ae8904c">xnm_value_get_table_key_list</a> (<a class="el" href="structXnmValue.html">XnmValue</a> *xnm_value, const char *key, const GPtrArray **key_list)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#edd6feaf8fcfe69a214625750412eef0">xnm_parse_string</a> (const gchar *string, <a class="el" href="structXnmValue.html">XnmValue</a> **value, GError **error)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#6b5d134d6c3c14858ac3e6bf160251ba">xnm_parse_string_len</a> (const gchar *string, int len, <a class="el" href="structXnmValue.html">XnmValue</a> **value, GError **error)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xnm_8h.html#e2514b5cba985458cfc51c3eec10cab3">xnm_parse_file</a> (const gchar *filenam, <a class="el" href="structXnmValue.html">XnmValue</a> **xnm_value, GError **error)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The libxnm header file. 
<p>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Dov Grobgeld &lt;<a href="mailto:dov.grobgeld@gmail.com">dov.grobgeld@gmail.com</a>&gt; </dd></dl>
<dl class="date" compact><dt><b>Date:</b></dt><dd>Fri Jan 12 09:23:04 2007</dd></dl>
The libxnm library stores the xnm data in a tree of XnmValue's where each <a class="el" href="structXnmValue.html">XnmValue</a> dynamically may contain a string, a binary buffer, an array or a table.<p>
Values are accessed by their keys which is a slash separated path description from the root to a value. Tables are dereferenced by the key name, and arrays by the array index enclosed in square brackets.<p>
Given a xnm structure that looks like:<p>
<div class="fragment"><pre class="fragment">   gaim =&gt; {
     gtk=&gt; {
       browsers=&gt; {
         place=&gt;F
           command=&gt;<span class="stringliteral">"xterm -e lynx %s"</span>
           browser=&gt;firefox
           new_window=&gt;F
       }
       plugins =&gt; [
         <span class="stringliteral">'/usr/lib/gaim/gaimrc.so'</span>
           <span class="stringliteral">'/usr/lib/gaim/ssl-nss.so'</span>
           <span class="stringliteral">'/usr/lib/gaim/ssl.so'</span>
       ]
     }
     pos =&gt; [ {x=&gt;0 y=&gt;0} {x=&gt;100 y=0} {x=&gt;100 y=&gt;50 } ]
   }
</pre></div><p>
Here are a couple of valid keys<p>
<ul>
<li>gaim/gtk/browser/command</li><li>gaim/pos/[0]/x</li></ul>
<p>
Most commands are made to ignore undefined keys.<p>
libxnm provides several methods for extracting values from an xnm tree that all start with xnm_get . <hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="06fc87d81c62e9abb8790b6e5713c55b"></a><!-- doxytag: member="xnm.h::@0" ref="06fc87d81c62e9abb8790b6e5713c55b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Error definitions 
</div>
</div><p>
<a class="anchor" name="06c3ee8df49603f2aad739d285179e06"></a><!-- doxytag: member="xnm.h::XnmValueGetType" ref="06c3ee8df49603f2aad739d285179e06" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="xnm_8h.html#06c3ee8df49603f2aad739d285179e06">XnmValueGetType</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Values used when retrieving. Note that binary values may not be extracted this way, as they need to have the length of them returned as well. 
</div>
</div><p>
<a class="anchor" name="3a6586e2bc52922ca880931f68f90e84"></a><!-- doxytag: member="xnm.h::XnmValueType" ref="3a6586e2bc52922ca880931f68f90e84" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="xnm_8h.html#3a6586e2bc52922ca880931f68f90e84">XnmValueType</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The possible types of a <a class="el" href="structXnmValue.html">XnmValue</a>. 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="e2514b5cba985458cfc51c3eec10cab3"></a><!-- doxytag: member="xnm.h::xnm_parse_file" ref="e2514b5cba985458cfc51c3eec10cab3" args="(const gchar *filenam, XnmValue **xnm_value, GError **error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_parse_file           </td>
          <td>(</td>
          <td class="paramtype">const gchar *&nbsp;</td>
          <td class="paramname"> <em>filenam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> **&nbsp;</td>
          <td class="paramname"> <em>xnm_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GError **&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Read a file and parse it.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>filenam</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>xnm_value</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="edd6feaf8fcfe69a214625750412eef0"></a><!-- doxytag: member="xnm.h::xnm_parse_string" ref="edd6feaf8fcfe69a214625750412eef0" args="(const gchar *string, XnmValue **value, GError **error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_parse_string           </td>
          <td>(</td>
          <td class="paramtype">const gchar *&nbsp;</td>
          <td class="paramname"> <em>string</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> **&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GError **&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Parse a string in XNM syntax.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>A string in xnm format </td></tr>
  </table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>A newly allocated <a class="el" href="structXnmValue.html">XnmValue</a> if the parsing was successful. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>Error if parsing failed.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="6b5d134d6c3c14858ac3e6bf160251ba"></a><!-- doxytag: member="xnm.h::xnm_parse_string_len" ref="6b5d134d6c3c14858ac3e6bf160251ba" args="(const gchar *string, int len, XnmValue **value, GError **error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_parse_string_len           </td>
          <td>(</td>
          <td class="paramtype">const gchar *&nbsp;</td>
          <td class="paramname"> <em>string</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> **&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GError **&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Parse a string in asf format with a given len.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="6433fc5b4afb59ca8ed7d4592238eec7"></a><!-- doxytag: member="xnm.h::xnm_value_array_push_int" ref="6433fc5b4afb59ca8ed7d4592238eec7" args="(XnmValue *xnm_value_array, int value_int)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_value_array_push_int           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value_array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>value_int</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Push an integer value into an xnm value of type array.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xnm_value_array</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value_int</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="d6c05af0da1af59b59de87b79ecc5d3f"></a><!-- doxytag: member="xnm.h::xnm_value_array_push_printf" ref="d6c05af0da1af59b59de87b79ecc5d3f" args="(XnmValue *xnm_value_array, const gchar *format,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_value_array_push_printf           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value_array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Formatted addition to an array. Use e.g. for doubles.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xnm_value_array</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="89dcf69f95cdea22b248e1ad8a3ab581"></a><!-- doxytag: member="xnm.h::xnm_value_array_push_string" ref="89dcf69f95cdea22b248e1ad8a3ab581" args="(XnmValue *xnm_value_array, const gchar *string)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_value_array_push_string           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value_array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&nbsp;</td>
          <td class="paramname"> <em>string</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Push a string into an xnm value of type array.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xnm_value_array</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="72bd5015e3e6b9c853abfc4ecdabb48b"></a><!-- doxytag: member="xnm.h::xnm_value_array_push_value" ref="72bd5015e3e6b9c853abfc4ecdabb48b" args="(XnmValue *xnm_value_array, XnmValue *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_value_array_push_value           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value_array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add an xnm_value into an <a class="el" href="structXnmValue.html">XnmValue</a> of type array.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="ab2b28f893e053a5ab3ca9fe0afdd59a"></a><!-- doxytag: member="xnm.h::xnm_value_export_to_string" ref="ab2b28f893e053a5ab3ca9fe0afdd59a" args="(XnmValue *xnm_value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">gchar* xnm_value_export_to_string           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Allocate a new string containing a serialized representation of xnm_value.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xnm_value</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="200b9e0ba79c5fb95e53c7c1a5869a76"></a><!-- doxytag: member="xnm.h::xnm_value_get" ref="200b9e0ba79c5fb95e53c7c1a5869a76" args="(XnmValue *xnm_value_tree, const char *key, XnmValue **xnm_value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_value_get           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value_tree</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> **&nbsp;</td>
          <td class="paramname"> <em>xnm_value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieve an xnm value from an xnm_value_tree. If the key is not found then the value is not assigned. If the key is found then xnm_value is assigned the corresponding string.<p>
Note that xnm_value_get does *not* dereference xnm_value before overwriting it with a new value.<p>
The returned xnm_value points into the xnm_value_tree with an increased reference count.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xnm_value_tree</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>xnm_value</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if value retrieved, -1 if value not found, -2 if key syntax error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="7343bccb1d8c50c2de232dbd429e4dfc"></a><!-- doxytag: member="xnm.h::xnm_value_get_array_length" ref="7343bccb1d8c50c2de232dbd429e4dfc" args="(XnmValue *xnm_value, const char *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_value_get_array_length           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrive the length of a <a class="el" href="structXnmValue.html">XnmValue</a> array.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xnm_value</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Length of array if node found. -1 if key not found or if xnm_value is not an array. </dd></dl>

</div>
</div><p>
<a class="anchor" name="8dd500e7727fa2efc6b167c774451ffb"></a><!-- doxytag: member="xnm.h::xnm_value_get_bool" ref="8dd500e7727fa2efc6b167c774451ffb" args="(XnmValue *xnm_value, const char *key, gboolean *val_bool)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_value_get_bool           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gboolean *&nbsp;</td>
          <td class="paramname"> <em>val_bool</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieve a boolean value from an xnm_value. The boolean value is considered true if it starts with 't','T','y','Y', or 1. Everything else is false. 
</div>
</div><p>
<a class="anchor" name="22eb29b840b66863d87bad4bb1a62314"></a><!-- doxytag: member="xnm.h::xnm_value_get_const_string" ref="22eb29b840b66863d87bad4bb1a62314" args="(XnmValue *xnm_value_tree, const char *key, const gchar **const_val_string)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_value_get_const_string           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value_tree</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar **&nbsp;</td>
          <td class="paramname"> <em>const_val_string</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This value retrieves a const pointer to the string within the xnm_value_tree.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xnm_value_tree</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>const_val_string</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if value retrieved, -1 if value not found, -2 if key syntax error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="cf6a2568f7d910e67e3e8323d8b61f8d"></a><!-- doxytag: member="xnm.h::xnm_value_get_int" ref="cf6a2568f7d910e67e3e8323d8b61f8d" args="(XnmValue *xnm_value, const char *key, int *val_int)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_value_get_int           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>val_int</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This value retrieves a value from an xnm_value and turns it into an integer with atoi().<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xnm_value</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>val_int</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if value retrieved, -1 if value not found, -2 if key syntax error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="a5c81a90fe1ad55f71699c5f5734a51e"></a><!-- doxytag: member="xnm.h::xnm_value_get_string" ref="a5c81a90fe1ad55f71699c5f5734a51e" args="(XnmValue *xnm_value, const char *key, gchar **string_val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_value_get_string           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gchar **&nbsp;</td>
          <td class="paramname"> <em>string_val</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This value retrieves a string from an xnm_value_tree. If the key is found then string_value is freed, and the string is copied into string_val. Otherwise, string_val is left untouched.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xnm_value</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>string_val</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if value retrieved, -1 if value not found, -2 if key syntax error. </dd></dl>

</div>
</div><p>
<a class="anchor" name="23b2cd798592a48bb2025f225ae8904c"></a><!-- doxytag: member="xnm.h::xnm_value_get_table_key_list" ref="23b2cd798592a48bb2025f225ae8904c" args="(XnmValue *xnm_value, const char *key, const GPtrArray **key_list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_value_get_table_key_list           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const GPtrArray **&nbsp;</td>
          <td class="paramname"> <em>key_list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get a list of all keys of a table.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xnm_value</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key_list</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="56ff15c5debd596dc1b18b4efd772d95"></a><!-- doxytag: member="xnm.h::xnm_value_get_values" ref="56ff15c5debd596dc1b18b4efd772d95" args="(XnmValue *xnm_value,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_value_get_values           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get a list of values in one call. This function is very convenient for extracting multiple values in one call. It takes as argument a NULL terminated vararg list, where each value extraction is controlled by three arguments:<p>
<ul>
<li>The key - A still containing the path to the node to get info from</li><li>The type the third argument. This value is of type |XnmValueGetType|.</li><li>A pointer to where to store the value.</li></ul>
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xnm_value</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="c8ca7c7c0946a5c52e00070fac2c99d2"></a><!-- doxytag: member="xnm.h::xnm_value_new_array" ref="c8ca7c7c0946a5c52e00070fac2c99d2" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structXnmValue.html">XnmValue</a>* xnm_value_new_array           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Allocate a new <a class="el" href="structXnmValue.html">XnmValue</a> with the type XNM_ARRAY.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="c42ff90d826164d82eb81cf866a1354a"></a><!-- doxytag: member="xnm.h::xnm_value_new_binary" ref="c42ff90d826164d82eb81cf866a1354a" args="(const gchar *buf, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structXnmValue.html">XnmValue</a>* xnm_value_new_binary           </td>
          <td>(</td>
          <td class="paramtype">const gchar *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Allocate a new <a class="el" href="structXnmValue.html">XnmValue</a> with the type binary and initiate it with the data in buf. 
</div>
</div><p>
<a class="anchor" name="144adfe0d13dc5c3dcc507491778cc41"></a><!-- doxytag: member="xnm.h::xnm_value_new_string" ref="144adfe0d13dc5c3dcc507491778cc41" args="(const gchar *s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structXnmValue.html">XnmValue</a>* xnm_value_new_string           </td>
          <td>(</td>
          <td class="paramtype">const gchar *&nbsp;</td>
          <td class="paramname"> <em>s</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Allocate a new <a class="el" href="structXnmValue.html">XnmValue</a> with the type string. The string is initialized to a copy of s.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Newly allocated <a class="el" href="structXnmValue.html">XnmValue</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="936c57fd5d7d5ef0b292efcfe72cbe09"></a><!-- doxytag: member="xnm.h::xnm_value_new_table" ref="936c57fd5d7d5ef0b292efcfe72cbe09" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structXnmValue.html">XnmValue</a>* xnm_value_new_table           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Allocate a new <a class="el" href="structXnmValue.html">XnmValue</a> with the type XNM_TABLE.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="cebb1c769e50dda33868b9c06f9eb23e"></a><!-- doxytag: member="xnm.h::xnm_value_ref" ref="cebb1c769e50dda33868b9c06f9eb23e" args="(XnmValue *xnm_value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void xnm_value_ref           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Increase the reference count of xnm_value.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xnm_value</em>&nbsp;</td><td></td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="eef96b7ef63c8b66a8d11ab90ac20792"></a><!-- doxytag: member="xnm.h::xnm_value_set_key_value_printf" ref="eef96b7ef63c8b66a8d11ab90ac20792" args="(XnmValue *xnm_value_parent, const gchar *key, const gchar *format,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_value_set_key_value_printf           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value_parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a key value which is formatted with printf.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xnm_value_parent</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="8be4e6e56710a5865fdfb4003f167b0a"></a><!-- doxytag: member="xnm.h::xnm_value_table_set_key_value" ref="8be4e6e56710a5865fdfb4003f167b0a" args="(XnmValue *xnm_value_tree, const gchar *key, XnmValue *xnm_value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_value_table_set_key_value           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value_tree</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a xnm_value to a xnm table. This function increases the reference count of the xnm_value.<p>
Note! This function does not yet support hierarchical keys. To set an a key that is not a direct parent of xnm_value_tree, the leaf xnm_value table must first be retrieved, and this function then called on that value.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xnm_value_tree</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>xnm_value</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="9161807d2bf248d29af7e172169d1b6a"></a><!-- doxytag: member="xnm.h::xnm_value_table_set_key_value_string" ref="9161807d2bf248d29af7e172169d1b6a" args="(XnmValue *xnm_value_parent, const gchar *key, const gchar *string)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int xnm_value_table_set_key_value_string           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value_parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&nbsp;</td>
          <td class="paramname"> <em>string</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convenience function for setting a string key value. If the key already exists in xnm_value_parent, then it is freed and replaced by the new svalue.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xnm_value_parent</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="e638c66188b57521792404e4cc61c629"></a><!-- doxytag: member="xnm.h::xnm_value_unref" ref="e638c66188b57521792404e4cc61c629" args="(XnmValue *xnm_value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void xnm_value_unref           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structXnmValue.html">XnmValue</a> *&nbsp;</td>
          <td class="paramname"> <em>xnm_value</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Decrease the reference count on an xnm_value. If the reference count goes down to 0, the value is destroyed.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>xnm_value</em>&nbsp;</td><td></td></tr>
  </table>
</dl>

</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Dec 25 10:36:27 2008 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>