Files
pip/doc/html/class_p_i_diagnostics.html
Пелипенко Иван c11bc3b3b8 version 0.5.0_alpha
git-svn-id: svn://db.shs.com.ru/pip@8 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
2015-03-10 10:13:18 +00:00

458 lines
68 KiB
HTML

<!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.9.1"/>
<title>PIP: PIDiagnostics Class 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</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 style="padding-left: 0.5em;">
<div id="projectname">PIP
&#160;<span id="projectnumber">0.5.0_prealpha</span>
</div>
<div id="projectbrief">Platform-Independent Primitives</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('class_p_i_diagnostics.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="class_p_i_diagnostics-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">PIDiagnostics Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Connection quality diagnostics.
<a href="class_p_i_diagnostics.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for PIDiagnostics:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_p_i_diagnostics__inherit__graph.svg" width="138" height="187"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:aabf8f59b49ab62435e220106f204712f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#aabf8f59b49ab62435e220106f204712f">Quality</a> { <br />
&#160;&#160;<a class="el" href="class_p_i_diagnostics.html#aabf8f59b49ab62435e220106f204712fab50c35309ba981ccc60aa55f4b391976">Unknown</a> = 1,
<a class="el" href="class_p_i_diagnostics.html#aabf8f59b49ab62435e220106f204712fa7851c3092d436b72bc66b752f73b1d80">Failure</a> = 2,
<a class="el" href="class_p_i_diagnostics.html#aabf8f59b49ab62435e220106f204712fac8268eaf57232ad3cf9b2a91ead6748b">Bad</a> = 3,
<a class="el" href="class_p_i_diagnostics.html#aabf8f59b49ab62435e220106f204712fa72a5c3ff8a8ae3e43f818db82d730b55">Average</a> = 4,
<br />
&#160;&#160;<a class="el" href="class_p_i_diagnostics.html#aabf8f59b49ab62435e220106f204712fa65f12843d70ab8f9bc9f711e2776c169">Good</a> = 5
<br />
}</td></tr>
<tr class="memdesc:aabf8f59b49ab62435e220106f204712f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connection quality. <a href="class_p_i_diagnostics.html#aabf8f59b49ab62435e220106f204712f">More...</a><br /></td></tr>
<tr class="separator:aabf8f59b49ab62435e220106f204712f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a0ecb4332d5583be9a0c626c6ad8fc92a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0ecb4332d5583be9a0c626c6ad8fc92a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a0ecb4332d5583be9a0c626c6ad8fc92a">PIDiagnostics</a> (bool start_=true)</td></tr>
<tr class="memdesc:a0ecb4332d5583be9a0c626c6ad8fc92a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an empty diagnostics and if "strat_" start it. <br /></td></tr>
<tr class="separator:a0ecb4332d5583be9a0c626c6ad8fc92a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58a112660b5a7545c6bb0bb1bf621822"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a58a112660b5a7545c6bb0bb1bf621822"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a58a112660b5a7545c6bb0bb1bf621822">disconnectTimeout</a> () const </td></tr>
<tr class="memdesc:a58a112660b5a7545c6bb0bb1bf621822"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns period of full disconnect in seconds and period of averaging frequency. <br /></td></tr>
<tr class="separator:a58a112660b5a7545c6bb0bb1bf621822"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54f87c6f4fc670cbc5c15129bebb3394"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a54f87c6f4fc670cbc5c15129bebb3394"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a54f87c6f4fc670cbc5c15129bebb3394">setDisconnectTimeout</a> (float s)</td></tr>
<tr class="memdesc:a54f87c6f4fc670cbc5c15129bebb3394"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns period of full disconnect in seconds and period of averaging frequency. <br /></td></tr>
<tr class="separator:a54f87c6f4fc670cbc5c15129bebb3394"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc88d4112178d144a4e2bf116809a586"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afc88d4112178d144a4e2bf116809a586"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#afc88d4112178d144a4e2bf116809a586">immediateFrequency</a> () const </td></tr>
<tr class="memdesc:afc88d4112178d144a4e2bf116809a586"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns immediate receive frequency, packets/s. <br /></td></tr>
<tr class="separator:afc88d4112178d144a4e2bf116809a586"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2bca72346e1440af8e9a225bfd2ad72"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af2bca72346e1440af8e9a225bfd2ad72"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#af2bca72346e1440af8e9a225bfd2ad72">integralFrequency</a> () const </td></tr>
<tr class="memdesc:af2bca72346e1440af8e9a225bfd2ad72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns integral receive frequency for <em><a class="el" href="class_p_i_diagnostics.html#a58a112660b5a7545c6bb0bb1bf621822" title="Returns period of full disconnect in seconds and period of averaging frequency. ">disconnectTimeout()</a></em> seconds, packets/s. <br /></td></tr>
<tr class="separator:af2bca72346e1440af8e9a225bfd2ad72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81fa49a759f97f23b0e13992c2decd11"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a81fa49a759f97f23b0e13992c2decd11"></a>
ullong&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a81fa49a759f97f23b0e13992c2decd11">receiveCountPerSec</a> () const </td></tr>
<tr class="memdesc:a81fa49a759f97f23b0e13992c2decd11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns correct received packets per second. <br /></td></tr>
<tr class="separator:a81fa49a759f97f23b0e13992c2decd11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42f008c143eb3aeaa34350b41b471bd9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a42f008c143eb3aeaa34350b41b471bd9"></a>
ullong&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a42f008c143eb3aeaa34350b41b471bd9">sendCountPerSec</a> () const </td></tr>
<tr class="memdesc:a42f008c143eb3aeaa34350b41b471bd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns sended packets per second. <br /></td></tr>
<tr class="separator:a42f008c143eb3aeaa34350b41b471bd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a412a3c850f35ae690bf2ee212bace700"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a412a3c850f35ae690bf2ee212bace700"></a>
ullong&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a412a3c850f35ae690bf2ee212bace700">receiveBytesPerSec</a> () const </td></tr>
<tr class="memdesc:a412a3c850f35ae690bf2ee212bace700"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns correct received bytes per second. <br /></td></tr>
<tr class="separator:a412a3c850f35ae690bf2ee212bace700"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad24cb17710950995f1be0cf48c150a5e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad24cb17710950995f1be0cf48c150a5e"></a>
ullong&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#ad24cb17710950995f1be0cf48c150a5e">sendBytesPerSec</a> () const </td></tr>
<tr class="memdesc:ad24cb17710950995f1be0cf48c150a5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns sended bytes per second. <br /></td></tr>
<tr class="separator:ad24cb17710950995f1be0cf48c150a5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a894cb3cd2ec9a395ee217fe0573bfa74"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a894cb3cd2ec9a395ee217fe0573bfa74"></a>
ullong&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a894cb3cd2ec9a395ee217fe0573bfa74">receiveCount</a> () const </td></tr>
<tr class="memdesc:a894cb3cd2ec9a395ee217fe0573bfa74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns overall correct received packets count. <br /></td></tr>
<tr class="separator:a894cb3cd2ec9a395ee217fe0573bfa74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92a18a79947e0322f67d74c045c71682"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a92a18a79947e0322f67d74c045c71682"></a>
ullong&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a92a18a79947e0322f67d74c045c71682">wrongCount</a> () const </td></tr>
<tr class="memdesc:a92a18a79947e0322f67d74c045c71682"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns overall wrong received packets count. <br /></td></tr>
<tr class="separator:a92a18a79947e0322f67d74c045c71682"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a896f8406b97fb4eee8fa5fbcd0f4cb18"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a896f8406b97fb4eee8fa5fbcd0f4cb18"></a>
ullong&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a896f8406b97fb4eee8fa5fbcd0f4cb18">sendCount</a> () const </td></tr>
<tr class="memdesc:a896f8406b97fb4eee8fa5fbcd0f4cb18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns overall sended packets count. <br /></td></tr>
<tr class="separator:a896f8406b97fb4eee8fa5fbcd0f4cb18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4b373f4d0dfaad6e25cf1d376b2d754"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab4b373f4d0dfaad6e25cf1d376b2d754"></a>
<a class="el" href="class_p_i_diagnostics.html#aabf8f59b49ab62435e220106f204712f">PIDiagnostics::Quality</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#ab4b373f4d0dfaad6e25cf1d376b2d754">quality</a> () const </td></tr>
<tr class="memdesc:ab4b373f4d0dfaad6e25cf1d376b2d754"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns connection quality. <br /></td></tr>
<tr class="separator:ab4b373f4d0dfaad6e25cf1d376b2d754"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01bf2ddc5c60e8156c8c78b49978810d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01bf2ddc5c60e8156c8c78b49978810d"></a>
<a class="el" href="class_p_i_string.html">PIString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a01bf2ddc5c60e8156c8c78b49978810d">receiveSpeed</a> () const </td></tr>
<tr class="memdesc:a01bf2ddc5c60e8156c8c78b49978810d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns receive speed in format "n {B|kB|MB|GB|TB}/s". <br /></td></tr>
<tr class="separator:a01bf2ddc5c60e8156c8c78b49978810d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fa858dfeda458616b1f5ecbab3baead"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8fa858dfeda458616b1f5ecbab3baead"></a>
<a class="el" href="class_p_i_string.html">PIString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a8fa858dfeda458616b1f5ecbab3baead">sendSpeed</a> () const </td></tr>
<tr class="memdesc:a8fa858dfeda458616b1f5ecbab3baead"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns send speed in format "n {B|kB|MB|GB|TB}/s". <br /></td></tr>
<tr class="separator:a8fa858dfeda458616b1f5ecbab3baead"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae84c320f15128154968da64a185534f6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae84c320f15128154968da64a185534f6"></a>
const float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#ae84c320f15128154968da64a185534f6">immediateFrequency_ptr</a> () const </td></tr>
<tr class="memdesc:ae84c320f15128154968da64a185534f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns immediate receive frequency pointer, packets/s. Useful for output to <a class="el" href="class_p_i_console.html" title="Console output class. ">PIConsole</a>. <br /></td></tr>
<tr class="separator:ae84c320f15128154968da64a185534f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb226efc57b90723c6acd5f07f0e8a1c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb226efc57b90723c6acd5f07f0e8a1c"></a>
const float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#acb226efc57b90723c6acd5f07f0e8a1c">integralFrequency_ptr</a> () const </td></tr>
<tr class="memdesc:acb226efc57b90723c6acd5f07f0e8a1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns integral receive frequency pointer for period, packets/s. Useful for output to <a class="el" href="class_p_i_console.html" title="Console output class. ">PIConsole</a>. <br /></td></tr>
<tr class="separator:acb226efc57b90723c6acd5f07f0e8a1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a364f03141facee8162a66de048005807"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a364f03141facee8162a66de048005807"></a>
const ullong *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a364f03141facee8162a66de048005807">receiveCountPerSec_ptr</a> () const </td></tr>
<tr class="memdesc:a364f03141facee8162a66de048005807"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns correct received packets per second pointer. Useful for output to <a class="el" href="class_p_i_console.html" title="Console output class. ">PIConsole</a>. <br /></td></tr>
<tr class="separator:a364f03141facee8162a66de048005807"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34f3d9d9b0560da37f4e3258a2408c6c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a34f3d9d9b0560da37f4e3258a2408c6c"></a>
const ullong *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a34f3d9d9b0560da37f4e3258a2408c6c">sendCountPerSec_ptr</a> () const </td></tr>
<tr class="memdesc:a34f3d9d9b0560da37f4e3258a2408c6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns sended packets per second pointer. Useful for output to <a class="el" href="class_p_i_console.html" title="Console output class. ">PIConsole</a>. <br /></td></tr>
<tr class="separator:a34f3d9d9b0560da37f4e3258a2408c6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3dae97db20de5a1a82559eaf872004ea"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3dae97db20de5a1a82559eaf872004ea"></a>
const ullong *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a3dae97db20de5a1a82559eaf872004ea">receiveBytesPerSec_ptr</a> () const </td></tr>
<tr class="memdesc:a3dae97db20de5a1a82559eaf872004ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns correct received bytes per second pointer. Useful for output to <a class="el" href="class_p_i_console.html" title="Console output class. ">PIConsole</a>. <br /></td></tr>
<tr class="separator:a3dae97db20de5a1a82559eaf872004ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5565c0c6c31f39144ce80c4a68dad08d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5565c0c6c31f39144ce80c4a68dad08d"></a>
const ullong *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a5565c0c6c31f39144ce80c4a68dad08d">sendBytesPerSec_ptr</a> () const </td></tr>
<tr class="memdesc:a5565c0c6c31f39144ce80c4a68dad08d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns sended bytes per second pointer. Useful for output to <a class="el" href="class_p_i_console.html" title="Console output class. ">PIConsole</a>. <br /></td></tr>
<tr class="separator:a5565c0c6c31f39144ce80c4a68dad08d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe4a920694b84936c0fa7d07b14d1dd7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afe4a920694b84936c0fa7d07b14d1dd7"></a>
const ullong *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#afe4a920694b84936c0fa7d07b14d1dd7">receiveCount_ptr</a> () const </td></tr>
<tr class="memdesc:afe4a920694b84936c0fa7d07b14d1dd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns overall correct received packets count pointer. Useful for output to <a class="el" href="class_p_i_console.html" title="Console output class. ">PIConsole</a>. <br /></td></tr>
<tr class="separator:afe4a920694b84936c0fa7d07b14d1dd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbacd5ebed2dabee1c44f5c2cd8ce48d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adbacd5ebed2dabee1c44f5c2cd8ce48d"></a>
const ullong *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#adbacd5ebed2dabee1c44f5c2cd8ce48d">wrongCount_ptr</a> () const </td></tr>
<tr class="memdesc:adbacd5ebed2dabee1c44f5c2cd8ce48d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns overall wrong received packets count pointer. Useful for output to <a class="el" href="class_p_i_console.html" title="Console output class. ">PIConsole</a>. <br /></td></tr>
<tr class="separator:adbacd5ebed2dabee1c44f5c2cd8ce48d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c331ad75d8802175b73c2e0f84e2368"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6c331ad75d8802175b73c2e0f84e2368"></a>
const ullong *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a6c331ad75d8802175b73c2e0f84e2368">sendCount_ptr</a> () const </td></tr>
<tr class="memdesc:a6c331ad75d8802175b73c2e0f84e2368"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns overall sended packets count pointer. Useful for output to <a class="el" href="class_p_i_console.html" title="Console output class. ">PIConsole</a>. <br /></td></tr>
<tr class="separator:a6c331ad75d8802175b73c2e0f84e2368"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ce10a350d75352320212784193db4fb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ce10a350d75352320212784193db4fb"></a>
const int *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a4ce10a350d75352320212784193db4fb">quality_ptr</a> () const </td></tr>
<tr class="memdesc:a4ce10a350d75352320212784193db4fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns connection quality pointer. Useful for output to <a class="el" href="class_p_i_console.html" title="Console output class. ">PIConsole</a>. <br /></td></tr>
<tr class="separator:a4ce10a350d75352320212784193db4fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7a24231b0008a27405a92f8f7094277"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa7a24231b0008a27405a92f8f7094277"></a>
const <a class="el" href="class_p_i_string.html">PIString</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#aa7a24231b0008a27405a92f8f7094277">receiveSpeed_ptr</a> () const </td></tr>
<tr class="memdesc:aa7a24231b0008a27405a92f8f7094277"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns receive speed pointer in format "n {B|kB|MB|GB|TB}/s". Useful for output to <a class="el" href="class_p_i_console.html" title="Console output class. ">PIConsole</a>. <br /></td></tr>
<tr class="separator:aa7a24231b0008a27405a92f8f7094277"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36ac4c15726cab43cb1a46ddfd1fc87c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36ac4c15726cab43cb1a46ddfd1fc87c"></a>
const <a class="el" href="class_p_i_string.html">PIString</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a36ac4c15726cab43cb1a46ddfd1fc87c">sendSpeed_ptr</a> () const </td></tr>
<tr class="memdesc:a36ac4c15726cab43cb1a46ddfd1fc87c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns send speed pointer in format "n {B|kB|MB|GB|TB}/s". Useful for output to <a class="el" href="class_p_i_console.html" title="Console output class. ">PIConsole</a>. <br /></td></tr>
<tr class="separator:a36ac4c15726cab43cb1a46ddfd1fc87c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Handlers</h2></td></tr>
<tr class="memitem:a1773afb624fe79976ad9385705f24d02"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1773afb624fe79976ad9385705f24d02"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a1773afb624fe79976ad9385705f24d02">start</a> (double msecs)</td></tr>
<tr class="memdesc:a1773afb624fe79976ad9385705f24d02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start diagnostics evaluations with period "msecs" milliseconds. <br /></td></tr>
<tr class="separator:a1773afb624fe79976ad9385705f24d02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0771a5343fcebfe427876adddae14c34"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0771a5343fcebfe427876adddae14c34"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a0771a5343fcebfe427876adddae14c34">reset</a> ()</td></tr>
<tr class="memdesc:a0771a5343fcebfe427876adddae14c34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset diagnostics counters. <br /></td></tr>
<tr class="separator:a0771a5343fcebfe427876adddae14c34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cedccc3d6d8dba5238ee3a0f42a74c6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0cedccc3d6d8dba5238ee3a0f42a74c6"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a0cedccc3d6d8dba5238ee3a0f42a74c6">received</a> (int size, bool correct)</td></tr>
<tr class="memdesc:a0cedccc3d6d8dba5238ee3a0f42a74c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notify diagnostics about "correct" corected received packet. <br /></td></tr>
<tr class="separator:a0cedccc3d6d8dba5238ee3a0f42a74c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40db151966a7c48357df5e19de20116f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a40db151966a7c48357df5e19de20116f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a40db151966a7c48357df5e19de20116f">sended</a> (int size)</td></tr>
<tr class="memdesc:a40db151966a7c48357df5e19de20116f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notify diagnostics about sended packet. <br /></td></tr>
<tr class="separator:a40db151966a7c48357df5e19de20116f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Events</h2></td></tr>
<tr class="memitem:a6e0a2d483282afab237e4b1ab9f0b4a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6e0a2d483282afab237e4b1ab9f0b4a4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_diagnostics.html#a6e0a2d483282afab237e4b1ab9f0b4a4">qualityChanged</a> (<a class="el" href="class_p_i_diagnostics.html#aabf8f59b49ab62435e220106f204712f">PIDiagnostics::Quality</a> new_quality, <a class="el" href="class_p_i_diagnostics.html#aabf8f59b49ab62435e220106f204712f">PIDiagnostics::Quality</a> old_quality)</td></tr>
<tr class="memdesc:a6e0a2d483282afab237e4b1ab9f0b4a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Raise on change receive quality from "old_quality" to "new_quality". <br /></td></tr>
<tr class="separator:a6e0a2d483282afab237e4b1ab9f0b4a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header related_class_p_i_object"><td colspan="2" onclick="javascript:toggleInherit('related_class_p_i_object')"><img src="closed.png" alt="-"/>&#160;Related Functions inherited from <a class="el" href="class_p_i_object.html">PIObject</a></td></tr>
<tr class="memitem:a722b67a967e55918f6921de66ecffce9 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a722b67a967e55918f6921de66ecffce9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a722b67a967e55918f6921de66ecffce9">piCoutObj</a></td></tr>
<tr class="memdesc:a722b67a967e55918f6921de66ecffce9 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro used for conditional (piDebug and <a class="el" href="class_p_i_object.html#a286d39fdf2dacf8bc1f26c8744d8bf18" title="Return if debug of this object is active. ">PIObject::debug()</a>) output to <a class="el" href="class_p_i_cout.html" title="Class for formatted output similar std::cout. ">PICout</a> for subclasses of <a class="el" href="class_p_i_object.html" title="This is base class for any classes which use events -> handlers mechanism. ">PIObject</a>. <br /></td></tr>
<tr class="separator:a722b67a967e55918f6921de66ecffce9 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affa62b02040517a34b3f173d804e487f inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="affa62b02040517a34b3f173d804e487f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#affa62b02040517a34b3f173d804e487f">PIOBJECT</a>(<a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>)</td></tr>
<tr class="memdesc:affa62b02040517a34b3f173d804e487f inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">you should use this macro after class declaration to use EVENT and EVENT_HANDLER and correct piCoutObj output <br /></td></tr>
<tr class="separator:affa62b02040517a34b3f173d804e487f inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cd6444e57a0f7f25888c8b8293d3543 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8cd6444e57a0f7f25888c8b8293d3543"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a8cd6444e57a0f7f25888c8b8293d3543">PIOBJECT_SUBCLASS</a>(<a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>, parent)</td></tr>
<tr class="memdesc:a8cd6444e57a0f7f25888c8b8293d3543 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">you should use this macro after class declaration to use EVENT and EVENT_HANDLER of parent class <br /></td></tr>
<tr class="separator:a8cd6444e57a0f7f25888c8b8293d3543 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab605cf0454d34cc72c65bfed2abd696a inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab605cf0454d34cc72c65bfed2abd696a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#ab605cf0454d34cc72c65bfed2abd696a">EVENT_HANDLER0</a>(ret, <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>)&#160;&#160;&#160;ret <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>()</td></tr>
<tr class="memdesc:ab605cf0454d34cc72c65bfed2abd696a inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">declare event handler "event" with name "name" and return type "ret", ret <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338" title="Returns object name. ">name()</a> <br /></td></tr>
<tr class="separator:ab605cf0454d34cc72c65bfed2abd696a inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56defa004e9b7efb2db50b3a43ca7225 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a56defa004e9b7efb2db50b3a43ca7225"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a56defa004e9b7efb2db50b3a43ca7225">EVENT_HANDLER1</a>(ret, <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>, type0, var0)&#160;&#160;&#160;ret <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>(type0 var0)</td></tr>
<tr class="memdesc:a56defa004e9b7efb2db50b3a43ca7225 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">declare event handler "event" with name "name" and return type "ret", ret name(type0 var0) <br /></td></tr>
<tr class="separator:a56defa004e9b7efb2db50b3a43ca7225 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb64b696544ee4ee8715add9747c1293 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abb64b696544ee4ee8715add9747c1293"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#abb64b696544ee4ee8715add9747c1293">EVENT_HANDLER2</a>(ret, <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>, type0, var0, type1, var1)&#160;&#160;&#160;ret <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>(type0 var0, type1 var1)</td></tr>
<tr class="memdesc:abb64b696544ee4ee8715add9747c1293 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">declare event handler "event" with name "name" and return type "ret", ret name(type0 var0, type1 var1) <br /></td></tr>
<tr class="separator:abb64b696544ee4ee8715add9747c1293 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af90eced49fbdb43f5fc631fa7e7a44fb inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af90eced49fbdb43f5fc631fa7e7a44fb"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#af90eced49fbdb43f5fc631fa7e7a44fb">EVENT_HANDLER3</a>(ret, <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>, type0, var0, type1, var1, type2, var2)&#160;&#160;&#160;ret <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>(type0 var0, type1 var1, type2 var2)</td></tr>
<tr class="memdesc:af90eced49fbdb43f5fc631fa7e7a44fb inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">declare event handler "event" with name "name" and return type "ret", ret name(type0 var0, type1 var1, type2 var2) <br /></td></tr>
<tr class="separator:af90eced49fbdb43f5fc631fa7e7a44fb inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8a8499ba07a4cc16c0b15c51b197d9f inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae8a8499ba07a4cc16c0b15c51b197d9f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#ae8a8499ba07a4cc16c0b15c51b197d9f">EVENT_HANDLER4</a>(ret, <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>, type0, var0, type1, var1, type2, var2, type3, var3)&#160;&#160;&#160;ret <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>(type0 var0, type1 var1, type2 var2, type3 var3)</td></tr>
<tr class="memdesc:ae8a8499ba07a4cc16c0b15c51b197d9f inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">declare event handler "event" with name "name" and return type "ret", ret name(type0 var0, type1 var1, type2 var2, type3 var3) <br /></td></tr>
<tr class="separator:ae8a8499ba07a4cc16c0b15c51b197d9f inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae92ae8e64fbb4c6fa7d87cc1e93d55c0 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae92ae8e64fbb4c6fa7d87cc1e93d55c0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#ae92ae8e64fbb4c6fa7d87cc1e93d55c0">EVENT_HANDLER</a>&#160;&#160;&#160;<a class="el" href="class_p_i_object.html#ab605cf0454d34cc72c65bfed2abd696a">EVENT_HANDLER0</a></td></tr>
<tr class="memdesc:ae92ae8e64fbb4c6fa7d87cc1e93d55c0 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">EVENT_HANDLER is synonym of EVENT_HANDLER0. <br /></td></tr>
<tr class="separator:ae92ae8e64fbb4c6fa7d87cc1e93d55c0 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a338377c8ec10707dd26a168b8aef5c31 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a338377c8ec10707dd26a168b8aef5c31"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a338377c8ec10707dd26a168b8aef5c31">EVENT_VHANDLER0</a>(ret, <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>)&#160;&#160;&#160;virtual ret <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>()</td></tr>
<tr class="memdesc:a338377c8ec10707dd26a168b8aef5c31 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">declare virtual event handler "event" with name "name" and return type "ret", virtual ret <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338" title="Returns object name. ">name()</a> <br /></td></tr>
<tr class="separator:a338377c8ec10707dd26a168b8aef5c31 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf138848427466a7ae91ada5876f926d inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf138848427466a7ae91ada5876f926d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#abf138848427466a7ae91ada5876f926d">EVENT_VHANDLER1</a>(ret, <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>, type0, var0)&#160;&#160;&#160;virtual ret <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>(type0 var0)</td></tr>
<tr class="memdesc:abf138848427466a7ae91ada5876f926d inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0) <br /></td></tr>
<tr class="separator:abf138848427466a7ae91ada5876f926d inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0ba4a14c77b8d968dc13918f9b2d384 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad0ba4a14c77b8d968dc13918f9b2d384"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#ad0ba4a14c77b8d968dc13918f9b2d384">EVENT_VHANDLER2</a>(ret, <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>, type0, var0, type1, var1)&#160;&#160;&#160;virtual ret <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>(type0 var0, type1 var1)</td></tr>
<tr class="memdesc:ad0ba4a14c77b8d968dc13918f9b2d384 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0, type1 var1) <br /></td></tr>
<tr class="separator:ad0ba4a14c77b8d968dc13918f9b2d384 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f47b429ac594cebdca1567e1b9a1021 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f47b429ac594cebdca1567e1b9a1021"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a4f47b429ac594cebdca1567e1b9a1021">EVENT_VHANDLER3</a>(ret, <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>, type0, var0, type1, var1, type2, var2)&#160;&#160;&#160;virtual ret <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>(type0 var0, type1 var1, type2 var2)</td></tr>
<tr class="memdesc:a4f47b429ac594cebdca1567e1b9a1021 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0, type1 var1, type2 var2) <br /></td></tr>
<tr class="separator:a4f47b429ac594cebdca1567e1b9a1021 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96b2461314db11f3b68942bcd4b9d13d inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a96b2461314db11f3b68942bcd4b9d13d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a96b2461314db11f3b68942bcd4b9d13d">EVENT_VHANDLER4</a>(ret, <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>, type0, var0, type1, var1, type2, var2, type3, var3)&#160;&#160;&#160;virtual ret <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>(type0 var0, type1 var1, type2 var2, type3 var3)</td></tr>
<tr class="memdesc:a96b2461314db11f3b68942bcd4b9d13d inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3) <br /></td></tr>
<tr class="separator:a96b2461314db11f3b68942bcd4b9d13d inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26a0e3181ebb2a90c11e9a7eb906a99e inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a26a0e3181ebb2a90c11e9a7eb906a99e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a26a0e3181ebb2a90c11e9a7eb906a99e">EVENT_VHANDLER</a>&#160;&#160;&#160;<a class="el" href="class_p_i_object.html#a338377c8ec10707dd26a168b8aef5c31">EVENT_VHANDLER0</a></td></tr>
<tr class="memdesc:a26a0e3181ebb2a90c11e9a7eb906a99e inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">EVENT_VHANDLER is synonym of EVENT_VHANDLER0. <br /></td></tr>
<tr class="separator:a26a0e3181ebb2a90c11e9a7eb906a99e inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4fa760299649bc8aeaa0dcf4d605be70 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4fa760299649bc8aeaa0dcf4d605be70"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a4fa760299649bc8aeaa0dcf4d605be70">EVENT0</a>(<a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>)&#160;&#160;&#160;void <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>();</td></tr>
<tr class="memdesc:a4fa760299649bc8aeaa0dcf4d605be70 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">declare event "event" with name "name", void <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338" title="Returns object name. ">name()</a>; <br /></td></tr>
<tr class="separator:a4fa760299649bc8aeaa0dcf4d605be70 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7083e0b630c70def2ce05d60d70a45b9 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7083e0b630c70def2ce05d60d70a45b9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a7083e0b630c70def2ce05d60d70a45b9">EVENT1</a>(<a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>, type0, var0)&#160;&#160;&#160;void <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>(type0 var0);</td></tr>
<tr class="memdesc:a7083e0b630c70def2ce05d60d70a45b9 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">declare event "event" with name "name", void name(type0 var0); <br /></td></tr>
<tr class="separator:a7083e0b630c70def2ce05d60d70a45b9 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91d380b7235ad11b4830c4c2e8860618 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a91d380b7235ad11b4830c4c2e8860618"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a91d380b7235ad11b4830c4c2e8860618">EVENT2</a>(<a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>, type0, var0, type1, var1)&#160;&#160;&#160;void <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>(type0 var0, type1 var1);</td></tr>
<tr class="memdesc:a91d380b7235ad11b4830c4c2e8860618 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">declare event "event" with name "name", void name(type0 var0, type1 var1); <br /></td></tr>
<tr class="separator:a91d380b7235ad11b4830c4c2e8860618 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a685a85b0791e73158dc0173b4e18dd00 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a685a85b0791e73158dc0173b4e18dd00"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a685a85b0791e73158dc0173b4e18dd00">EVENT3</a>(<a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>, type0, var0, type1, var1, type2, var2)&#160;&#160;&#160;void <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>(type0 var0, type1 var1, type2 var2);</td></tr>
<tr class="memdesc:a685a85b0791e73158dc0173b4e18dd00 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">declare event "event" with name "name", void name(type0 var0, type1 var1, type2 var2); <br /></td></tr>
<tr class="separator:a685a85b0791e73158dc0173b4e18dd00 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59032ae5e0b94cdfb52be1f24d5e8252 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59032ae5e0b94cdfb52be1f24d5e8252"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a59032ae5e0b94cdfb52be1f24d5e8252">EVENT4</a>(<a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>, type0, var0, type1, var1, type2, var2, type3, var3)&#160;&#160;&#160;void <a class="el" href="class_p_i_object.html#aee2242a0210f2a009d63764e01a37338">name</a>(type0 var0, type1 var1, type2 var2, type3 var3);</td></tr>
<tr class="memdesc:a59032ae5e0b94cdfb52be1f24d5e8252 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">declare event "event" with name "name", void name(type0 var0, type1 var1, type2 var2, type3 var3); <br /></td></tr>
<tr class="separator:a59032ae5e0b94cdfb52be1f24d5e8252 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7877e997621e1161f058fce90febd464 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7877e997621e1161f058fce90febd464"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a7877e997621e1161f058fce90febd464">EVENT</a>&#160;&#160;&#160;<a class="el" href="class_p_i_object.html#a4fa760299649bc8aeaa0dcf4d605be70">EVENT0</a></td></tr>
<tr class="memdesc:a7877e997621e1161f058fce90febd464 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">EVENT is synonym of EVENT0. <br /></td></tr>
<tr class="separator:a7877e997621e1161f058fce90febd464 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac86f9567fcbe10d7e49685e0a01b8427 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac86f9567fcbe10d7e49685e0a01b8427"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#ac86f9567fcbe10d7e49685e0a01b8427">CONNECTU</a>(src, event, dest, handler)</td></tr>
<tr class="memdesc:ac86f9567fcbe10d7e49685e0a01b8427 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">connect event "event" from object "src" to event handler "handler". "Event" and "handler" must has equal argument lists. <br /></td></tr>
<tr class="separator:ac86f9567fcbe10d7e49685e0a01b8427 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38e74a7ce99df00a10517f5ce4aa66c5 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a38e74a7ce99df00a10517f5ce4aa66c5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a38e74a7ce99df00a10517f5ce4aa66c5">CONNECT0</a>(ret, src, event, dest, handler)</td></tr>
<tr class="memdesc:a38e74a7ce99df00a10517f5ce4aa66c5 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists <br /></td></tr>
<tr class="separator:a38e74a7ce99df00a10517f5ce4aa66c5 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36132851189bb01db4957595111a28db inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36132851189bb01db4957595111a28db"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a36132851189bb01db4957595111a28db">CONNECT1</a>(ret, type0, src, event, dest, handler)</td></tr>
<tr class="memdesc:a36132851189bb01db4957595111a28db inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists <br /></td></tr>
<tr class="separator:a36132851189bb01db4957595111a28db inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a850bbf4e8361a106c99da4c46f684247 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a850bbf4e8361a106c99da4c46f684247"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a850bbf4e8361a106c99da4c46f684247">CONNECT2</a>(ret, type0, type1, src, event, dest, handler)</td></tr>
<tr class="memdesc:a850bbf4e8361a106c99da4c46f684247 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists <br /></td></tr>
<tr class="separator:a850bbf4e8361a106c99da4c46f684247 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab45dbd69bde3cde22d4aba27ed585407 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab45dbd69bde3cde22d4aba27ed585407"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#ab45dbd69bde3cde22d4aba27ed585407">CONNECT3</a>(ret, type0, type1, type2, src, event, dest, handler)</td></tr>
<tr class="memdesc:ab45dbd69bde3cde22d4aba27ed585407 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists <br /></td></tr>
<tr class="separator:ab45dbd69bde3cde22d4aba27ed585407 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34e41d730c07354e07333def3d854019 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a34e41d730c07354e07333def3d854019"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a34e41d730c07354e07333def3d854019">CONNECT4</a>(ret, type0, type1, type2, type3, src, event, dest, handler)</td></tr>
<tr class="memdesc:a34e41d730c07354e07333def3d854019 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists <br /></td></tr>
<tr class="separator:a34e41d730c07354e07333def3d854019 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65528c74adc6691eac2c7a2f39328064 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65528c74adc6691eac2c7a2f39328064"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a65528c74adc6691eac2c7a2f39328064">CONNECT</a>&#160;&#160;&#160;<a class="el" href="class_p_i_object.html#a38e74a7ce99df00a10517f5ce4aa66c5">CONNECT0</a></td></tr>
<tr class="memdesc:a65528c74adc6691eac2c7a2f39328064 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">CONNECT is synonym of CONNECT0. <br /></td></tr>
<tr class="separator:a65528c74adc6691eac2c7a2f39328064 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaaba5b68617a43903056bc175b8cd162 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaaba5b68617a43903056bc175b8cd162"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#aaaba5b68617a43903056bc175b8cd162">WEAK_CONNECT0</a>(ret, src, event, dest, handler)</td></tr>
<tr class="memdesc:aaaba5b68617a43903056bc175b8cd162 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists <br /></td></tr>
<tr class="separator:aaaba5b68617a43903056bc175b8cd162 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37d80492e781bf82b9c22c56977da81e inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a37d80492e781bf82b9c22c56977da81e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a37d80492e781bf82b9c22c56977da81e">WEAK_CONNECT1</a>(ret, type0, src, event, dest, handler)</td></tr>
<tr class="memdesc:a37d80492e781bf82b9c22c56977da81e inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists <br /></td></tr>
<tr class="separator:a37d80492e781bf82b9c22c56977da81e inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34134cc70172ef5a8d38ba8eb0db327d inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a34134cc70172ef5a8d38ba8eb0db327d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a34134cc70172ef5a8d38ba8eb0db327d">WEAK_CONNECT2</a>(ret, type0, type1, src, event, dest, handler)</td></tr>
<tr class="memdesc:a34134cc70172ef5a8d38ba8eb0db327d inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists <br /></td></tr>
<tr class="separator:a34134cc70172ef5a8d38ba8eb0db327d inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a601eb7e6e4c3c1a2ba741abbaf271fed inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a601eb7e6e4c3c1a2ba741abbaf271fed"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a601eb7e6e4c3c1a2ba741abbaf271fed">WEAK_CONNECT3</a>(ret, type0, type1, type2, src, event, dest, handler)</td></tr>
<tr class="memdesc:a601eb7e6e4c3c1a2ba741abbaf271fed inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists <br /></td></tr>
<tr class="separator:a601eb7e6e4c3c1a2ba741abbaf271fed inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a483ad0828f2c221308d95fd07ba1ee6e inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a483ad0828f2c221308d95fd07ba1ee6e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a483ad0828f2c221308d95fd07ba1ee6e">WEAK_CONNECT4</a>(ret, type0, type1, type2, type3, src, event, dest, handler)</td></tr>
<tr class="memdesc:a483ad0828f2c221308d95fd07ba1ee6e inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists <br /></td></tr>
<tr class="separator:a483ad0828f2c221308d95fd07ba1ee6e inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52fc22658e025b4c15c8a2454d81b289 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a52fc22658e025b4c15c8a2454d81b289"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a52fc22658e025b4c15c8a2454d81b289">WEAK_CONNECT</a>&#160;&#160;&#160;<a class="el" href="class_p_i_object.html#aaaba5b68617a43903056bc175b8cd162">WEAK_CONNECT0</a></td></tr>
<tr class="memdesc:a52fc22658e025b4c15c8a2454d81b289 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">WEAK_CONNECT is synonym of WEAK_CONNECT0. <br /></td></tr>
<tr class="separator:a52fc22658e025b4c15c8a2454d81b289 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed7fd8edaccbbca33c51417ca43ac32a inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aed7fd8edaccbbca33c51417ca43ac32a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#aed7fd8edaccbbca33c51417ca43ac32a">DISCONNECT0</a>(ret, src, event, dest, handler)</td></tr>
<tr class="memdesc:aed7fd8edaccbbca33c51417ca43ac32a inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" <br /></td></tr>
<tr class="separator:aed7fd8edaccbbca33c51417ca43ac32a inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae030e8deb226c636d2df22076391f12c inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae030e8deb226c636d2df22076391f12c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#ae030e8deb226c636d2df22076391f12c">DISCONNECT1</a>(ret, type0, src, event, dest, handler)</td></tr>
<tr class="memdesc:ae030e8deb226c636d2df22076391f12c inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" <br /></td></tr>
<tr class="separator:ae030e8deb226c636d2df22076391f12c inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f0609bfd7dfcd4512d76480bc114dab inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8f0609bfd7dfcd4512d76480bc114dab"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a8f0609bfd7dfcd4512d76480bc114dab">DISCONNECT2</a>(ret, type0, type1, src, event, dest, handler)</td></tr>
<tr class="memdesc:a8f0609bfd7dfcd4512d76480bc114dab inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" <br /></td></tr>
<tr class="separator:a8f0609bfd7dfcd4512d76480bc114dab inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2789f99d1916f231fc579f00370fa6f inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af2789f99d1916f231fc579f00370fa6f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#af2789f99d1916f231fc579f00370fa6f">DISCONNECT3</a>(ret, type0, type1, type2, src, event, dest, handler)</td></tr>
<tr class="memdesc:af2789f99d1916f231fc579f00370fa6f inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" <br /></td></tr>
<tr class="separator:af2789f99d1916f231fc579f00370fa6f inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedf429d3192da764163c1377cad310e3 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aedf429d3192da764163c1377cad310e3"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#aedf429d3192da764163c1377cad310e3">DISCONNECT4</a>(ret, type0, type1, type2, type3, src, event, dest, handler)</td></tr>
<tr class="memdesc:aedf429d3192da764163c1377cad310e3 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" <br /></td></tr>
<tr class="separator:aedf429d3192da764163c1377cad310e3 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a587604e6f3570c0fc32794384d4d0d1f inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a587604e6f3570c0fc32794384d4d0d1f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a587604e6f3570c0fc32794384d4d0d1f">DISCONNECT</a>&#160;&#160;&#160;<a class="el" href="class_p_i_object.html#aed7fd8edaccbbca33c51417ca43ac32a">DISCONNECT0</a></td></tr>
<tr class="memdesc:a587604e6f3570c0fc32794384d4d0d1f inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">DISCONNECT is synonym of DISCONNECT0. <br /></td></tr>
<tr class="separator:a587604e6f3570c0fc32794384d4d0d1f inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f7b0da6b28ced23e1deee48dde17c98 inherit related_class_p_i_object"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f7b0da6b28ced23e1deee48dde17c98"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_i_object.html#a3f7b0da6b28ced23e1deee48dde17c98">HANDLER</a>(handler)</td></tr>
<tr class="memdesc:a3f7b0da6b28ced23e1deee48dde17c98 inherit related_class_p_i_object"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns pointer to events handler "handler". <br /></td></tr>
<tr class="separator:a3f7b0da6b28ced23e1deee48dde17c98 inherit related_class_p_i_object"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Connection quality diagnostics. </p>
<h1><a class="anchor" id="PIDiagnostics_sec0"></a>
Synopsis</h1>
<p>This class provide abstract connection quality diagnostics and counting. You should create instance of PIDiagnostics and on packet receive call function <em>received()</em>, on packet send call function <em><a class="el" href="class_p_i_diagnostics.html#a40db151966a7c48357df5e19de20116f" title="Notify diagnostics about sended packet. ">sended()</a></em>. PIDiagnostics calculates correct, wrong and sended counters, packets per second, bytes per seconds, immediate and integral receive frequencies and receive/send speeds in human readable representation. There statistics are calculates one time per period, by default 1 second. To calculate them you should start PIDiagnostics with function <em>start()</em> or pass <b>true</b> to constructor. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a class="anchor" id="aabf8f59b49ab62435e220106f204712f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="class_p_i_diagnostics.html#aabf8f59b49ab62435e220106f204712f">PIDiagnostics::Quality</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Connection quality. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="aabf8f59b49ab62435e220106f204712fab50c35309ba981ccc60aa55f4b391976"></a>Unknown&#160;</td><td class="fielddoc">
<p>Unknown, no one packet received yet </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="aabf8f59b49ab62435e220106f204712fa7851c3092d436b72bc66b752f73b1d80"></a>Failure&#160;</td><td class="fielddoc">
<p>No connection, no one correct packet received for last period </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="aabf8f59b49ab62435e220106f204712fac8268eaf57232ad3cf9b2a91ead6748b"></a>Bad&#160;</td><td class="fielddoc">
<p>Bad connection, correct packets received &lt;= 20% </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="aabf8f59b49ab62435e220106f204712fa72a5c3ff8a8ae3e43f818db82d730b55"></a>Average&#160;</td><td class="fielddoc">
<p>Average connection, correct packets received &gt; 20% and &lt;= 80% </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="aabf8f59b49ab62435e220106f204712fa65f12843d70ab8f9bc9f711e2776c169"></a>Good&#160;</td><td class="fielddoc">
<p>Good connection, correct packets received &gt; 80% </p>
</td></tr>
</table>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_p_i_diagnostics.html">PIDiagnostics</a></li>
<li class="footer">Generated on Fri Feb 27 2015 23:03:16 for PIP by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
</div>
</body>
</html>