<html> <head><title>ClanLib Reference: CL_Assert</title></head> <body text=black link=blue vlink=#800080 bgcolor=white topmargin=0 leftmargin=0> <table border=0 cellspacing=0 cellpadding=0 width=100%><tr><td><img border=0 src="../images/eyeheader-main-purple-a.gif" alt="ClanSoft logo" width=525 height=96></td></tr> <tr bgcolor=#dadada><td align=left valign=top><img border=0 src="../images/eyeheader-main-purple-b.gif" alt="ClanSoft logo" width=190 height=14></td><td align=right valign=top><img border=0 src="../images/clanlib_light.gif" width=42 height=14></td></tr></table> <table align=center border=0 cellspacing=10> <tr> <td><a href="entire_class_index.html">Entire Class Index</a></td> <td><a href="class_index.html">Main Class Index</a></td> <td><a href="cross_index.html">Cross Index</a></td> <td><a href="global_index.html">Global Index</a></td> </table><h1 align=center>Class CL_Assert</h1><p> <b> This is ClanLib's assertion class.</b><br> Contained in: <a href="global_index.html">global</a><br> Derived from: <i>none</i> <br> Derived by: <i>none</i> <br>Group: Core (System) <p> #include <ClanLib/core.h> <p> <hr noshade> <table border=0> <tr><td colspan=3><h3>public function member index:</h3></td> <tr valign=top><td align=left><h3>Operations:</h3></td> <tr valign=top><td align=right><tt><tt>static</tt> <tt><font color=purple>void</font></tt></tt> </td><td align=right><a href="CL_Assert.html#1140"><tt><font color=blue><b>enable_channels</b></font></tt></a></td><td><tt>(<tt><font color=purple>int</font></tt> <tt><font color=blue>channel_mask</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt>static</tt> <tt><font color=purple>void</font></tt></tt> </td><td align=right><a href="CL_Assert.html#1141"><tt><font color=blue><b>die</b></font></tt></a></td><td><tt>(<tt><font color=purple>bool</font></tt> <tt><font color=blue>a</font></tt>, <tt>const</tt> <tt><font color=purple>char</font></tt>* <tt><font color=blue>file</font></tt>, <tt><font color=purple>int</font></tt> <tt><font color=blue>line</font></tt>, <tt>const</tt> <tt><font color=purple>char</font></tt>* <tt><font color=blue>func</font></tt>, <tt>const</tt> <tt><font color=purple>char</font></tt>* <tt><font color=blue>assert_str</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt>static</tt> <tt><font color=purple>void</font></tt></tt> </td><td align=right><a href="CL_Assert.html#1142"><tt><font color=blue><b>info</b></font></tt></a></td><td><tt>(<tt><font color=purple>int</font></tt> <tt><font color=blue>channel</font></tt>, <tt>const</tt> <tt><font color=purple>char</font></tt>* <tt><font color=blue>text</font></tt>, <tt>const</tt> <tt><font color=purple>char</font></tt>* <tt><font color=blue>file</font></tt>, <tt><font color=purple>int</font></tt> <tt><font color=blue>line</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt>static</tt> <tt><font color=purple>void</font></tt></tt> </td><td align=right><a href="CL_Assert.html#1143"><tt><font color=blue><b>add_listener</b></font></tt></a></td><td><tt>(<a href="CL_AssertListener.html"><tt><font color=navy><b>CL_AssertListener</b></font></tt></a>* <tt><font color=blue>listener</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt>static</tt> <tt><font color=purple>void</font></tt></tt> </td><td align=right><a href="CL_Assert.html#1144"><tt><font color=blue><b>remove_listener</b></font></tt></a></td><td><tt>(<a href="CL_AssertListener.html"><tt><font color=navy><b>CL_AssertListener</b></font></tt></a>* <tt><font color=blue>listener</font></tt>)</tt>;</td> <tr><td> </td></table> <hr noshade> <h2>Description:</h2> It is needed because some implementations requires to be notified before ClanLib is exited. For instance the svgalib implementation need release the keyboard lock.<br><p> <hr noshade> <h2>Function Member Descriptions:</h2> <a name="1143"><font size=+1><b>CL_Assert::add_listener</b></font></a> - Adds an assertion listener which will be called in case of an assertion.<br><tt><tt>static</tt> <tt><font color=purple>void</font></tt></tt> <a href="CL_Assert.html#1143"><tt><font color=blue><b>add_listener</b></font></tt></a><tt>(<a href="CL_AssertListener.html"><tt><font color=navy><b>CL_AssertListener</b></font></tt></a>* <tt><font color=blue>listener</font></tt>)</tt>;<br><blockquote> listener - The listener to be added.</blockquote> <hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="1141"><font size=+1><b>CL_Assert::die</b></font></a> - Produces an assert.<br> This function shouldn't be called directly - instead, use the cl_assert macro. For example: cl_assert(should_not_be_zero != 0)<br><tt><tt>static</tt> <tt><font color=purple>void</font></tt></tt> <a href="CL_Assert.html#1141"><tt><font color=blue><b>die</b></font></tt></a><tt>(<tt><font color=purple>bool</font></tt> <tt><font color=blue>a</font></tt>, <tt>const</tt> <tt><font color=purple>char</font></tt>* <tt><font color=blue>file</font></tt>, <tt><font color=purple>int</font></tt> <tt><font color=blue>line</font></tt>, <tt>const</tt> <tt><font color=purple>char</font></tt>* <tt><font color=blue>func</font></tt>, <tt>const</tt> <tt><font color=purple>char</font></tt>* <tt><font color=blue>assert_str</font></tt>)</tt>;<br><blockquote> a - Asserts if false.<br> file - Name of the file where the assert occurred.<br> line - Line in the file where the assert occurred.<br> func - Function in which the assert occurred.<br> assert_str - String that describe the assertion check.</blockquote> <hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="1140"><font size=+1><b>CL_Assert::enable_channels</b></font></a> - Enabled the error channels specified by the 'channel_mask'.<br> This can be used to get extra debugging information from limited parts of ClanLib.<br><tt><tt>static</tt> <tt><font color=purple>void</font></tt></tt> <a href="CL_Assert.html#1140"><tt><font color=blue><b>enable_channels</b></font></tt></a><tt>(<tt><font color=purple>int</font></tt> <tt><font color=blue>channel_mask</font></tt>)</tt>;<br><blockquote> channel_mask - Channels to be enabled.</blockquote> <hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="1142"><font size=+1><b>CL_Assert::info</b></font></a> - Writes an info statements on the specified channel.<br> Don't callthis one directly, instead use the cl_info macro. For example: cl_info(info_network, "MyClass::my_funx - Hello World.");<br><tt><tt>static</tt> <tt><font color=purple>void</font></tt></tt> <a href="CL_Assert.html#1142"><tt><font color=blue><b>info</b></font></tt></a><tt>(<tt><font color=purple>int</font></tt> <tt><font color=blue>channel</font></tt>, <tt>const</tt> <tt><font color=purple>char</font></tt>* <tt><font color=blue>text</font></tt>, <tt>const</tt> <tt><font color=purple>char</font></tt>* <tt><font color=blue>file</font></tt>, <tt><font color=purple>int</font></tt> <tt><font color=blue>line</font></tt>)</tt>;<br><blockquote> channel - Channel to use. (Use the ErrorChannels enum's)<br> text - text to print.<br> file - Name of the file where this was printed from.<br> line - Line in the file where this was printed from.</blockquote> <hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="1144"><font size=+1><b>CL_Assert::remove_listener</b></font></a> - Removes an assertion listener.<br><tt><tt>static</tt> <tt><font color=purple>void</font></tt></tt> <a href="CL_Assert.html#1144"><tt><font color=blue><b>remove_listener</b></font></tt></a><tt>(<a href="CL_AssertListener.html"><tt><font color=navy><b>CL_AssertListener</b></font></tt></a>* <tt><font color=blue>listener</font></tt>)</tt>;<br><blockquote> listener - The listener to be removed.</blockquote> <hr size="1" width="70%" align="left" noshade="noshade"><br><br> <hr noshade> <h2>Variable Member Descriptions:</h2> <hr noshade> </body> </html>