docs/api-2.1/logging_8h_source.html

Mon, 08 Aug 2022 17:12:00 +0200

author
Mike Becker <universe@uap-core.de>
date
Mon, 08 Aug 2022 17:12:00 +0200
changeset 572
f0f99dd06d9f
parent 390
d345541018fa
permissions
-rw-r--r--

#201 - remove dangerous allocator config

There is no plausible use case, except using the testing
allocator in the test case, and having the possibility to
specify any allocator (including another mempool) causes
more harm than good.

<!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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ucx: /home/mike/workspace/c/ucx/src/ucx/logging.h Source File</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="projectlogo"><img alt="Logo" src="uaplogo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">ucx
   </div>
   <div id="projectbrief">UAP Common Extensions</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</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_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_69f4ea29401808fe6229564976cde3ce.html">ucx</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">logging.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="logging_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Copyright 2017 Mike Becker, Olaf Wintermann All rights reserved.</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are met:</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *   1. Redistributions of source code must retain the above copyright</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *      notice, this list of conditions and the following disclaimer.</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *   2. Redistributions in binary form must reproduce the above copyright</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *      notice, this list of conditions and the following disclaimer in the</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *      documentation and/or other materials provided with the distribution.</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * POSSIBILITY OF SUCH DAMAGE.</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef UCX_LOGGING_H</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#define UCX_LOGGING_H</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ucx_8h.html">ucx.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="map_8h.html">map.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="string_8h.html">string.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment">/* leave enough space for custom log levels */</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="logging_8h.html#aa254c07fe3a907613e2256a318d5c9a8">   49</a></span>&#160;<span class="preprocessor">#define UCX_LOGGER_ERROR        0x00</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="logging_8h.html#abd01ca11486226ba34e8f7028d9fffba">   52</a></span>&#160;<span class="preprocessor">#define UCX_LOGGER_WARN         0x10</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="logging_8h.html#a4b0178bf60a6129373ffc59114ca4c9b">   55</a></span>&#160;<span class="preprocessor">#define UCX_LOGGER_INFO         0x20</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="logging_8h.html#acff01d1ef919ea997cfce755fc1b83d8">   58</a></span>&#160;<span class="preprocessor">#define UCX_LOGGER_DEBUG        0x30</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="logging_8h.html#a55b88d1fec7036d841b3ddd6195c5586">   61</a></span>&#160;<span class="preprocessor">#define UCX_LOGGER_TRACE        0x40</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="logging_8h.html#aee18bc20e58ffb69910121512c350839">   68</a></span>&#160;<span class="preprocessor">#define UCX_LOGGER_LEVEL        0x01</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="logging_8h.html#a38607008268b4f776ee500fb95d2e823">   75</a></span>&#160;<span class="preprocessor">#define UCX_LOGGER_TIMESTAMP    0x02</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="logging_8h.html#a0e0d72b12616c1e49ff8834eaf4cb8a2">   83</a></span>&#160;<span class="preprocessor">#define UCX_LOGGER_SOURCE       0x04</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structUcxLogger.html">   88</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structUcxLogger.html#a33fddf4791e8d49e479ecc78bf5d1b9e">   90</a></span>&#160;    <span class="keywordtype">void</span> *<a class="code" href="structUcxLogger.html#a33fddf4791e8d49e479ecc78bf5d1b9e">stream</a>;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="structUcxLogger.html#ada13bba090a9dc4f8d6cd9be73c60930">   97</a></span>&#160;    <a class="code" href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed">write_func</a> <a class="code" href="structUcxLogger.html#ada13bba090a9dc4f8d6cd9be73c60930">writer</a>;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="structUcxLogger.html#a086f75df0f6c81ec491f25c0a4d9262b">  104</a></span>&#160;    <span class="keywordtype">char</span> *<a class="code" href="structUcxLogger.html#a086f75df0f6c81ec491f25c0a4d9262b">dateformat</a>;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="structUcxLogger.html#a2e0ee94c25b2307096c7970280d189cd">  111</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structUcxLogger.html#a2e0ee94c25b2307096c7970280d189cd">level</a>;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="structUcxLogger.html#a1de0db2e02dcf03366268f6943f8b97c">  119</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structUcxLogger.html#a1de0db2e02dcf03366268f6943f8b97c">mask</a>;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="structUcxLogger.html#a187129f7bc6e5064b3d92a5f1217f396">  132</a></span>&#160;    <a class="code" href="structUcxMap.html">UcxMap</a>* <a class="code" href="structUcxLogger.html#a187129f7bc6e5064b3d92a5f1217f396">levels</a>;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;} <a class="code" href="structUcxLogger.html">UcxLogger</a>;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<a class="code" href="structUcxLogger.html">UcxLogger</a> *<a class="code" href="logging_8h.html#ac560f8517d2172794c9d2691735ec48c">ucx_logger_new</a>(<span class="keywordtype">void</span> *stream, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> level, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mask);</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<span class="keywordtype">void</span> <a class="code" href="logging_8h.html#ac4697b784e01ec990d2acea192e21658">ucx_logger_free</a>(<a class="code" href="structUcxLogger.html">UcxLogger</a>* logger);</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="keywordtype">void</span> <a class="code" href="logging_8h.html#ac337e5d02ebea565012d4c11bd643801">ucx_logger_logf</a>(<a class="code" href="structUcxLogger.html">UcxLogger</a> *logger, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> level, <span class="keyword">const</span> <span class="keywordtype">char</span>* file,</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> line, <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="logging_8h.html#a5cffc19502c4c90bfb3bd3bbcd18170a">  185</a></span>&#160;<span class="preprocessor">#define ucx_logger_register_level(logger, level, name) {\</span></div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="preprocessor">        unsigned int l; \</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="preprocessor">            l = level; \</span></div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor">            ucx_map_int_put(logger-&gt;levels, l, (void*) &quot;[&quot; name &quot;]&quot;); \</span></div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="preprocessor">        } while (0);</span></div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="logging_8h.html#aa0245325031d95799b28def177fd14ec">  198</a></span>&#160;<span class="preprocessor">#define ucx_logger_log(logger, level, ...) \</span></div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="preprocessor">    ucx_logger_logf(logger, level, __FILE__, __LINE__, __VA_ARGS__)</span></div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="logging_8h.html#a6a9e472e14d6768e59d96d245e065397">  207</a></span>&#160;<span class="preprocessor">#define ucx_logger_error(logger, ...) \</span></div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="preprocessor">    ucx_logger_log(logger, UCX_LOGGER_ERROR, __VA_ARGS__)</span></div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="logging_8h.html#a98464d8d51376ce2716dcc4eca00d5da">  216</a></span>&#160;<span class="preprocessor">#define ucx_logger_info(logger, ...) \</span></div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;<span class="preprocessor">    ucx_logger_log(logger, UCX_LOGGER_INFO, __VA_ARGS__)</span></div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="logging_8h.html#aca7bd861b646892813fd7310c0aa69af">  225</a></span>&#160;<span class="preprocessor">#define ucx_logger_warn(logger, ...) \</span></div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="preprocessor">    ucx_logger_log(logger, UCX_LOGGER_WARN, __VA_ARGS__)</span></div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="logging_8h.html#a2936402799892db5138e5f1f8c25db0c">  234</a></span>&#160;<span class="preprocessor">#define ucx_logger_debug(logger, ...) \</span></div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="preprocessor">    ucx_logger_log(logger, UCX_LOGGER_DEBUG, __VA_ARGS__)</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="logging_8h.html#a3031b7ff13f4cfae9c2916543be2877c">  243</a></span>&#160;<span class="preprocessor">#define ucx_logger_trace(logger, ...) \</span></div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="preprocessor">    ucx_logger_log(logger, UCX_LOGGER_TRACE, __VA_ARGS__)</span></div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;}</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* UCX_LOGGING_H */</span><span class="preprocessor"></span></div><div class="ttc" id="structUcxLogger_html_ada13bba090a9dc4f8d6cd9be73c60930"><div class="ttname"><a href="structUcxLogger.html#ada13bba090a9dc4f8d6cd9be73c60930">UcxLogger::writer</a></div><div class="ttdeci">write_func writer</div><div class="ttdoc">The write function that shall be used. </div><div class="ttdef"><b>Definition:</b> logging.h:97</div></div>
