<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>libannodex: anx_params.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.2-20100208 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> </div> <div class="contents"> <h1>anx_params.h File Reference</h1> <p>Manipulation of name=value parameters, with parsing of URI query strings and HTTP-style headers, and printing to these formats and XML meta and param tags. <a href="#_details">More...</a></p> <p><a href="anx__params_8h_source.html">Go to the source code of this file.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef void </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A set of parameters. <a href="#a18cf084399d02f21bc17cc4e9970245b"></a><br/></td></tr> <tr><td colspan="2"><h2>Enumerations</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__params_8h.html#ae9c7d1aba98a2718e251bde5d513c005">AnxParamStyle</a> { <a class="el" href="anx__params_8h.html#ae9c7d1aba98a2718e251bde5d513c005af84f21c8770dceb90c5938c8dd540e6b">ANX_PARAMS_QUERY</a> = 0, <a class="el" href="anx__params_8h.html#ae9c7d1aba98a2718e251bde5d513c005a3826b88b44bdf0a47e0886f0aee82a1a">ANX_PARAMS_HEADERS</a> = 1, <a class="el" href="anx__params_8h.html#ae9c7d1aba98a2718e251bde5d513c005aed0a461e008b7b1f09c2c92e7f26460e">ANX_PARAMS_METATAGS</a> = 1000, <a class="el" href="anx__params_8h.html#ae9c7d1aba98a2718e251bde5d513c005a044eb65d47269acfd95bc719d3b8feaf">ANX_PARAMS_PARAMTAGS</a> = 1001 }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Formatting styles for parsing and printing AnxParams objects. </p> <a href="anx__params_8h.html#ae9c7d1aba98a2718e251bde5d513c005">More...</a><br/></td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__params_8h.html#a58a590d184b0d5ca96e43718880b4e96">anx_params_new_parse</a> (char *input, <a class="el" href="anx__params_8h.html#ae9c7d1aba98a2718e251bde5d513c005">AnxParamStyle</a> style)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new AnxParms object by parsing text input of a given format. <a href="#a58a590d184b0d5ca96e43718880b4e96"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__params_8h.html#a0a74c53e5e83ea8b2465bd4d5e81cb17">anx_params_snprint</a> (char *buf, size_t n, <a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> *params, <a class="el" href="anx__params_8h.html#ae9c7d1aba98a2718e251bde5d513c005">AnxParamStyle</a> style)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Print an AnxParms object with a given formatting style. <a href="#a0a74c53e5e83ea8b2465bd4d5e81cb17"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__params_8h.html#a5e4bf75d8912dca432746fb9dc70e092">anx_params_get</a> (<a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> *params, char *name)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve a parameter from an AnxParams object. <a href="#a5e4bf75d8912dca432746fb9dc70e092"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__params_8h.html#add671a633093723fc1680414d80db69d">anx_params_replace</a> (<a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> *params, char *name, char *value)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a parameter to an AnxParams object. <a href="#add671a633093723fc1680414d80db69d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__params_8h.html#a8c4695104c24fd8ac2eee02e800a36fd">anx_params_append</a> (<a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> *params, char *name, char *value)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a parameter to an AnxParams object. <a href="#a8c4695104c24fd8ac2eee02e800a36fd"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__params_8h.html#a9ba1e830e1f65ade7bca0799e4c3de6f">anx_params_remove</a> (<a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> *params, char *name)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Remove a parameter from an AnxParams object. <a href="#a9ba1e830e1f65ade7bca0799e4c3de6f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__params_8h.html#afbfa538688c98b2367423c8604c31c55">anx_params_merge</a> (<a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> *dest, <a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> *src)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Merge two AnxParams objects. <a href="#afbfa538688c98b2367423c8604c31c55"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__params_8h.html#a2aa4566d119e62ac6fbacd71ae9e4ca4">anx_params_clone</a> (<a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> *params)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new AnxParams object by cloning an existing one. <a href="#a2aa4566d119e62ac6fbacd71ae9e4ca4"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__params_8h.html#aa0ded7f9086b9e65d4cfe3ac842d29c7">anx_params_free</a> (<a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> *params)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free an AnxParams object. <a href="#aa0ded7f9086b9e65d4cfe3ac842d29c7"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Manipulation of name=value parameters, with parsing of URI query strings and HTTP-style headers, and printing to these formats and XML meta and param tags. </p> <ul> <li>Field names are case-insensitive</li> <li>Field names are unique within an AnxParams object. When parsing URI query strings or HTTP-style headers, if multiple entries for the same field name are found, the successive values are concatenated and separated by commas (as per RFC2616 sec 4.2) </li> </ul> <hr/><h2>Typedef Documentation</h2> <a class="anchor" id="a18cf084399d02f21bc17cc4e9970245b"></a><!-- doxytag: member="anx_params.h::AnxParams" ref="a18cf084399d02f21bc17cc4e9970245b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void <a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a></td> </tr> </table> </div> <div class="memdoc"> <p>A set of parameters. </p> <ul> <li>NULL is equivalent to an empty parameter set</li> <li>Create with <a class="el" href="anx__params_8h.html#a58a590d184b0d5ca96e43718880b4e96" title="Create a new AnxParms object by parsing text input of a given format.">anx_params_new_parse()</a> or <a class="el" href="anx__params_8h.html#a2aa4566d119e62ac6fbacd71ae9e4ca4" title="Create a new AnxParams object by cloning an existing one.">anx_params_clone()</a>, or by adding a parameter to the empty set (NULL)</li> <li>The base value of an AnxParams object is updated by calls to <a class="el" href="anx__params_8h.html#add671a633093723fc1680414d80db69d" title="Add a parameter to an AnxParams object.">anx_params_replace()</a>, <a class="el" href="anx__params_8h.html#a8c4695104c24fd8ac2eee02e800a36fd" title="Add a parameter to an AnxParams object.">anx_params_append()</a>, <a class="el" href="anx__params_8h.html#a9ba1e830e1f65ade7bca0799e4c3de6f" title="Remove a parameter from an AnxParams object.">anx_params_remove()</a>, <a class="el" href="anx__params_8h.html#afbfa538688c98b2367423c8604c31c55" title="Merge two AnxParams objects.">anx_params_merge()</a> and <a class="el" href="anx__params_8h.html#a2aa4566d119e62ac6fbacd71ae9e4ca4" title="Create a new AnxParams object by cloning an existing one.">anx_params_clone()</a>. Hence the return value from these functions <b>must</b> be assigned back to the params object. </li> </ul> </div> </div> <hr/><h2>Enumeration Type Documentation</h2> <a class="anchor" id="ae9c7d1aba98a2718e251bde5d513c005"></a><!-- doxytag: member="anx_params.h::AnxParamStyle" ref="ae9c7d1aba98a2718e251bde5d513c005" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="anx__params_8h.html#ae9c7d1aba98a2718e251bde5d513c005">AnxParamStyle</a></td> </tr> </table> </div> <div class="memdoc"> <p>Formatting styles for parsing and printing AnxParams objects. </p> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="ae9c7d1aba98a2718e251bde5d513c005af84f21c8770dceb90c5938c8dd540e6b"></a><!-- doxytag: member="ANX_PARAMS_QUERY" ref="ae9c7d1aba98a2718e251bde5d513c005af84f21c8770dceb90c5938c8dd540e6b" args="" -->ANX_PARAMS_QUERY</em> </td><td> <p>URI query format, eg. </p> <pre>fish=haddock&color=green </pre> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ae9c7d1aba98a2718e251bde5d513c005a3826b88b44bdf0a47e0886f0aee82a1a"></a><!-- doxytag: member="ANX_PARAMS_HEADERS" ref="ae9c7d1aba98a2718e251bde5d513c005a3826b88b44bdf0a47e0886f0aee82a1a" args="" -->ANX_PARAMS_HEADERS</em> </td><td> <p>SMTP/HTTP/AnxData header format, eg. </p> <pre> Fish: haddock\r\n Color: Green\r\n </pre> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ae9c7d1aba98a2718e251bde5d513c005aed0a461e008b7b1f09c2c92e7f26460e"></a><!-- doxytag: member="ANX_PARAMS_METATAGS" ref="ae9c7d1aba98a2718e251bde5d513c005aed0a461e008b7b1f09c2c92e7f26460e" args="" -->ANX_PARAMS_METATAGS</em> </td><td> <p>XHTML/CMML meta tag format, eg. </p> <p>: </p> <pre> <meta name="fish" content="haddock"> <meta name="color" content="green"> </pre> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ae9c7d1aba98a2718e251bde5d513c005a044eb65d47269acfd95bc719d3b8feaf"></a><!-- doxytag: member="ANX_PARAMS_PARAMTAGS" ref="ae9c7d1aba98a2718e251bde5d513c005a044eb65d47269acfd95bc719d3b8feaf" args="" -->ANX_PARAMS_PARAMTAGS</em> </td><td> <p>CMML param tag format, eg. </p> <p>: </p> <pre> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>fish</em> </td><td> </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>color</em> </td><td> </td></tr> </table> </dd> </dl> </td></tr> </table> </dd> </dl> </pre></td></tr> </table> </dd> </dl> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="a8c4695104c24fd8ac2eee02e800a36fd"></a><!-- doxytag: member="anx_params.h::anx_params_append" ref="a8c4695104c24fd8ac2eee02e800a36fd" args="(AnxParams *params, char *name, char *value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a>* anx_params_append </td> <td>(</td> <td class="paramtype"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> * </td> <td class="paramname"> <em>params</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>value</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Add a parameter to an AnxParams object. </p> <p>If a parameter with the given <em>name</em> already exists in <em>params</em>, the new <em>value</em> is appended to the old one, separated by a comma. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>params</em> </td><td>An AnxParams object </td></tr> <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>The parameter name </td></tr> <tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>The new parameter value </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>The updated AnxParams object </dd></dl> </div> </div> <a class="anchor" id="a2aa4566d119e62ac6fbacd71ae9e4ca4"></a><!-- doxytag: member="anx_params.h::anx_params_clone" ref="a2aa4566d119e62ac6fbacd71ae9e4ca4" args="(AnxParams *params)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a>* anx_params_clone </td> <td>(</td> <td class="paramtype"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> * </td> <td class="paramname"> <em>params</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Create a new AnxParams object by cloning an existing one. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>params</em> </td><td>An existing AnxParams object. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>A new AnxParams object with copied parameters. All names and values in are duplicated in the returned object. </dd></dl> </div> </div> <a class="anchor" id="aa0ded7f9086b9e65d4cfe3ac842d29c7"></a><!-- doxytag: member="anx_params.h::anx_params_free" ref="aa0ded7f9086b9e65d4cfe3ac842d29c7" args="(AnxParams *params)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a>* anx_params_free </td> <td>(</td> <td class="paramtype"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> * </td> <td class="paramname"> <em>params</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Free an AnxParams object. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>params</em> </td><td>An AnxParams object </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>NULL on success </dd></dl> </div> </div> <a class="anchor" id="a5e4bf75d8912dca432746fb9dc70e092"></a><!-- doxytag: member="anx_params.h::anx_params_get" ref="a5e4bf75d8912dca432746fb9dc70e092" args="(AnxParams *params, char *name)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* anx_params_get </td> <td>(</td> <td class="paramtype"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> * </td> <td class="paramname"> <em>params</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>name</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Retrieve a parameter from an AnxParams object. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>params</em> </td><td>An AnxParams object </td></tr> <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>The parameter name </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>The parameter value </dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>NULL</em> </td><td>No such parameter </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="afbfa538688c98b2367423c8604c31c55"></a><!-- doxytag: member="anx_params.h::anx_params_merge" ref="afbfa538688c98b2367423c8604c31c55" args="(AnxParams *dest, AnxParams *src)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a>* anx_params_merge </td> <td>(</td> <td class="paramtype"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> * </td> <td class="paramname"> <em>dest</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> * </td> <td class="paramname"> <em>src</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Merge two AnxParams objects. </p> <p>Copies of all parameters in <em>src</em> are appended (as for <a class="el" href="anx__params_8h.html#a8c4695104c24fd8ac2eee02e800a36fd" title="Add a parameter to an AnxParams object.">anx_params_append()</a>) to <em>dest</em>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>The AnxParams object into which new values are appended </td></tr> <tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>An AnxParams object with the new values. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>An updated reference to <em>dest</em>. </dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd><em>src</em> is not modified by <a class="el" href="anx__params_8h.html#afbfa538688c98b2367423c8604c31c55" title="Merge two AnxParams objects.">anx_params_merge()</a>. </dd></dl> </div> </div> <a class="anchor" id="a58a590d184b0d5ca96e43718880b4e96"></a><!-- doxytag: member="anx_params.h::anx_params_new_parse" ref="a58a590d184b0d5ca96e43718880b4e96" args="(char *input, AnxParamStyle style)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a>* anx_params_new_parse </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"> <em>input</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="anx__params_8h.html#ae9c7d1aba98a2718e251bde5d513c005">AnxParamStyle</a> </td> <td class="paramname"> <em>style</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Create a new AnxParms object by parsing text input of a given format. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>input</em> </td><td>The text to parse </td></tr> <tr><td valign="top"></td><td valign="top"><em>style</em> </td><td>The formatting style of the text. Only ANX_PARAMS_QUERY and ANX_PARAMS_HEADERS are supported. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>A new AnxParams object </dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>NULL</em> </td><td>no parameters found in input, or unsupported style </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a9ba1e830e1f65ade7bca0799e4c3de6f"></a><!-- doxytag: member="anx_params.h::anx_params_remove" ref="a9ba1e830e1f65ade7bca0799e4c3de6f" args="(AnxParams *params, char *name)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a>* anx_params_remove </td> <td>(</td> <td class="paramtype"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> * </td> <td class="paramname"> <em>params</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>name</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Remove a parameter from an AnxParams object. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>params</em> </td><td>An AnxParams object </td></tr> <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>The parameter name </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>The updated AnxParams object </dd></dl> </div> </div> <a class="anchor" id="add671a633093723fc1680414d80db69d"></a><!-- doxytag: member="anx_params.h::anx_params_replace" ref="add671a633093723fc1680414d80db69d" args="(AnxParams *params, char *name, char *value)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a>* anx_params_replace </td> <td>(</td> <td class="paramtype"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> * </td> <td class="paramname"> <em>params</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>value</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Add a parameter to an AnxParams object. </p> <p>If a parameter with the given <em>name</em> already exists in <em>params</em>, the new <em>value</em> replaces the old one. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>params</em> </td><td>An AnxParams object </td></tr> <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>The parameter name </td></tr> <tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>The new parameter value </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>The updated AnxParams object </dd></dl> </div> </div> <a class="anchor" id="a0a74c53e5e83ea8b2465bd4d5e81cb17"></a><!-- doxytag: member="anx_params.h::anx_params_snprint" ref="a0a74c53e5e83ea8b2465bd4d5e81cb17" args="(char *buf, size_t n, AnxParams *params, AnxParamStyle style)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int anx_params_snprint </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>n</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="anx__params_8h.html#a18cf084399d02f21bc17cc4e9970245b">AnxParams</a> * </td> <td class="paramname"> <em>params</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="anx__params_8h.html#ae9c7d1aba98a2718e251bde5d513c005">AnxParamStyle</a> </td> <td class="paramname"> <em>style</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Print an AnxParms object with a given formatting style. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>The output buffer </td></tr> <tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>The maximum number of bytes to write </td></tr> <tr><td valign="top"></td><td valign="top"><em>params</em> </td><td>The AnxParams object </td></tr> <tr><td valign="top"></td><td valign="top"><em>style</em> </td><td>The formatting style of the generated text. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>The number of characters printed, not including the trailing '\0'</dd></dl> <p><b>Truncation</b>:</p> <ul> <li>On systems conforming to ISO C99, anx_snprint_params() returns the number of characters (not including the trailing '\0') that would have been written to the output string if enough space had been available.</li> <li>On non-C99 systems, anx_snprint_params() returns -1 on truncation. </li> </ul> </div> </div> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address> </body> </html>