PIP 0.5.0_alpha Platform-Independent Primitives

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | List of all members
PIDiagnostics Class Reference

Connection quality diagnostics. More...

Inheritance diagram for PIDiagnostics:
[legend]

## Public Types
enum | Quality { Unknown = 1, Failure = 2, Bad = 3, Average = 4, Good = 5 }
| Connection quality. More...

## Public Member Functions
| PIDiagnostics (bool start_=true)
| Constructs an empty diagnostics and if "strat_" start it.
float | disconnectTimeout () const
| Returns period of full disconnect in seconds and period of averaging frequency.
void | setDisconnectTimeout (float s)
| Returns period of full disconnect in seconds and period of averaging frequency.
float | immediateFrequency () const
| Returns immediate receive frequency, packets/s.
float | integralFrequency () const
| Returns integral receive frequency for disconnectTimeout() seconds, packets/s.
ullong | receiveCountPerSec () const
| Returns correct received packets per second.
ullong | sendCountPerSec () const
| Returns sended packets per second.
ullong | receiveBytesPerSec () const
| Returns correct received bytes per second.
ullong | sendBytesPerSec () const
| Returns sended bytes per second.
ullong | receiveCount () const
| Returns overall correct received packets count.
ullong | wrongCount () const
| Returns overall wrong received packets count.
ullong | sendCount () const
| Returns overall sended packets count.
PIDiagnostics::Quality | quality () const
| Returns connection quality.
PIString | receiveSpeed () const
| Returns receive speed in format "n {B|kB|MB|GB|TB}/s".
PIString | sendSpeed () const
| Returns send speed in format "n {B|kB|MB|GB|TB}/s".
const float * | immediateFrequency_ptr () const
| Returns immediate receive frequency pointer, packets/s. Useful for output to PIConsole.
const float * | integralFrequency_ptr () const
| Returns integral receive frequency pointer for period, packets/s. Useful for output to PIConsole.
const ullong * | receiveCountPerSec_ptr () const
| Returns correct received packets per second pointer. Useful for output to PIConsole.
const ullong * | sendCountPerSec_ptr () const
| Returns sended packets per second pointer. Useful for output to PIConsole.
const ullong * | receiveBytesPerSec_ptr () const
| Returns correct received bytes per second pointer. Useful for output to PIConsole.
const ullong * | sendBytesPerSec_ptr () const
| Returns sended bytes per second pointer. Useful for output to PIConsole.
const ullong * | receiveCount_ptr () const
| Returns overall correct received packets count pointer. Useful for output to PIConsole.
const ullong * | wrongCount_ptr () const
| Returns overall wrong received packets count pointer. Useful for output to PIConsole.
const ullong * | sendCount_ptr () const
| Returns overall sended packets count pointer. Useful for output to PIConsole.
const int * | quality_ptr () const
| Returns connection quality pointer. Useful for output to PIConsole.
const PIString * | receiveSpeed_ptr () const
| Returns receive speed pointer in format "n {B|kB|MB|GB|TB}/s". Useful for output to PIConsole.
const PIString * | sendSpeed_ptr () const
| Returns send speed pointer in format "n {B|kB|MB|GB|TB}/s". Useful for output to PIConsole.

## Handlers
void | start (double msecs)
| Start diagnostics evaluations with period "msecs" milliseconds.
void | reset ()
| Reset diagnostics counters.
void | received (int size, bool correct)
| Notify diagnostics about "correct" corected received packet.
void | sended (int size)
| Notify diagnostics about sended packet.

## Events
void | qualityChanged (PIDiagnostics::Quality new_quality, PIDiagnostics::Quality old_quality)
| Raise on change receive quality from "old_quality" to "new_quality".

