1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> 5 <title>File Index</title> 6 <link href="doxygen.css" rel="stylesheet" type="text/css"> 7 </head> 8 <body> 9<!-- Generated by Doxygen 1.7.4 --> 10 <div id="navrow1" class="tabs"> 11 <ul class="tablist"> 12 <li><a href="index.html"><span>Main Page</span></a></li> 13 <li><a href="annotated.html"><span>Data Structures</span></a></li> 14 <li class="current"><a href="files.html"><span>Files</span></a></li> 15 </ul> 16 </div> 17 <div id="navrow2" class="tabs2"> 18 <ul class="tablist"> 19 <li><a href="files.html"><span>File List</span></a></li> 20 <li><a href="globals.html"><span>Globals</span></a></li> 21 </ul> 22 </div> 23</div> 24<div id="side-nav" class="ui-resizable side-nav-resizable"> 25 <div id="nav-tree"> 26 <div id="nav-tree-contents"> 27 </div> 28 </div> 29 <div id="splitbar" style="-moz-user-select:none;" 30 class="ui-resizable-handle"> 31 </div> 32</div> 33<script type="text/javascript"> 34 initNavTree('dmxstat_8h.html',''); 35</script> 36<div id="doc-content"> 37<div class="header"> 38 <div class="summary"> 39<a href="#define-members">Defines</a> | 40<a href="#func-members">Functions</a> | 41<a href="#var-members">Variables</a> </div> 42 <div class="headertitle"> 43<div class="title">dmxstat.h File Reference</div> </div> 44</div> 45<div class="contents"> 46 47<p><a href="dmxstat_8h_source.html">Go to the source code of this file.</a></p> 48<table class="memberdecls"> 49<tr><td colspan="2"><h2><a name="define-members"></a> 50Defines</h2></td></tr> 51<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#ad38ec0be743fab83c032d231034d4d49">DMX_STAT_LENGTH</a>   10</td></tr> 52<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#a4cb43c9c7db58a10d8834a6b95a5c180">DMX_STAT_INTERVAL</a>   1000</td></tr> 53<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#aac0caef45e7427ea05d5425da659ac56">DMX_STAT_BINS</a>   3</td></tr> 54<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#a8757af3ae82fef58d05e31523454065f">DMX_STAT_BIN0</a>   10000</td></tr> 55<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#a9c3e64f7fc0b5305bb6798b298ae6283">DMX_STAT_BINMULT</a>   100</td></tr> 56<tr><td colspan="2"><h2><a name="func-members"></a> 57Functions</h2></td></tr> 58<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#a3d01ce5487317c131c32e31f05489c58">dmxStatActivate</a> (const char *interval, const char *displays)</td></tr> 59<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__DMXStatInfo.html">DMXStatInfo</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#a5637440dfb18ba8ccf47bde3037d93aa">dmxStatAlloc</a> (void)</td></tr> 60<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#a33d0c28b9f5f129f4328a714f1da1db7">dmxStatFree</a> (<a class="el" href="struct__DMXStatInfo.html">DMXStatInfo</a> *)</td></tr> 61<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#a48ed41878576dd3ff9212deaecb2cc1f">dmxStatInit</a> (void)</td></tr> 62<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#a1098a195e40df685aaf2fbc238884027">dmxStatSync</a> (<a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *dmxScreen, struct timeval *stop, struct timeval *start, unsigned long pending)</td></tr> 63<tr><td colspan="2"><h2><a name="var-members"></a> 64Variables</h2></td></tr> 65<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dmxstat_8h.html#abe67369da5135f53f058261d3c173927">dmxStatInterval</a></td></tr> 66</table> 67<hr/><a name="details" id="details"></a><h2>Detailed Description</h2> 68<div class="textblock"><p>Interface for statistic gathering interface. </p> 69<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="dmxstat_8c.html">dmxstat.c</a> </dd></dl> 70</div><hr/><h2>Define Documentation</h2> 71<a class="anchor" id="a8757af3ae82fef58d05e31523454065f"></a><!-- doxytag: member="dmxstat.h::DMX_STAT_BIN0" ref="a8757af3ae82fef58d05e31523454065f" args="" --> 72<div class="memitem"> 73<div class="memproto"> 74 <table class="memname"> 75 <tr> 76 <td class="memname">#define DMX_STAT_BIN0   10000</td> 77 </tr> 78 </table> 79</div> 80<div class="memdoc"> 81<p>us for bin[0] </p> 82 83<p>Referenced by <a class="el" href="dmxstat_8h.html#a1098a195e40df685aaf2fbc238884027">dmxStatSync()</a>.</p> 84 85</div> 86</div> 87<a class="anchor" id="a9c3e64f7fc0b5305bb6798b298ae6283"></a><!-- doxytag: member="dmxstat.h::DMX_STAT_BINMULT" ref="a9c3e64f7fc0b5305bb6798b298ae6283" args="" --> 88<div class="memitem"> 89<div class="memproto"> 90 <table class="memname"> 91 <tr> 92 <td class="memname">#define DMX_STAT_BINMULT   100</td> 93 </tr> 94 </table> 95</div> 96<div class="memdoc"> 97<p>multiplier for next bin[] </p> 98 99<p>Referenced by <a class="el" href="dmxstat_8h.html#a1098a195e40df685aaf2fbc238884027">dmxStatSync()</a>.</p> 100 101</div> 102</div> 103<a class="anchor" id="aac0caef45e7427ea05d5425da659ac56"></a><!-- doxytag: member="dmxstat.h::DMX_STAT_BINS" ref="aac0caef45e7427ea05d5425da659ac56" args="" --> 104<div class="memitem"> 105<div class="memproto"> 106 <table class="memname"> 107 <tr> 108 <td class="memname">#define DMX_STAT_BINS   3</td> 109 </tr> 110 </table> 111</div> 112<div class="memdoc"> 113<p>number of bins </p> 114 115<p>Referenced by <a class="el" href="dmxstat_8c.html#a218b57229dca87bd0564671d8f68f15f">dmxStatCallback()</a>, and <a class="el" href="dmxstat_8h.html#a1098a195e40df685aaf2fbc238884027">dmxStatSync()</a>.</p> 116 117</div> 118</div> 119<a class="anchor" id="a4cb43c9c7db58a10d8834a6b95a5c180"></a><!-- doxytag: member="dmxstat.h::DMX_STAT_INTERVAL" ref="a4cb43c9c7db58a10d8834a6b95a5c180" args="" --> 120<div class="memitem"> 121<div class="memproto"> 122 <table class="memname"> 123 <tr> 124 <td class="memname">#define DMX_STAT_INTERVAL   1000</td> 125 </tr> 126 </table> 127</div> 128<div class="memdoc"> 129<p>msec between printouts </p> 130 131<p>Referenced by <a class="el" href="dmxstat_8c.html#a218b57229dca87bd0564671d8f68f15f">dmxStatCallback()</a>.</p> 132 133</div> 134</div> 135<a class="anchor" id="ad38ec0be743fab83c032d231034d4d49"></a><!-- doxytag: member="dmxstat.h::DMX_STAT_LENGTH" ref="ad38ec0be743fab83c032d231034d4d49" args="" --> 136<div class="memitem"> 137<div class="memproto"> 138 <table class="memname"> 139 <tr> 140 <td class="memname">#define DMX_STAT_LENGTH   10</td> 141 </tr> 142 </table> 143</div> 144<div class="memdoc"> 145<p>number of events for moving average </p> 146 147<p>Referenced by <a class="el" href="dmxstat_8c.html#ab17f1e926473a1df95e781c6c7a8e940">dmxStatValue()</a>.</p> 148 149</div> 150</div> 151<hr/><h2>Function Documentation</h2> 152<a class="anchor" id="a3d01ce5487317c131c32e31f05489c58"></a><!-- doxytag: member="dmxstat.h::dmxStatActivate" ref="a3d01ce5487317c131c32e31f05489c58" args="(const char *interval, const char *displays)" --> 153<div class="memitem"> 154<div class="memproto"> 155 <table class="memname"> 156 <tr> 157 <td class="memname">void dmxStatActivate </td> 158 <td>(</td> 159 <td class="paramtype">const char * </td> 160 <td class="paramname"><em>interval</em>, </td> 161 </tr> 162 <tr> 163 <td class="paramkey"></td> 164 <td></td> 165 <td class="paramtype">const char * </td> 166 <td class="paramname"><em>displays</em> </td> 167 </tr> 168 <tr> 169 <td></td> 170 <td>)</td> 171 <td></td><td></td> 172 </tr> 173 </table> 174</div> 175<div class="memdoc"> 176<p>Turn on XSync statistic gathering and printing. Print every <em>interval</em> seconds, with lines for the first <em>displays</em>. If <em>interval</em> is NULL, 1 will be used. If <em>displays</em> is NULL, 0 will be used (meaning a line for every display will be printed). Note that this function takes string arguments because it will usually be called from <a class="el" href="dmxinit_8c.html#a6ed0a235a6d852bfe0cc0250159a5daf">ddxProcessArgument</a> in <em><a class="el" href="dmxinit_8c.html">dmxinit.c</a></em>. </p> 177 178<p>References <a class="el" href="dmxstat_8c.html#a9994506527c1e7aac2f30d4ed67ea4a5">dmxStatDisplays</a>, and <a class="el" href="dmxstat_8c.html#abe67369da5135f53f058261d3c173927">dmxStatInterval</a>.</p> 179 180<p>Referenced by <a class="el" href="dmxinit_8c.html#a6ed0a235a6d852bfe0cc0250159a5daf">ddxProcessArgument()</a>.</p> 181 182</div> 183</div> 184<a class="anchor" id="a5637440dfb18ba8ccf47bde3037d93aa"></a><!-- doxytag: member="dmxstat.h::dmxStatAlloc" ref="a5637440dfb18ba8ccf47bde3037d93aa" args="(void)" --> 185<div class="memitem"> 186<div class="memproto"> 187 <table class="memname"> 188 <tr> 189 <td class="memname"><a class="el" href="struct__DMXStatInfo.html">DMXStatInfo</a>* dmxStatAlloc </td> 190 <td>(</td> 191 <td class="paramtype">void </td> 192 <td class="paramname"></td><td>)</td> 193 <td></td> 194 </tr> 195 </table> 196</div> 197<div class="memdoc"> 198<p>Allocate a <em>DMXStatInfo</em> structure. </p> 199 200<p>Referenced by <a class="el" href="dmxconfig_8c.html#a5fa6729153f7f7e5d3037d451291fa64">dmxConfigAddDisplay()</a>.</p> 201 202</div> 203</div> 204<a class="anchor" id="a33d0c28b9f5f129f4328a714f1da1db7"></a><!-- doxytag: member="dmxstat.h::dmxStatFree" ref="a33d0c28b9f5f129f4328a714f1da1db7" args="(DMXStatInfo *)" --> 205<div class="memitem"> 206<div class="memproto"> 207 <table class="memname"> 208 <tr> 209 <td class="memname">void dmxStatFree </td> 210 <td>(</td> 211 <td class="paramtype"><a class="el" href="struct__DMXStatInfo.html">DMXStatInfo</a> * </td> 212 <td class="paramname"><em>pt</em></td><td>)</td> 213 <td></td> 214 </tr> 215 </table> 216</div> 217<div class="memdoc"> 218<p>Free the memory used by a <em>DMXStatInfo</em> structure. </p> 219 220<p>Referenced by <a class="el" href="dmxinit_8c.html#a51c195c51f4f09e981384a4215f82321">InitOutput()</a>.</p> 221 222</div> 223</div> 224<a class="anchor" id="a48ed41878576dd3ff9212deaecb2cc1f"></a><!-- doxytag: member="dmxstat.h::dmxStatInit" ref="a48ed41878576dd3ff9212deaecb2cc1f" args="(void)" --> 225<div class="memitem"> 226<div class="memproto"> 227 <table class="memname"> 228 <tr> 229 <td class="memname">void dmxStatInit </td> 230 <td>(</td> 231 <td class="paramtype">void </td> 232 <td class="paramname"></td><td>)</td> 233 <td></td> 234 </tr> 235 </table> 236</div> 237<div class="memdoc"> 238<p>Try to initialize the statistic gathering and printing routines. Initialization only takes place if <a class="el" href="dmxstat_8h.html#a3d01ce5487317c131c32e31f05489c58">dmxStatActivate</a> has already been called. We don't need the same generation protection that we used in dmxSyncInit because our timer is always on a queue -- hence, server generation will always free it. </p> 239 240<p>References <a class="el" href="dmxstat_8c.html#a218b57229dca87bd0564671d8f68f15f">dmxStatCallback()</a>, <a class="el" href="dmxstat_8c.html#abe67369da5135f53f058261d3c173927">dmxStatInterval</a>, and <a class="el" href="dmxstat_8c.html#a4b07a4c989d24e5cad8f85a24d24406c">dmxStatTimer</a>.</p> 241 242<p>Referenced by <a class="el" href="dmxinit_8c.html#a51c195c51f4f09e981384a4215f82321">InitOutput()</a>.</p> 243 244</div> 245</div> 246<a class="anchor" id="a1098a195e40df685aaf2fbc238884027"></a><!-- doxytag: member="dmxstat.h::dmxStatSync" ref="a1098a195e40df685aaf2fbc238884027" args="(DMXScreenInfo *dmxScreen, struct timeval *stop, struct timeval *start, unsigned long pending)" --> 247<div class="memitem"> 248<div class="memproto"> 249 <table class="memname"> 250 <tr> 251 <td class="memname">void dmxStatSync </td> 252 <td>(</td> 253 <td class="paramtype"><a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> * </td> 254 <td class="paramname"><em>dmxScreen</em>, </td> 255 </tr> 256 <tr> 257 <td class="paramkey"></td> 258 <td></td> 259 <td class="paramtype">struct timeval * </td> 260 <td class="paramname"><em>stop</em>, </td> 261 </tr> 262 <tr> 263 <td class="paramkey"></td> 264 <td></td> 265 <td class="paramtype">struct timeval * </td> 266 <td class="paramname"><em>start</em>, </td> 267 </tr> 268 <tr> 269 <td class="paramkey"></td> 270 <td></td> 271 <td class="paramtype">unsigned long </td> 272 <td class="paramname"><em>pending</em> </td> 273 </tr> 274 <tr> 275 <td></td> 276 <td>)</td> 277 <td></td><td></td> 278 </tr> 279 </table> 280</div> 281<div class="memdoc"> 282<p>Note that a XSync() was just done on <em>dmxScreen</em> with the <em>start</em> and <em>stop</em> times (from gettimeofday()) and the number of pending-but-not-yet-processed XSync requests. This routine is called from <a class="el" href="dmxsync_8c.html#a3f47aabdd830525720f7a01acbac91ef">dmxDoSync</a> in <em><a class="el" href="dmxsync_8c.html">dmxsync.c</a></em> </p> 283 284<p>References <a class="el" href="struct__DMXStatInfo.html#a948f8674bc28129ad022a7678d81b38a">_DMXStatInfo::bins</a>, <a class="el" href="dmxstat_8h.html#a8757af3ae82fef58d05e31523454065f">DMX_STAT_BIN0</a>, <a class="el" href="dmxstat_8h.html#a9c3e64f7fc0b5305bb6798b298ae6283">DMX_STAT_BINMULT</a>, <a class="el" href="dmxstat_8h.html#aac0caef45e7427ea05d5425da659ac56">DMX_STAT_BINS</a>, <a class="el" href="dmxstat_8c.html#ab17f1e926473a1df95e781c6c7a8e940">dmxStatValue()</a>, <a class="el" href="struct__DMXStatInfo.html#a316b8214c93a5762b6dbd06a7617ef3c">_DMXStatInfo::pending</a>, <a class="el" href="struct__DMXScreenInfo.html#a31fd04698ffcb2b53ffee82468cc2862">_DMXScreenInfo::stat</a>, <a class="el" href="struct__DMXStatInfo.html#aa08d83f9455dcc98919fbc0085483aea">_DMXStatInfo::syncCount</a>, <a class="el" href="struct__DMXStatInfo.html#a4ed02fb0dd6e7e5ac3af88019331a895">_DMXStatInfo::usec</a>, and <a class="el" href="dmxstat_8c.html#a1a534cc2274afee02c883ac10ea9435f">usec()</a>.</p> 285 286<p>Referenced by <a class="el" href="dmxsync_8c.html#a3f47aabdd830525720f7a01acbac91ef">dmxDoSync()</a>.</p> 287 288</div> 289</div> 290<hr/><h2>Variable Documentation</h2> 291<a class="anchor" id="abe67369da5135f53f058261d3c173927"></a><!-- doxytag: member="dmxstat.h::dmxStatInterval" ref="abe67369da5135f53f058261d3c173927" args="" --> 292<div class="memitem"> 293<div class="memproto"> 294 <table class="memname"> 295 <tr> 296 <td class="memname">int <a class="el" href="dmxstat_8h.html#abe67369da5135f53f058261d3c173927">dmxStatInterval</a></td> 297 </tr> 298 </table> 299</div> 300<div class="memdoc"> 301<p>Only for <a class="el" href="dmxstat_8c.html">dmxstat.c</a> and <a class="el" href="dmxsync_8c.html">dmxsync.c</a> </p> 302 303<p>Referenced by <a class="el" href="dmxsync_8c.html#a3f47aabdd830525720f7a01acbac91ef">dmxDoSync()</a>, <a class="el" href="dmxstat_8h.html#a3d01ce5487317c131c32e31f05489c58">dmxStatActivate()</a>, <a class="el" href="dmxstat_8c.html#a218b57229dca87bd0564671d8f68f15f">dmxStatCallback()</a>, and <a class="el" href="dmxstat_8h.html#a48ed41878576dd3ff9212deaecb2cc1f">dmxStatInit()</a>.</p> 304 305</div> 306</div> 307</div> 308</div> 309 <div id="nav-path" class="navpath"> 310 <ul> 311 <li class="navelem"><a class="el" href="dmxstat_8h.html">dmxstat.h</a> </li> 312 <hr> 313 <address> 314 <small> 315 Generated June 29, 2004 for <a 316 href="http://dmx.sourceforge.net">Distributed Multihead X</a> by 317 <a href="http://www.doxygen.org/index.html">doxygen</a> 318 1.3.4. 319 </small> 320 </addres> 321 </hr> 322 </body> 323</html> 324