<div class="ttc" id="string_8h_html"><div class="ttname"><a href="string_8h.html">string.h</a></div><div class="ttdoc">Bounded string implementation. </div></div>
<div class="ttc" id="ucx_8h_html"><div class="ttname"><a href="ucx_8h.html">ucx.h</a></div><div class="ttdoc">Main UCX Header providing most common definitions. </div></div>
<div class="ttc" id="structUcxLogger_html"><div class="ttname"><a href="structUcxLogger.html">UcxLogger</a></div><div class="ttdoc">The UCX Logger object. </div><div class="ttdef"><b>Definition:</b> logging.h:88</div></div>
<div class="ttc" id="structUcxLogger_html_a086f75df0f6c81ec491f25c0a4d9262b"><div class="ttname"><a href="structUcxLogger.html#a086f75df0f6c81ec491f25c0a4d9262b">UcxLogger::dateformat</a></div><div class="ttdeci">char * dateformat</div><div class="ttdoc">The date format for timestamp outputs including the delimiter (default: &quot;%F %T %z &quot;)...</div><div class="ttdef"><b>Definition:</b> logging.h:104</div></div>
<div class="ttc" id="structUcxLogger_html_a1de0db2e02dcf03366268f6943f8b97c"><div class="ttname"><a href="structUcxLogger.html#a1de0db2e02dcf03366268f6943f8b97c">UcxLogger::mask</a></div><div class="ttdeci">unsigned int mask</div><div class="ttdoc">A configuration mask for automatic output. </div><div class="ttdef"><b>Definition:</b> logging.h:119</div></div>
<div class="ttc" id="logging_8h_html_ac560f8517d2172794c9d2691735ec48c"><div class="ttname"><a href="logging_8h.html#ac560f8517d2172794c9d2691735ec48c">ucx_logger_new</a></div><div class="ttdeci">UcxLogger * ucx_logger_new(void *stream, unsigned int level, unsigned int mask)</div><div class="ttdoc">Creates a new logger. </div><div class="ttdef"><b>Definition:</b> logging.c:36</div></div>
<div class="ttc" id="structUcxLogger_html_a33fddf4791e8d49e479ecc78bf5d1b9e"><div class="ttname"><a href="structUcxLogger.html#a33fddf4791e8d49e479ecc78bf5d1b9e">UcxLogger::stream</a></div><div class="ttdeci">void * stream</div><div class="ttdoc">The stream this logger writes its messages to. </div><div class="ttdef"><b>Definition:</b> logging.h:90</div></div>
<div class="ttc" id="structUcxMap_html"><div class="ttname"><a href="structUcxMap.html">UcxMap</a></div><div class="ttdoc">Structure for the UCX map. </div><div class="ttdef"><b>Definition:</b> map.h:81</div></div>
<div class="ttc" id="map_8h_html"><div class="ttname"><a href="map_8h.html">map.h</a></div><div class="ttdoc">Hash map implementation. </div></div>
<div class="ttc" id="ucx_8h_html_a989b3f0fa4d307d278378fde435641ed"><div class="ttname"><a href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed">write_func</a></div><div class="ttdeci">size_t(* write_func)(const void *, size_t, size_t, void *)</div><div class="ttdoc">Function pointer to a write function. </div><div class="ttdef"><b>Definition:</b> ucx.h:119</div></div>
<div class="ttc" id="structUcxLogger_html_a187129f7bc6e5064b3d92a5f1217f396"><div class="ttname"><a href="structUcxLogger.html#a187129f7bc6e5064b3d92a5f1217f396">UcxLogger::levels</a></div><div class="ttdeci">UcxMap * levels</div><div class="ttdoc">A map of valid log levels for this logger. </div><div class="ttdef"><b>Definition:</b> logging.h:132</div></div>
<div class="ttc" id="structUcxLogger_html_a2e0ee94c25b2307096c7970280d189cd"><div class="ttname"><a href="structUcxLogger.html#a2e0ee94c25b2307096c7970280d189cd">UcxLogger::level</a></div><div class="ttdeci">unsigned int level</div><div class="ttdoc">The level, this logger operates on. </div><div class="ttdef"><b>Definition:</b> logging.h:111</div></div>
<div class="ttc" id="logging_8h_html_ac337e5d02ebea565012d4c11bd643801"><div class="ttname"><a href="logging_8h.html#ac337e5d02ebea565012d4c11bd643801">ucx_logger_logf</a></div><div class="ttdeci">void ucx_logger_logf(UcxLogger *logger, unsigned int level, const char *file, const unsigned int line, const char *format,...)</div><div class="ttdoc">Internal log function - use macros instead. </div><div class="ttdef"><b>Definition:</b> logging.c:70</div></div>
<div class="ttc" id="logging_8h_html_ac4697b784e01ec990d2acea192e21658"><div class="ttname"><a href="logging_8h.html#ac4697b784e01ec990d2acea192e21658">ucx_logger_free</a></div><div class="ttdeci">void ucx_logger_free(UcxLogger *logger)</div><div class="ttdoc">Destroys the logger. </div><div class="ttdef"><b>Definition:</b> logging.c:62</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Dec 19 2019 19:58:24 for ucx by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

mercurial