## Additional Inherited Members
Related Functions inherited from PIObject
#define | piCoutObj
| Macro used for conditional (piDebug and PIObject::debug()) output to PICout for subclasses of PIObject.
#define | PIOBJECT(name)
| you should use this macro after class declaration to use EVENT and EVENT_HANDLER and correct piCoutObj output
#define | PIOBJECT_SUBCLASS(name, parent)
| you should use this macro after class declaration to use EVENT and EVENT_HANDLER of parent class
#define | EVENT_HANDLER0(ret, name) ret name()
| declare event handler "event" with name "name" and return type "ret", ret name()
#define | EVENT_HANDLER1(ret, name, type0, var0) ret name(type0 var0)
| declare event handler "event" with name "name" and return type "ret", ret name(type0 var0)
#define | EVENT_HANDLER2(ret, name, type0, var0, type1, var1) ret name(type0 var0, type1 var1)
| declare event handler "event" with name "name" and return type "ret", ret name(type0 var0, type1 var1)
#define | EVENT_HANDLER3(ret, name, type0, var0, type1, var1, type2, var2) ret name(type0 var0, type1 var1, type2 var2)
| declare event handler "event" with name "name" and return type "ret", ret name(type0 var0, type1 var1, type2 var2)
#define | EVENT_HANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) ret name(type0 var0, type1 var1, type2 var2, type3 var3)
| declare event handler "event" with name "name" and return type "ret", ret name(type0 var0, type1 var1, type2 var2, type3 var3)
#define | EVENT_HANDLER EVENT_HANDLER0
| EVENT_HANDLER is synonym of EVENT_HANDLER0.
#define | EVENT_VHANDLER0(ret, name) virtual ret name()
| declare virtual event handler "event" with name "name" and return type "ret", virtual ret name()
#define | EVENT_VHANDLER1(ret, name, type0, var0) virtual ret name(type0 var0)
| declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0)
#define | EVENT_VHANDLER2(ret, name, type0, var0, type1, var1) virtual ret name(type0 var0, type1 var1)
| declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0, type1 var1)
#define | EVENT_VHANDLER3(ret, name, type0, var0, type1, var1, type2, var2) virtual ret name(type0 var0, type1 var1, type2 var2)
| declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0, type1 var1, type2 var2)
#define | EVENT_VHANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3)
| declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3)
#define | EVENT_VHANDLER EVENT_VHANDLER0
| EVENT_VHANDLER is synonym of EVENT_VHANDLER0.
#define | EVENT0(name) void name();
| declare event "event" with name "name", void name();
#define | EVENT1(name, type0, var0) void name(type0 var0);
| declare event "event" with name "name", void name(type0 var0);
#define | EVENT2(name, type0, var0, type1, var1) void name(type0 var0, type1 var1);
| declare event "event" with name "name", void name(type0 var0, type1 var1);
#define | EVENT3(name, type0, var0, type1, var1, type2, var2) void name(type0 var0, type1 var1, type2 var2);
| declare event "event" with name "name", void name(type0 var0, type1 var1, type2 var2);
#define | EVENT4(name, type0, var0, type1, var1, type2, var2, type3, var3) void name(type0 var0, type1 var1, type2 var2, type3 var3);
| declare event "event" with name "name", void name(type0 var0, type1 var1, type2 var2, type3 var3);
#define | EVENT EVENT0
| EVENT is synonym of EVENT0.
#define | CONNECTU(src, event, dest, handler)
| connect event "event" from object "src" to event handler "handler". "Event" and "handler" must has equal argument lists.
#define | CONNECT0(ret, src, event, dest, handler)
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists
#define | CONNECT1(ret, type0, src, event, dest, handler)
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists
#define | CONNECT2(ret, type0, type1, src, event, dest, handler)
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists
#define | CONNECT3(ret, type0, type1, type2, src, event, dest, handler)
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists
#define | CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler)
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists
#define | CONNECT CONNECT0
| CONNECT is synonym of CONNECT0.
#define | WEAK_CONNECT0(ret, src, event, dest, handler)
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists
#define | WEAK_CONNECT1(ret, type0, src, event, dest, handler)
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists
#define | WEAK_CONNECT2(ret, type0, type1, src, event, dest, handler)
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists
#define | WEAK_CONNECT3(ret, type0, type1, type2, src, event, dest, handler)
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists
#define | WEAK_CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler)
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists
#define | WEAK_CONNECT WEAK_CONNECT0
| WEAK_CONNECT is synonym of WEAK_CONNECT0.
#define | DISCONNECT0(ret, src, event, dest, handler)
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest"
#define | DISCONNECT1(ret, type0, src, event, dest, handler)
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest"
#define | DISCONNECT2(ret, type0, type1, src, event, dest, handler)
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest"
#define | DISCONNECT3(ret, type0, type1, type2, src, event, dest, handler)
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest"
#define | DISCONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler)
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest"
#define | DISCONNECT DISCONNECT0
| DISCONNECT is synonym of DISCONNECT0.
#define | HANDLER(handler)
| Returns pointer to events handler "handler".

## Detailed Description

Connection quality diagnostics.

# Synopsis

This class provide abstract connection quality diagnostics and counting. You should create instance of PIDiagnostics and on packet receive call function received(), on packet send call function sended(). 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 start() or pass true to constructor.

## Member Enumeration Documentation

enum PIDiagnostics::Quality

Connection quality.

Enumerator
Unknown | Unknown, no one packet received yet
Failure | No connection, no one correct packet received for last period
Bad | Bad connection, correct packets received <= 20%
Average | Average connection, correct packets received > 20% and <= 80%
Good | Good connection, correct packets received > 80%