clutchlog/docs/clutchlog_8h.html
nojhan e35d118cdb fix(macros) scope leaks
- Fix macro scope leak: included in scope guards.
- Move default options as static class members.
- Adds tests to build_all.sh
- Use vanilla std::filesystem
2022-08-29 09:09:23 +02:00

178 lines
14 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>clutchlog: clutchlog/clutchlog.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">clutchlog
&#160;<span id="projectnumber">0.6.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_c318bd5cf14aaa5601e6029e0b5b4048.html">clutchlog</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">clutchlog.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;ciso646&gt;</code><br />
<code>#include &lt;filesystem&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;sstream&gt;</code><br />
<code>#include &lt;fstream&gt;</code><br />
<code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;cstdlib&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &lt;limits&gt;</code><br />
<code>#include &lt;regex&gt;</code><br />
<code>#include &lt;map&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for clutchlog.h:</div>
<div class="dyncontent">
<div class="center"><img src="clutchlog_8h__incl.png" border="0" usemap="#clutchlog_2clutchlog_8h" alt=""/></div>
<map name="clutchlog_2clutchlog_8h" id="clutchlog_2clutchlog_8h">
<area shape="rect" title=" " alt="" coords="445,5,587,32"/>
<area shape="rect" title=" " alt="" coords="5,80,72,107"/>
<area shape="rect" title=" " alt="" coords="96,80,179,107"/>
<area shape="rect" title=" " alt="" coords="203,80,275,107"/>
<area shape="rect" title=" " alt="" coords="299,80,368,107"/>
<area shape="rect" title=" " alt="" coords="392,80,459,107"/>
<area shape="rect" title=" " alt="" coords="483,80,549,107"/>
<area shape="rect" title=" " alt="" coords="573,80,633,107"/>
<area shape="rect" title=" " alt="" coords="657,80,711,107"/>
<area shape="rect" title=" " alt="" coords="736,80,789,107"/>
<area shape="rect" title=" " alt="" coords="814,80,869,107"/>
<area shape="rect" title=" " alt="" coords="893,80,939,107"/>
</map>
</div>
</div>
<p><a href="clutchlog_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html">clutchlog</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Color and style formatter for ANSI terminal escape sequences. <a href="classclutchlog_1_1fmt.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structclutchlog_1_1scope__t.html">clutchlog::scope_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure holding a location matching. <a href="structclutchlog_1_1scope__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a6bbcf13504687db4dbe0474931d867fb"><td class="memItemLeft" align="right" valign="top"><a id="a6bbcf13504687db4dbe0474931d867fb"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CLUTCHLOG_HAVE_UNIX_SYSINFO</b>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a6bbcf13504687db4dbe0474931d867fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c126962abcc7a40e504a6fc3abdfcc4"><td class="memItemLeft" align="right" valign="top"><a id="a5c126962abcc7a40e504a6fc3abdfcc4"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clutchlog_8h.html#a5c126962abcc7a40e504a6fc3abdfcc4">WITH_CLUTCHLOG</a></td></tr>
<tr class="memdesc:a5c126962abcc7a40e504a6fc3abdfcc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Actually enable clutchlog features. <br /></td></tr>
<tr class="separator:a5c126962abcc7a40e504a6fc3abdfcc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8564be479b948ee3052b61783c66d415"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DefaultConfigMacros.html#ga8564be479b948ee3052b61783c66d415">CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG</a>&#160;&#160;&#160;clutchlog::level::progress</td></tr>
<tr class="memdesc:ga8564be479b948ee3052b61783c66d415"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default level over which calls to the logger are optimized out when NDEBUG is defined. <br /></td></tr>
<tr class="separator:ga8564be479b948ee3052b61783c66d415"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8911119d726a43b77f5781cb5a72813"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gae8911119d726a43b77f5781cb5a72813">CLUTCHLOC</a>&#160;&#160;&#160;__FILE__, __FUNCTION__, __LINE__</td></tr>
<tr class="memdesc:gae8911119d726a43b77f5781cb5a72813"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handy shortcuts to location. <br /></td></tr>
<tr class="separator:gae8911119d726a43b77f5781cb5a72813"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6f86187e2b35e7e1907d688f504a197d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga6f86187e2b35e7e1907d688f504a197d">CLUTCHLOG</a>(LEVEL, WHAT)</td></tr>
<tr class="memdesc:ga6f86187e2b35e7e1907d688f504a197d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Log a message at the given level. <a href="group__UseMacros.html#ga6f86187e2b35e7e1907d688f504a197d">More...</a><br /></td></tr>
<tr class="separator:ga6f86187e2b35e7e1907d688f504a197d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga572e3aa19d8b39e3ed0b9e91961104c2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga572e3aa19d8b39e3ed0b9e91961104c2">CLUTCHDUMP</a>(LEVEL, CONTAINER, FILENAME)</td></tr>
<tr class="memdesc:ga572e3aa19d8b39e3ed0b9e91961104c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump the given container. <a href="group__UseMacros.html#ga572e3aa19d8b39e3ed0b9e91961104c2">More...</a><br /></td></tr>
<tr class="separator:ga572e3aa19d8b39e3ed0b9e91961104c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f77cee4f853e582262930c9c17f90ae"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga9f77cee4f853e582262930c9c17f90ae">CLUTCHFUNC</a>(LEVEL, FUNC, ...)</td></tr>
<tr class="memdesc:ga9f77cee4f853e582262930c9c17f90ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call any function if the scope matches. <a href="group__UseMacros.html#ga9f77cee4f853e582262930c9c17f90ae">More...</a><br /></td></tr>
<tr class="separator:ga9f77cee4f853e582262930c9c17f90ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf2e85e1153e6c88b458dd49e3c37c73"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gaaf2e85e1153e6c88b458dd49e3c37c73">CLUTCHCODE</a>(LEVEL, ...)</td></tr>
<tr class="memdesc:gaaf2e85e1153e6c88b458dd49e3c37c73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run any code if the scope matches. <a href="group__UseMacros.html#gaaf2e85e1153e6c88b458dd49e3c37c73">More...</a><br /></td></tr>
<tr class="separator:gaaf2e85e1153e6c88b458dd49e3c37c73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga524c16f280d92ee8ab683162c9ce01fa"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga524c16f280d92ee8ab683162c9ce01fa">CLUTCHLOG_DEFAULT_FORMAT</a>&#160;&#160;&#160;&quot;{level_letter} {msg}\t\t\t\t\t{func} @ {file}:{line}\n&quot;</td></tr>
<tr class="memdesc:ga524c16f280d92ee8ab683162c9ce01fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default format of the messages. <br /></td></tr>
<tr class="separator:ga524c16f280d92ee8ab683162c9ce01fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga27b613c6727857a7cbcd0165d862034e"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga27b613c6727857a7cbcd0165d862034e">CLUTCHDUMP_DEFAULT_FORMAT</a>&#160;&#160;&#160;&quot;# {level} in {func} @ {file}:{line}&quot;</td></tr>
<tr class="memdesc:ga27b613c6727857a7cbcd0165d862034e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default format of the comment line in file dump. <br /></td></tr>
<tr class="separator:ga27b613c6727857a7cbcd0165d862034e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga54d29e956575e1c731eab5406135c5df"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga54d29e956575e1c731eab5406135c5df">CLUTCHDUMP_DEFAULT_SEP</a>&#160;&#160;&#160;&quot;\n&quot;</td></tr>
<tr class="memdesc:ga54d29e956575e1c731eab5406135c5df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default item separator for dump. <br /></td></tr>
<tr class="separator:ga54d29e956575e1c731eab5406135c5df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga45c4c964fad4ad1641d5c9c28c4645b9"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga45c4c964fad4ad1641d5c9c28c4645b9">CLUTCHLOG_DEFAULT_DEPTH_MARK</a>&#160;&#160;&#160;&quot;&gt;&quot;</td></tr>
<tr class="memdesc:ga45c4c964fad4ad1641d5c9c28c4645b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default mark for stack depth. <br /></td></tr>
<tr class="separator:ga45c4c964fad4ad1641d5c9c28c4645b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga98f30d814d4913a8a7c93a8793f49adf"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga98f30d814d4913a8a7c93a8793f49adf">CLUTCHLOG_STRIP_CALLS</a>&#160;&#160;&#160;5</td></tr>
<tr class="memdesc:ga98f30d814d4913a8a7c93a8793f49adf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of call stack levels to remove from depth display by default. <br /></td></tr>
<tr class="separator:ga98f30d814d4913a8a7c93a8793f49adf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>