<!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>PPL C Language Interface: Error Handling</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.3 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="main.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>Classes</span></a></li> </ul> </div> </div> <div class="contents"> <h1>Error Handling</h1><table border="0" cellpadding="0" cellspacing="0"> <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="group__Error.html#ga0c0ab09a97e49f85f42c966e14cfdee6">ppl_enum_error_code</a> { <br/> <a class="el" href="group__Error.html#gga0c0ab09a97e49f85f42c966e14cfdee6af29a62bdfcf44dbeec14afb409035438">PPL_ERROR_OUT_OF_MEMORY</a>, <a class="el" href="group__Error.html#gga0c0ab09a97e49f85f42c966e14cfdee6a093ae02f8ceebbc40321d1eaf186f726">PPL_ERROR_INVALID_ARGUMENT</a>, <a class="el" href="group__Error.html#gga0c0ab09a97e49f85f42c966e14cfdee6a8c65fedb9893ebb49394a3cff2f19a49">PPL_ERROR_DOMAIN_ERROR</a>, <a class="el" href="group__Error.html#gga0c0ab09a97e49f85f42c966e14cfdee6a6aa28e72200f879cbb83a36b60644fb2">PPL_ERROR_LENGTH_ERROR</a>, <br/> <a class="el" href="group__Error.html#gga0c0ab09a97e49f85f42c966e14cfdee6abd22c4eaabb49bcb6c654a25e402c64a">PPL_ARITHMETIC_OVERFLOW</a>, <a class="el" href="group__Error.html#gga0c0ab09a97e49f85f42c966e14cfdee6a0860beb1b1c54c9f774b532d92404992">PPL_STDIO_ERROR</a>, <a class="el" href="group__Error.html#gga0c0ab09a97e49f85f42c966e14cfdee6a7dae659f72f654afae1c5c6f331192a3">PPL_ERROR_INTERNAL_ERROR</a>, <a class="el" href="group__Error.html#gga0c0ab09a97e49f85f42c966e14cfdee6a03b444004b1031ddb1a51289b9d83106">PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION</a>, <br/> <a class="el" href="group__Error.html#gga0c0ab09a97e49f85f42c966e14cfdee6ab42a97917f263e8305d561f52cbd9c57">PPL_ERROR_UNEXPECTED_ERROR</a>, <a class="el" href="group__Error.html#gga0c0ab09a97e49f85f42c966e14cfdee6a24fd14db2a8ae42b3abcae3288e46edf">PPL_TIMEOUT_EXCEPTION</a>, <a class="el" href="group__Error.html#gga0c0ab09a97e49f85f42c966e14cfdee6a8bf236a519f7da9efd5f874a17d9689d">PPL_ERROR_LOGIC_ERROR</a> <br/> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Defines the error codes that any function may return. </p> <a href="group__Error.html#ga0c0ab09a97e49f85f42c966e14cfdee6">More...</a><br/></td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Error.html#gad6765993c08a2ae2f0ef377f822f4d33">ppl_set_error_handler</a> (void(*h)(enum <a class="el" href="group__Error.html#ga0c0ab09a97e49f85f42c966e14cfdee6">ppl_enum_error_code</a> code, const char *description))</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Installs the user-defined error handler pointed at by <code>h</code>. <a href="#gad6765993c08a2ae2f0ef377f822f4d33"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Symbolic constants and functions related to error reporting/handling. </p> <hr/><h2>Enumeration Type Documentation</h2> <a class="anchor" id="ga0c0ab09a97e49f85f42c966e14cfdee6"></a><!-- doxytag: member="ppl_c_header.h::ppl_enum_error_code" ref="ga0c0ab09a97e49f85f42c966e14cfdee6" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="group__Error.html#ga0c0ab09a97e49f85f42c966e14cfdee6">ppl_enum_error_code</a></td> </tr> </table> </div> <div class="memdoc"> <p>Defines the error codes that any function may return. </p> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="gga0c0ab09a97e49f85f42c966e14cfdee6af29a62bdfcf44dbeec14afb409035438"></a><!-- doxytag: member="PPL_ERROR_OUT_OF_MEMORY" ref="gga0c0ab09a97e49f85f42c966e14cfdee6af29a62bdfcf44dbeec14afb409035438" args="" -->PPL_ERROR_OUT_OF_MEMORY</em> </td><td> <p>The virtual memory available to the process has been exhausted. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga0c0ab09a97e49f85f42c966e14cfdee6a093ae02f8ceebbc40321d1eaf186f726"></a><!-- doxytag: member="PPL_ERROR_INVALID_ARGUMENT" ref="gga0c0ab09a97e49f85f42c966e14cfdee6a093ae02f8ceebbc40321d1eaf186f726" args="" -->PPL_ERROR_INVALID_ARGUMENT</em> </td><td> <p>A function has been invoked with an invalid argument. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga0c0ab09a97e49f85f42c966e14cfdee6a8c65fedb9893ebb49394a3cff2f19a49"></a><!-- doxytag: member="PPL_ERROR_DOMAIN_ERROR" ref="gga0c0ab09a97e49f85f42c966e14cfdee6a8c65fedb9893ebb49394a3cff2f19a49" args="" -->PPL_ERROR_DOMAIN_ERROR</em> </td><td> <p>A function has been invoked outside its domain of definition. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga0c0ab09a97e49f85f42c966e14cfdee6a6aa28e72200f879cbb83a36b60644fb2"></a><!-- doxytag: member="PPL_ERROR_LENGTH_ERROR" ref="gga0c0ab09a97e49f85f42c966e14cfdee6a6aa28e72200f879cbb83a36b60644fb2" args="" -->PPL_ERROR_LENGTH_ERROR</em> </td><td> <p>The construction of an object that would exceed its maximum permitted size was attempted. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga0c0ab09a97e49f85f42c966e14cfdee6abd22c4eaabb49bcb6c654a25e402c64a"></a><!-- doxytag: member="PPL_ARITHMETIC_OVERFLOW" ref="gga0c0ab09a97e49f85f42c966e14cfdee6abd22c4eaabb49bcb6c654a25e402c64a" args="" -->PPL_ARITHMETIC_OVERFLOW</em> </td><td> <p>An arithmetic overflow occurred and the computation was consequently interrupted. This can <em>only</em> happen in library's incarnations using bounded integers as coefficients. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga0c0ab09a97e49f85f42c966e14cfdee6a0860beb1b1c54c9f774b532d92404992"></a><!-- doxytag: member="PPL_STDIO_ERROR" ref="gga0c0ab09a97e49f85f42c966e14cfdee6a0860beb1b1c54c9f774b532d92404992" args="" -->PPL_STDIO_ERROR</em> </td><td> <p>An error occurred during a C input/output operation. A more precise indication of what went wrong is available via <code>errno</code>. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga0c0ab09a97e49f85f42c966e14cfdee6a7dae659f72f654afae1c5c6f331192a3"></a><!-- doxytag: member="PPL_ERROR_INTERNAL_ERROR" ref="gga0c0ab09a97e49f85f42c966e14cfdee6a7dae659f72f654afae1c5c6f331192a3" args="" -->PPL_ERROR_INTERNAL_ERROR</em> </td><td> <p>An internal error that was diagnosed by the PPL itself. This indicates a bug in the PPL. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga0c0ab09a97e49f85f42c966e14cfdee6a03b444004b1031ddb1a51289b9d83106"></a><!-- doxytag: member="PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION" ref="gga0c0ab09a97e49f85f42c966e14cfdee6a03b444004b1031ddb1a51289b9d83106" args="" -->PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION</em> </td><td> <p>A standard exception has been raised by the C++ run-time environment. This indicates a bug in the PPL. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga0c0ab09a97e49f85f42c966e14cfdee6ab42a97917f263e8305d561f52cbd9c57"></a><!-- doxytag: member="PPL_ERROR_UNEXPECTED_ERROR" ref="gga0c0ab09a97e49f85f42c966e14cfdee6ab42a97917f263e8305d561f52cbd9c57" args="" -->PPL_ERROR_UNEXPECTED_ERROR</em> </td><td> <p>A totally unknown, totally unexpected error happened. This indicates a bug in the PPL. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga0c0ab09a97e49f85f42c966e14cfdee6a24fd14db2a8ae42b3abcae3288e46edf"></a><!-- doxytag: member="PPL_TIMEOUT_EXCEPTION" ref="gga0c0ab09a97e49f85f42c966e14cfdee6a24fd14db2a8ae42b3abcae3288e46edf" args="" -->PPL_TIMEOUT_EXCEPTION</em> </td><td> <p>An exception has been raised by the PPL as a timeout previously set by the user has expired. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="gga0c0ab09a97e49f85f42c966e14cfdee6a8bf236a519f7da9efd5f874a17d9689d"></a><!-- doxytag: member="PPL_ERROR_LOGIC_ERROR" ref="gga0c0ab09a97e49f85f42c966e14cfdee6a8bf236a519f7da9efd5f874a17d9689d" args="" -->PPL_ERROR_LOGIC_ERROR</em> </td><td> <p>The client program attempted to use the PPL in a way that violates its internal logic. This happens, for instance, when the client attempts to use the timeout facilities on a system that does not support them. </p> </td></tr> </table> </dd> </dl> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="gad6765993c08a2ae2f0ef377f822f4d33"></a><!-- doxytag: member="ppl_c_header.h::ppl_set_error_handler" ref="gad6765993c08a2ae2f0ef377f822f4d33" args="(void(*h)(enum ppl_enum_error_code code, const char *description))" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int ppl_set_error_handler </td> <td>(</td> <td class="paramtype">void(*)(enum <a class="el" href="group__Error.html#ga0c0ab09a97e49f85f42c966e14cfdee6">ppl_enum_error_code</a> code, const char *description) </td> <td class="paramname"> <em>h</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Installs the user-defined error handler pointed at by <code>h</code>. </p> <p>The error handler takes an error code and a textual description that gives further information about the actual error. The C string containing the textual description is read-only and its existence is not guaranteed after the handler has returned. </p> </div> </div> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Feb 27 10:12:18 2011 for PPL C Language Interface by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address> </body> </html>