<!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>oRTP: B64_NAMESPACE Namespace 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.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="namespaces.html"><span>Namespace List</span></a></li> <li><a href="namespacemembers.html"><span>Namespace Members</span></a></li> </ul> </div> </div> <div class="contents"> <h1>B64_NAMESPACE Namespace Reference</h1> <p>[C/C++] The b64 namespace, within which the core library types and functions reside in C++ compilation. In C compilation, they all reside in the global namespace. <a href="#_details">More...</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"><a class="anchor" id="ac6b852ee26ea81cc20e1dbc350be5e8e"></a><!-- doxytag: member="B64_NAMESPACE::B64_RC" ref="ac6b852ee26ea81cc20e1dbc350be5e8e" args="" --> typedef enum <a class="el" href="namespaceB64__NAMESPACE.html#a3bfbcd893eb10c036166a3e8ba005a49">B64_RC</a> </td><td class="memItemRight" valign="bottom"><b>B64_RC</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac693ba691b08740c571a604e67ca5f0f"></a><!-- doxytag: member="B64_NAMESPACE::B64_FLAGS" ref="ac693ba691b08740c571a604e67ca5f0f" args="" --> typedef enum <a class="el" href="namespaceB64__NAMESPACE.html#ae102432897b8bcf5b2b7af984bad5dce">B64_FLAGS</a> </td><td class="memItemRight" valign="bottom"><b>B64_FLAGS</b></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="namespaceB64__NAMESPACE.html#a3bfbcd893eb10c036166a3e8ba005a49">B64_RC</a> { <br/> <a class="el" href="namespaceB64__NAMESPACE.html#a3bfbcd893eb10c036166a3e8ba005a49ae65e6daba42a4b949b3f244faaae47c9">B64_RC_OK</a> = 0, <a class="el" href="namespaceB64__NAMESPACE.html#a3bfbcd893eb10c036166a3e8ba005a49a35893a297a296bdc8651fffb44a1a9a8">B64_RC_INSUFFICIENT_BUFFER</a> = 1, <a class="el" href="namespaceB64__NAMESPACE.html#a3bfbcd893eb10c036166a3e8ba005a49a9a010b0b70ce19804e72273d78dd371c">B64_RC_TRUNCATED_INPUT</a> = 2, <a class="el" href="namespaceB64__NAMESPACE.html#a3bfbcd893eb10c036166a3e8ba005a49a5ac5e18d952969f7f82892e512ff0e9f">B64_RC_DATA_ERROR</a>, <br/> <b>B64_max_RC_value</b> <br/> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Return codes (from b64_encode2() / b64_decode2()). </p> <a href="namespaceB64__NAMESPACE.html#a3bfbcd893eb10c036166a3e8ba005a49">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceB64__NAMESPACE.html#ae102432897b8bcf5b2b7af984bad5dce">B64_FLAGS</a> { <br/> <a class="el" href="namespaceB64__NAMESPACE.html#ae102432897b8bcf5b2b7af984bad5dcea6a1ef9c8f8e9776aaafcbc228df23615">B64_F_LINE_LEN_USE_PARAM</a> = 0x0000, <a class="el" href="namespaceB64__NAMESPACE.html#ae102432897b8bcf5b2b7af984bad5dceaef75a2a2da14eca0df2ff8f342a59da5">B64_F_LINE_LEN_INFINITE</a> = 0x0001, <a class="el" href="namespaceB64__NAMESPACE.html#ae102432897b8bcf5b2b7af984bad5dceae3f2d1e22d8a9c46a64df4a3e2660169">B64_F_LINE_LEN_64</a> = 0x0002, <a class="el" href="namespaceB64__NAMESPACE.html#ae102432897b8bcf5b2b7af984bad5dcead0bcf7a3eddf72ebebbafb3d0f388ed2">B64_F_LINE_LEN_76</a> = 0x0003, <br/> <a class="el" href="namespaceB64__NAMESPACE.html#ae102432897b8bcf5b2b7af984bad5dcea43954ad78b225a5c51adfb25ce5c6ec6">B64_F_LINE_LEN_MASK</a> = 0x000f, <a class="el" href="namespaceB64__NAMESPACE.html#ae102432897b8bcf5b2b7af984bad5dcea24c08ed27ae91a772f1ce0c8d8dbd00a">B64_F_STOP_ON_NOTHING</a> = 0x0000, <a class="el" href="namespaceB64__NAMESPACE.html#ae102432897b8bcf5b2b7af984bad5dcea939fd38382ff5846ed5edd8c7708670a">B64_F_STOP_ON_UNKNOWN_CHAR</a> = 0x0100, <a class="el" href="namespaceB64__NAMESPACE.html#ae102432897b8bcf5b2b7af984bad5dceace86a93bb2e3e882a1c036222c200a72">B64_F_STOP_ON_UNEXPECTED_WS</a> = 0x0200, <br/> <a class="el" href="namespaceB64__NAMESPACE.html#ae102432897b8bcf5b2b7af984bad5dcea1f3ce3e866cab167af1db3f6a6db0f34">B64_F_STOP_ON_BAD_CHAR</a> = 0x0300 <br/> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Coding behaviour modification flags (for b64_encode2() / b64_decode2()). </p> <a href="namespaceB64__NAMESPACE.html#ae102432897b8bcf5b2b7af984bad5dce">More...</a><br/></td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceB64__NAMESPACE.html#a695d04fff712c40af5966faef1c62da9">b64_encode</a> (void const *src, size_t srcSize, char *dest, size_t destLen)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Encodes a block of binary data into Base-64. <a href="#a695d04fff712c40af5966faef1c62da9"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceB64__NAMESPACE.html#a495bce6b987de147b441a431f7640727">b64_encode2</a> (void const *src, size_t srcSize, char *dest, size_t destLen, unsigned flags, int lineLen, <a class="el" href="namespaceB64__NAMESPACE.html#a3bfbcd893eb10c036166a3e8ba005a49">B64_RC</a> *rc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Encodes a block of binary data into Base-64. <a href="#a495bce6b987de147b441a431f7640727"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceB64__NAMESPACE.html#aa5599872680bfe9c5e37e1d2ca7cba86">b64_decode</a> (char const *src, size_t srcLen, void *dest, size_t destSize)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Decodes a sequence of Base-64 into a block of binary data. <a href="#aa5599872680bfe9c5e37e1d2ca7cba86"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceB64__NAMESPACE.html#ab070b59d1860082d229a4597a394dd92">b64_decode2</a> (char const *src, size_t srcLen, void *dest, size_t destSize, unsigned flags, char const **badChar, <a class="el" href="namespaceB64__NAMESPACE.html#a3bfbcd893eb10c036166a3e8ba005a49">B64_RC</a> *rc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Decodes a sequence of Base-64 into a block of binary data. <a href="#ab070b59d1860082d229a4597a394dd92"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">char const * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceB64__NAMESPACE.html#ab1e7163e485bbf6c0452793834ec86d8">b64_getErrorString</a> (<a class="el" href="namespaceB64__NAMESPACE.html#a3bfbcd893eb10c036166a3e8ba005a49">B64_RC</a> code)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the textual description of the error. <a href="#ab1e7163e485bbf6c0452793834ec86d8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceB64__NAMESPACE.html#af4e8df376a6193d60e950934583bef2c">b64_getErrorStringLength</a> (<a class="el" href="namespaceB64__NAMESPACE.html#a3bfbcd893eb10c036166a3e8ba005a49">B64_RC</a> code)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the length of the textual description of the error. <a href="#af4e8df376a6193d60e950934583bef2c"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>[C/C++] The b64 namespace, within which the core library types and functions reside in C++ compilation. In C compilation, they all reside in the global namespace. </p> <hr> <hr/><h2>Enumeration Type Documentation</h2> <a class="anchor" id="ae102432897b8bcf5b2b7af984bad5dce"></a><!-- doxytag: member="B64_NAMESPACE::B64_FLAGS" ref="ae102432897b8bcf5b2b7af984bad5dce" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="namespaceB64__NAMESPACE.html#ae102432897b8bcf5b2b7af984bad5dce">B64_NAMESPACE::B64_FLAGS</a></td> </tr> </table> </div> <div class="memdoc"> <p>Coding behaviour modification flags (for <a class="el" href="namespaceB64__NAMESPACE.html#a495bce6b987de147b441a431f7640727" title="Encodes a block of binary data into Base-64.">b64_encode2()</a> / <a class="el" href="namespaceB64__NAMESPACE.html#ab070b59d1860082d229a4597a394dd92" title="Decodes a sequence of Base-64 into a block of binary data.">b64_decode2()</a>). </p> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="ae102432897b8bcf5b2b7af984bad5dcea6a1ef9c8f8e9776aaafcbc228df23615"></a><!-- doxytag: member="B64_F_LINE_LEN_USE_PARAM" ref="ae102432897b8bcf5b2b7af984bad5dcea6a1ef9c8f8e9776aaafcbc228df23615" args="" -->B64_F_LINE_LEN_USE_PARAM</em> </td><td> <p>Uses the lineLen parameter to <a class="el" href="namespaceB64__NAMESPACE.html#a495bce6b987de147b441a431f7640727" title="Encodes a block of binary data into Base-64.">b64_encode2()</a>. Ignored by <a class="el" href="namespaceB64__NAMESPACE.html#ab070b59d1860082d229a4597a394dd92" title="Decodes a sequence of Base-64 into a block of binary data.">b64_decode2()</a>. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ae102432897b8bcf5b2b7af984bad5dceaef75a2a2da14eca0df2ff8f342a59da5"></a><!-- doxytag: member="B64_F_LINE_LEN_INFINITE" ref="ae102432897b8bcf5b2b7af984bad5dceaef75a2a2da14eca0df2ff8f342a59da5" args="" -->B64_F_LINE_LEN_INFINITE</em> </td><td> <p>Ignores the lineLen parameter to <a class="el" href="namespaceB64__NAMESPACE.html#a495bce6b987de147b441a431f7640727" title="Encodes a block of binary data into Base-64.">b64_encode2()</a>. Line length is infinite. Ignored by <a class="el" href="namespaceB64__NAMESPACE.html#ab070b59d1860082d229a4597a394dd92" title="Decodes a sequence of Base-64 into a block of binary data.">b64_decode2()</a>. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ae102432897b8bcf5b2b7af984bad5dceae3f2d1e22d8a9c46a64df4a3e2660169"></a><!-- doxytag: member="B64_F_LINE_LEN_64" ref="ae102432897b8bcf5b2b7af984bad5dceae3f2d1e22d8a9c46a64df4a3e2660169" args="" -->B64_F_LINE_LEN_64</em> </td><td> <p>Ignores the lineLen parameter to <a class="el" href="namespaceB64__NAMESPACE.html#a495bce6b987de147b441a431f7640727" title="Encodes a block of binary data into Base-64.">b64_encode2()</a>. Line length is 64. Ignored by <a class="el" href="namespaceB64__NAMESPACE.html#ab070b59d1860082d229a4597a394dd92" title="Decodes a sequence of Base-64 into a block of binary data.">b64_decode2()</a>. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ae102432897b8bcf5b2b7af984bad5dcead0bcf7a3eddf72ebebbafb3d0f388ed2"></a><!-- doxytag: member="B64_F_LINE_LEN_76" ref="ae102432897b8bcf5b2b7af984bad5dcead0bcf7a3eddf72ebebbafb3d0f388ed2" args="" -->B64_F_LINE_LEN_76</em> </td><td> <p>Ignores the lineLen parameter to <a class="el" href="namespaceB64__NAMESPACE.html#a495bce6b987de147b441a431f7640727" title="Encodes a block of binary data into Base-64.">b64_encode2()</a>. Line length is 76. Ignored by <a class="el" href="namespaceB64__NAMESPACE.html#ab070b59d1860082d229a4597a394dd92" title="Decodes a sequence of Base-64 into a block of binary data.">b64_decode2()</a>. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ae102432897b8bcf5b2b7af984bad5dcea43954ad78b225a5c51adfb25ce5c6ec6"></a><!-- doxytag: member="B64_F_LINE_LEN_MASK" ref="ae102432897b8bcf5b2b7af984bad5dcea43954ad78b225a5c51adfb25ce5c6ec6" args="" -->B64_F_LINE_LEN_MASK</em> </td><td> <p>Mask for testing line length flags to <a class="el" href="namespaceB64__NAMESPACE.html#a495bce6b987de147b441a431f7640727" title="Encodes a block of binary data into Base-64.">b64_encode2()</a>. Ignored by <a class="el" href="namespaceB64__NAMESPACE.html#a495bce6b987de147b441a431f7640727" title="Encodes a block of binary data into Base-64.">b64_encode2()</a>. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ae102432897b8bcf5b2b7af984bad5dcea24c08ed27ae91a772f1ce0c8d8dbd00a"></a><!-- doxytag: member="B64_F_STOP_ON_NOTHING" ref="ae102432897b8bcf5b2b7af984bad5dcea24c08ed27ae91a772f1ce0c8d8dbd00a" args="" -->B64_F_STOP_ON_NOTHING</em> </td><td> <p>Decoding ignores all invalid characters in the input data. Ignored by <a class="el" href="namespaceB64__NAMESPACE.html#a495bce6b987de147b441a431f7640727" title="Encodes a block of binary data into Base-64.">b64_encode2()</a>. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ae102432897b8bcf5b2b7af984bad5dcea939fd38382ff5846ed5edd8c7708670a"></a><!-- doxytag: member="B64_F_STOP_ON_UNKNOWN_CHAR" ref="ae102432897b8bcf5b2b7af984bad5dcea939fd38382ff5846ed5edd8c7708670a" args="" -->B64_F_STOP_ON_UNKNOWN_CHAR</em> </td><td> <p>Causes decoding to break if any non-Base-64 [a-zA-Z0-9=+/], non-whitespace character is encountered. Ignored by <a class="el" href="namespaceB64__NAMESPACE.html#a495bce6b987de147b441a431f7640727" title="Encodes a block of binary data into Base-64.">b64_encode2()</a>. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ae102432897b8bcf5b2b7af984bad5dceace86a93bb2e3e882a1c036222c200a72"></a><!-- doxytag: member="B64_F_STOP_ON_UNEXPECTED_WS" ref="ae102432897b8bcf5b2b7af984bad5dceace86a93bb2e3e882a1c036222c200a72" args="" -->B64_F_STOP_ON_UNEXPECTED_WS</em> </td><td> <p>Causes decoding to break if any unexpected whitespace is encountered. Ignored by <a class="el" href="namespaceB64__NAMESPACE.html#a495bce6b987de147b441a431f7640727" title="Encodes a block of binary data into Base-64.">b64_encode2()</a>. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ae102432897b8bcf5b2b7af984bad5dcea1f3ce3e866cab167af1db3f6a6db0f34"></a><!-- doxytag: member="B64_F_STOP_ON_BAD_CHAR" ref="ae102432897b8bcf5b2b7af984bad5dcea1f3ce3e866cab167af1db3f6a6db0f34" args="" -->B64_F_STOP_ON_BAD_CHAR</em> </td><td> <p>Causes decoding to break if any non-Base-64 [a-zA-Z0-9=+/] character is encountered. Ignored by <a class="el" href="namespaceB64__NAMESPACE.html#a495bce6b987de147b441a431f7640727" title="Encodes a block of binary data into Base-64.">b64_encode2()</a>. </p> </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a3bfbcd893eb10c036166a3e8ba005a49"></a><!-- doxytag: member="B64_NAMESPACE::B64_RC" ref="a3bfbcd893eb10c036166a3e8ba005a49" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="namespaceB64__NAMESPACE.html#a3bfbcd893eb10c036166a3e8ba005a49">B64_NAMESPACE::B64_RC</a></td> </tr> </table> </div> <div class="memdoc"> <p>Return codes (from <a class="el" href="namespaceB64__NAMESPACE.html#a495bce6b987de147b441a431f7640727" title="Encodes a block of binary data into Base-64.">b64_encode2()</a> / <a class="el" href="namespaceB64__NAMESPACE.html#ab070b59d1860082d229a4597a394dd92" title="Decodes a sequence of Base-64 into a block of binary data.">b64_decode2()</a>). </p> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a3bfbcd893eb10c036166a3e8ba005a49ae65e6daba42a4b949b3f244faaae47c9"></a><!-- doxytag: member="B64_RC_OK" ref="a3bfbcd893eb10c036166a3e8ba005a49ae65e6daba42a4b949b3f244faaae47c9" args="" -->B64_RC_OK</em> </td><td> <p>Operation was successful. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a3bfbcd893eb10c036166a3e8ba005a49a35893a297a296bdc8651fffb44a1a9a8"></a><!-- doxytag: member="B64_RC_INSUFFICIENT_BUFFER" ref="a3bfbcd893eb10c036166a3e8ba005a49a35893a297a296bdc8651fffb44a1a9a8" args="" -->B64_RC_INSUFFICIENT_BUFFER</em> </td><td> <p>The given translation buffer was not of sufficient size. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a3bfbcd893eb10c036166a3e8ba005a49a9a010b0b70ce19804e72273d78dd371c"></a><!-- doxytag: member="B64_RC_TRUNCATED_INPUT" ref="a3bfbcd893eb10c036166a3e8ba005a49a9a010b0b70ce19804e72273d78dd371c" args="" -->B64_RC_TRUNCATED_INPUT</em> </td><td> <p>The input did not represent a fully formed stream of octet couplings. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a3bfbcd893eb10c036166a3e8ba005a49a5ac5e18d952969f7f82892e512ff0e9f"></a><!-- doxytag: member="B64_RC_DATA_ERROR" ref="a3bfbcd893eb10c036166a3e8ba005a49a5ac5e18d952969f7f82892e512ff0e9f" args="" -->B64_RC_DATA_ERROR</em> </td><td> <p>Invalid data. </p> </td></tr> </table> </dd> </dl> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="aa5599872680bfe9c5e37e1d2ca7cba86"></a><!-- doxytag: member="B64_NAMESPACE::b64_decode" ref="aa5599872680bfe9c5e37e1d2ca7cba86" args="(char const *src, size_t srcLen, void *dest, size_t destSize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t B64_NAMESPACE::b64_decode </td> <td>(</td> <td class="paramtype">char const * </td> <td class="paramname"> <em>src</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>srcLen</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>dest</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>destSize</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Decodes a sequence of Base-64 into a block of binary data. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>Pointer to the Base-64 block to be decoded. May not be NULL, except when <code>dest</code> is NULL, in which case it is ignored. If <code>dest</code> is NULL, and <code>src</code> is <b>not</b> NULL, then the returned value is calculated exactly, otherwise a value is returned that is guaranteed to be large enough to hold the decoded block.</td></tr> <tr><td valign="top"></td><td valign="top"><em>srcLen</em> </td><td>Length of block to be encoded. Must be an integral of 4, the Base-64 encoding quantum, otherwise the Base-64 block is assumed to be invalid </td></tr> <tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>Pointer to the buffer into which the result is to be written. May be NULL, in which case the function returns the required length </td></tr> <tr><td valign="top"></td><td valign="top"><em>destSize</em> </td><td>Length of the buffer into which the result is to be written. Must be at least as large as that indicated by the return value from <code>b64_decode(src, srcSize, NULL, 0)</code>, even in the case where the encoded form contains a number of characters that will be ignored, resulting in a lower total length of converted form.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 if the size of the buffer was insufficient, or the length of the converted buffer was longer than <code>destSize</code> </dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>The function returns the required length if <code>dest</code> is NULL. The returned size might be larger than the actual required size, but will never be smaller.</dd> <dd> <a class="anchor" id="anchor__4_characters"></a> The behaviour of both <a class="el" href="">b64_encode2()</a> and <a class="el" href="">b64_decode2()</a> are undefined if the line length is not a multiple of 4.</dd> <dd> Threading: The function is fully re-entrant.</dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd>b64::decode() </dd></dl> <p>References <a class="el" href="b64_8h_source.html#l00189">B64_F_STOP_ON_NOTHING</a>.</p> </div> </div> <a class="anchor" id="ab070b59d1860082d229a4597a394dd92"></a><!-- doxytag: member="B64_NAMESPACE::b64_decode2" ref="ab070b59d1860082d229a4597a394dd92" args="(char const *src, size_t srcLen, void *dest, size_t destSize, unsigned flags, char const **badChar, B64_RC *rc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t B64_NAMESPACE::b64_decode2 </td> <td>(</td> <td class="paramtype">char const * </td> <td class="paramname"> <em>src</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>srcLen</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>dest</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>destSize</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned </td> <td class="paramname"> <em>flags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char const ** </td> <td class="paramname"> <em>badChar</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">B64_RC * </td> <td class="paramname"> <em>rc</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Decodes a sequence of Base-64 into a block of binary data. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>Pointer to the Base-64 block to be decoded. May not be NULL, except when <code>dest</code> is NULL, in which case it is ignored. If <code>dest</code> is NULL, and <code>src</code> is <b>not</b> NULL, then the returned value is calculated exactly, otherwise a value is returned that is guaranteed to be large enough to hold the decoded block.</td></tr> <tr><td valign="top"></td><td valign="top"><em>srcLen</em> </td><td>Length of block to be encoded. Must be an integral of 4, the Base-64 encoding quantum, otherwise the Base-64 block is assumed to be invalid </td></tr> <tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>Pointer to the buffer into which the result is to be written. May be NULL, in which case the function returns the required length </td></tr> <tr><td valign="top"></td><td valign="top"><em>destSize</em> </td><td>Length of the buffer into which the result is to be written. Must be at least as large as that indicated by the return value from <code>b64_decode(src, srcSize, NULL, 0)</code>, even in the case where the encoded form contains a number of characters that will be ignored, resulting in a lower total length of converted form. </td></tr> <tr><td valign="top"></td><td valign="top"><em>flags</em> </td><td>A combination of the B64_FLAGS enumeration, that moderate the behaviour of the function. </td></tr> <tr><td valign="top"></td><td valign="top"><em>rc</em> </td><td>The return code representing the status of the operation. May be NULL. </td></tr> <tr><td valign="top"></td><td valign="top"><em>badChar</em> </td><td>If the flags parameter does not contain B64_F_STOP_ON_NOTHING, this parameter specifies the address of a pointer that will be set to point to any character in the sequence that stops the parsing, as dictated by the flags parameter. May be NULL.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 if the size of the buffer was insufficient, or the length of the converted buffer was longer than <code>destSize</code>, or a bad character stopped parsing.</dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>The function returns the required length if <code>dest</code> is NULL. The returned size might be larger than the actual required size, but will never be smaller.</dd> <dd> The behaviour of both <a class="el" href="">b64_encode2()</a> and <a class="el" href="">b64_decode2()</a> are undefined if the line length is not a multiple of 4.</dd> <dd> Threading: The function is fully re-entrant.</dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd>b64::decode() </dd></dl> </div> </div> <a class="anchor" id="a695d04fff712c40af5966faef1c62da9"></a><!-- doxytag: member="B64_NAMESPACE::b64_encode" ref="a695d04fff712c40af5966faef1c62da9" args="(void const *src, size_t srcSize, char *dest, size_t destLen)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t B64_NAMESPACE::b64_encode </td> <td>(</td> <td class="paramtype">void const * </td> <td class="paramname"> <em>src</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>srcSize</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>dest</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>destLen</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Encodes a block of binary data into Base-64. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>Pointer to the block to be encoded. May not be NULL, except when <code>dest</code> is NULL, in which case it is ignored. </td></tr> <tr><td valign="top"></td><td valign="top"><em>srcSize</em> </td><td>Length of block to be encoded </td></tr> <tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>Pointer to the buffer into which the result is to be written. May be NULL, in which case the function returns the required length </td></tr> <tr><td valign="top"></td><td valign="top"><em>destLen</em> </td><td>Length of the buffer into which the result is to be written. Must be at least as large as that indicated by the return value from <a class="el" href="b64_8c.html#aa518340c8e76af0cf0753c15bebfc2af">b64_encode(NULL, srcSize, NULL, 0)</a>.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 if the size of the buffer was insufficient, or the length of the converted buffer was longer than <code>destLen</code> </dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>The function returns the required length if <code>dest</code> is NULL</dd> <dd> The function returns the required length if <code>dest</code> is NULL. The returned size might be larger than the actual required size, but will never be smaller.</dd> <dd> Threading: The function is fully re-entrant.</dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd>b64::encode() </dd></dl> </div> </div> <a class="anchor" id="a495bce6b987de147b441a431f7640727"></a><!-- doxytag: member="B64_NAMESPACE::b64_encode2" ref="a495bce6b987de147b441a431f7640727" args="(void const *src, size_t srcSize, char *dest, size_t destLen, unsigned flags, int lineLen, B64_RC *rc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t B64_NAMESPACE::b64_encode2 </td> <td>(</td> <td class="paramtype">void const * </td> <td class="paramname"> <em>src</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>srcSize</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>dest</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>destLen</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned </td> <td class="paramname"> <em>flags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>lineLen</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">B64_RC * </td> <td class="paramname"> <em>rc</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Encodes a block of binary data into Base-64. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>Pointer to the block to be encoded. May not be NULL, except when <code>dest</code> is NULL, in which case it is ignored. </td></tr> <tr><td valign="top"></td><td valign="top"><em>srcSize</em> </td><td>Length of block to be encoded </td></tr> <tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>Pointer to the buffer into which the result is to be written. May be NULL, in which case the function returns the required length </td></tr> <tr><td valign="top"></td><td valign="top"><em>destLen</em> </td><td>Length of the buffer into which the result is to be written. Must be at least as large as that indicated by the return value from <a class="el" href="">b64_encode2(NULL, srcSize, NULL, 0, flags, lineLen, rc)</a>. </td></tr> <tr><td valign="top"></td><td valign="top"><em>flags</em> </td><td>A combination of the B64_FLAGS enumeration, that moderate the behaviour of the function </td></tr> <tr><td valign="top"></td><td valign="top"><em>lineLen</em> </td><td>If the flags parameter contains B64_F_LINE_LEN_USE_PARAM, then this parameter represents the length of the lines into which the encoded form is split, with a hard line break ('\r\n'). If this value is 0, then the line is not split. If it is <0, then the RFC-1113 recommended line length of 64 is used </td></tr> <tr><td valign="top"></td><td valign="top"><em>rc</em> </td><td>The return code representing the status of the operation. May be NULL.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 if the size of the buffer was insufficient, or the length of the converted buffer was longer than <code>destLen</code> </dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>The function returns the required length if <code>dest</code> is NULL. The returned size might be larger than the actual required size, but will never be smaller.</dd> <dd> Threading: The function is fully re-entrant.</dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd>b64::encode() </dd></dl> </div> </div> <a class="anchor" id="ab1e7163e485bbf6c0452793834ec86d8"></a><!-- doxytag: member="B64_NAMESPACE::b64_getErrorString" ref="ab1e7163e485bbf6c0452793834ec86d8" args="(B64_RC code)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char const* B64_NAMESPACE::b64_getErrorString </td> <td>(</td> <td class="paramtype">B64_RC </td> <td class="paramname"> <em>code</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the textual description of the error. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>code</em> </td><td>The <a class="el" href="">error code</a> </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="af4e8df376a6193d60e950934583bef2c"></a><!-- doxytag: member="B64_NAMESPACE::b64_getErrorStringLength" ref="af4e8df376a6193d60e950934583bef2c" args="(B64_RC code)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t B64_NAMESPACE::b64_getErrorStringLength </td> <td>(</td> <td class="paramtype">B64_RC </td> <td class="paramname"> <em>code</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the length of the textual description of the error. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceB64__NAMESPACE.html#ab1e7163e485bbf6c0452793834ec86d8" title="Returns the textual description of the error.">b64_getErrorString()</a></dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>code</em> </td><td>The <a class="el" href="">error code</a> </td></tr> </table> </dd> </dl> </div> </div> </div> <hr size="1"/><address style="text-align: right;"><small>Generated on 30 Nov 2009 for oRTP by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address> </body> </html>