![]() |
PIP 5.5.3
Platform-Independent Primitives
|
Connection quality diagnostics. More...

Classes | |
| struct | State |
| Information about current diagnostics state. More... | |
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 "start_" start it. | |
| PIDiagnostics::State | state () const |
| Returns current state. | |
| PISystemTime | disconnectTimeout () const |
| Returns period of full disconnect in seconds and period of averaging frequency. | |
| void | setDisconnectTimeout (float s) DEPRECATEDM("use setDisconnectTimeout(PISystemTime)") |
| Returns period of full disconnect in seconds and period of averaging frequency. | |
| void | setDisconnectTimeout (PISystemTime tm) |
| Returns period of full disconnect and period of averaging frequency. | |
| 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". | |
Public Member Functions inherited from PITimer | |
| PITimer () | |
| Constructs timer. | |
| PITimer (std::function< void(int)> func) | |
| Constructs timer with method void(int) | |
| PITimer (std::function< void()> func) | |
| Constructs timer with method void() | |
| PISystemTime | interval () const |
| Returns timer loop delay. | |
| void | setInterval (PISystemTime interval) |
| Set timer loop delay. | |
| bool | isRunning () const |
| Returns if timer is started. | |
| bool | isStopping () const |
| Return if timer is stopping. | |
| bool | waitForFinish (PISystemTime timeout={}) |
| Wait for timer stop. | |
| bool | start (PISystemTime interval) |
| Start timer with "interval" loop delay. | |
| bool | start (PISystemTime interval, std::function< void()> func) |
| Start timer with "interval" loop delay and tick function "func". | |
| void | stopAndWait (int timeout_ms) |
| Stop timer and wait for finish. | |
| void | stopAndWait (PISystemTime timeout={}) |
| Stop timer and wait for finish. | |
| void | setSlot (std::function< void()> func) |
| Set timer tick function. | |
| void | setSlot (std::function< void(int)> func) |
| Set timer tick function. | |
| bool | isCallQueuedEvents () const |
| Returns if timer should exec maybeCallQueuedEvents() at every tick. By default true. | |
| void | setCallQueuedEvents (bool yes) |
| Set timer exec maybeCallQueuedEvents() at every tick. | |
| void | addDelimiter (int delim, std::function< void(int)> func=nullptr) |
| Add frequency delimiter "delim" with optional delimiter slot "slot". | |
| void | addDelimiter (int delim, std::function< void()> func) |
| Add frequency delimiter "delim" with optional delimiter slot "slot". | |
| void | addDelimiter (int delim, std::function< void(void *)> slot) |
| Add frequency delimiter "delim" with optional delimiter slot "slot". | |
| void | removeDelimiter (int delim) |
| Remove all frequency delimiters "delim". | |
| bool | start () |
| Start timer with interval() loop delay. | |
| bool | restart () |
| Stop and start timer with interval() loop delay. | |
| void | stop () |
| Stop timer (don`t wait for finish) | |
| void | clearDelimiters () |
| Remove all frequency delimiters. | |
| void | tickEvent (int delimiter) |
| Raise on timer tick. More... | |
Public Member Functions inherited from PIObject | |
| PIObject (const PIString &name=PIString()) | |
| Contructs PIObject with name "name". | |
| PIString | name () const |
| Returns object name. | |
| virtual const char * | className () const |
| Returns object class name. | |
| virtual const char * | parentClassName () const |
| Returns parent class name. | |
| bool | debug () const |
| Return if piCoutObj of this object is active. | |
| void | setName (const PIString &name) |
| Set object name. | |
| void | setDebug (bool debug) |
| Set object piCoutObj active. | |
| PIVariant | property (const char *name) const |
| Returns property with name "name". | |
| void | setProperty (const char *name, const PIVariant &value) |
| Set property with name "name" to "value". If there is no such property in object it will be added. | |
| bool | isPropertyExists (const char *name) const |
| Returns if property with name "name" exists. | |
| PIStringList | scopeList () const |
| Returns subclass scope of this object (including this class name) | |
| void | piDisconnect (const PIString &sig, PIObject *dest, void *ev_h) |
| Disconnect object from all connections with event name "sig", connected to destination object "dest" and handler "ev_h". | |
| void | piDisconnect (const PIString &sig, PIObject *dest) |
| Disconnect object from all connections with event name "sig", connected to destination object "dest". | |
| void | piDisconnect (const PIString &sig) |
| Disconnect object from all connections with event name "sig". | |
| bool | isPIObject () const |
| Returns if this is valid PIObject (check signature) | |
| template<typename T > | |
| bool | isTypeOf () const |
| Returns if this is valid PIObject subclass "T" (check signature and classname) | |
| template<typename T > | |
| T * | cast () const |
| Returns cast to T if this is valid subclass "T" (check by isTypeOf()) or "nullptr". | |
| void | callQueuedEvents () |
| Execute all posted events from CONNECTU_QUEUED connections. | |
| bool | maybeCallQueuedEvents () |
| Check if any CONNECTU_QUEUED connections to this object and execute them. More... | |
| void | deleteLater () |
| Mark object to delete. More... | |
| void | deleted (PIObject *o) |
| Raise before object delete. More... | |
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 | |
Static Public Member Functions inherited from PIObject | |
| static void | piDisconnect (PIObject *src, const PIString &sig, PIObject *dest, void *ev_h) |
| Disconnect object "src" from all connections with event name "sig", connected to destination object "dest" and handler "ev_h". | |
| static void | piDisconnect (PIObject *src, const PIString &sig, PIObject *dest) |
| Disconnect object "src" from all connections with event name "sig", connected to destination object "dest". | |
| static void | piDisconnect (PIObject *src, const PIString &sig) |
| Disconnect object "src" from all connections with event name "sig". | |
| static PIObject * | findByName (const PIString &name) |
| Returns PIObject* with name "name" or 0, if there is no object found. | |
| static bool | isPIObject (const PIObject *o) |
| Returns if "o" is valid PIObject (check signature) | |
| template<typename T > | |
| static bool | isTypeOf (const PIObject *o) |
| Returns if "o" is valid PIObject subclass "T" (check signature and classname) | |
| virtual void | tick (int delimiter) |
| Timer execution function, similar to "slot" or event timeout(). By default does nothing. | |
Protected Member Functions inherited from PIObject | |
| PIObject * | emitter () const |
| Returns PIObject* which has raised an event. This value is correct only in definition of some event handler. | |
| virtual void | propertyChanged (const char *name) |
| Virtual function executes after property with name "name" has been changed. | |
Related Functions inherited from PIObject | |
| #define | piCoutObj |
| Macro used for conditional (piDebug && PIObject::debug()) output to PICout(StdOut) for subclasses of PIObject. | |
| #define | piCerrObj |
| Macro used for conditional (piDebug && PIObject::debug()) output to PICout(StdErr) 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, and scopeList() | |
| #define | EVENT_HANDLER0(ret, name) ret name() |
| Declare event handler with name "name" and return type "ret", ret name() | |
| #define | EVENT_HANDLER1(ret, name, type0, var0) ret name(type0 var0) |
| Declare event handler 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 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 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 with name "name" and return type "ret", ret name(type0 var0, type1 var1, type2 var2, type3 var3) | |
| #define | EVENT_HANDLER EVENT_HANDLER0 |
| Synonym of EVENT_HANDLER0. | |
| #define | EVENT_VHANDLER0(ret, name) virtual ret name() |
| Declare virtual event handler 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 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 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 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 with name "name" and return type "ret", virtual ret name(type0 var0, type1 var1, type2 var2,
type3 var3) | |
| #define | EVENT_VHANDLER EVENT_VHANDLER0 |
| Synonym of EVENT_VHANDLER0. | |
| #define | EVENT0(name) void name(); |
| Declare event with name "name", void name();. | |
| #define | EVENT1(name, type0, var0) void name(type0 var0); |
| Declare event with name "name", void name(type0 var0);. | |
| #define | EVENT2(name, type0, var0, type1, var1) void name(type0 var0, type1 var1); |
| Declare 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 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 with name "name", void name(type0 var0, type1 var1, type2 var2, type3 var3);. | |
| #define | EVENT EVENT0 |
| Synonym of EVENT0. | |
| #define | CONNECTU(src, event, dest, handler) |
| Connect event "event" from object "src" to event handler or event "handler" of object "dest". More... | |
| #define | CONNECTU_QUEUED(src, event, dest, handler, performer) |
| Connect event "event" from object "src" to event handler or event "handler" of object "dest". More... | |
| #define | CONNECTL(src, event, functor) |
| Connect event "event" from object "src" to lambda-expression "functor". More... | |
| #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. More... | |
| #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. More... | |
| #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. More... | |
| #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. More... | |
| #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. More... | |
| #define | CONNECT CONNECT0 |
| Synonym of CONNECT0. More... | |
| #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. More... | |
| #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. More... | |
| #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. More... | |
| #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. More... | |
| #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. More... | |
| #define | WEAK_CONNECT WEAK_CONNECT0 |
| Synonym of WEAK_CONNECT0. More... | |
| #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 |
| Synonym of DISCONNECT0. | |
| #define | HANDLER(handler) |
| Returns pointer to events handler "handler". | |
Connection quality diagnostics.
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.
Connection quality.