|
|
| PIDiagnostics (bool start_=true) |
| | Constructs diagnostics and optionally starts periodic evaluation immediately.
|
|
virtual | ~PIDiagnostics () |
| | Stops diagnostics updates.
|
|
PIDiagnostics::State | state () const |
| | Returns a thread-safe snapshot of current diagnostics state.
|
|
PISystemTime | disconnectTimeout () const |
| | Returns the disconnect timeout and averaging window.
|
|
void | setDisconnectTimeout (float s) DEPRECATEDM("use setDisconnectTimeout(PISystemTime)") |
| | Sets the disconnect timeout in seconds.
|
|
void | setDisconnectTimeout (PISystemTime tm) |
| | Sets the disconnect timeout and averaging window.
|
|
PIDiagnostics::Quality | quality () const |
| | Returns current receive quality.
|
|
PIString | receiveSpeed () const |
| | Returns formatted receive throughput string.
|
|
PIString | sendSpeed () const |
| | Returns formatted send throughput string.
|
|
| PITimer () |
| | Constructs a timer without a tick callback.
|
|
| PITimer (std::function< void(int)> func) |
| | Constructs a timer with a callback that receives the delimiter value.
|
|
| PITimer (std::function< void()> func) |
| | Constructs a timer with a callback that ignores the delimiter value.
|
|
virtual | ~PITimer () |
| | Destroys the timer and stops its internal worker thread.
|
|
PISystemTime | interval () const |
| | Returns the configured base interval between main ticks.
|
|
void | setInterval (PISystemTime interval) |
| | Sets the base interval. If the timer is running, restarts it with the new value.
|
|
bool | isRunning () const |
| | Returns whether the timer thread is currently running.
|
|
bool | isStopping () const |
| | Returns whether stop has been requested and shutdown is still in progress.
|
|
bool | waitForFinish (PISystemTime timeout={}) |
| | Waits until the timer finishes. Returns false if the timeout expires first.
|
|
bool | start (PISystemTime interval) |
| | Sets the base interval and starts the timer.
|
|
bool | start (PISystemTime interval, std::function< void()> func) |
| | Sets the base interval and tick callback, then starts the timer.
|
|
bool | start (double interval_ms) DEPRECATEDM("use start(PISystemTime)") |
| | Deprecated overload of start() that accepts milliseconds.
|
|
void | stopAndWait (int timeout_ms) |
| | Deprecated overload of stopAndWait() that accepts milliseconds.
|
|
void | stopAndWait (PISystemTime timeout={}) |
| | Requests stop and waits for the worker thread to finish.
|
|
void | setSlot (std::function< void()> func) |
| | Sets a tick callback that ignores the delimiter value.
|
|
void | setSlot (std::function< void(int)> func) |
| | Sets a tick callback that receives the current delimiter value.
|
|
void | needLockRun (bool need) |
| | Enables locking of the internal mutex around tick processing.
|
|
bool | isCallQueuedEvents () const |
| | Returns whether the timer drains queued delivery for itself as performer on each main tick. By default true.
|
|
void | setCallQueuedEvents (bool yes) |
| | Enables or disables queued-delivery draining through maybeCallQueuedEvents() on each main tick.
|
|
void | addDelimiter (int delim, std::function< void(int)> func=nullptr) |
| | Adds a frequency delimiter that invokes func every delim main ticks.
|
|
void | addDelimiter (int delim, std::function< void()> func) |
| | Adds a delimiter with a callback that ignores the delimiter value.
|
|
void | addDelimiter (int delim, std::function< void(void *)> slot) |
| | Adds a delimiter with a pointer-based callback signature.
|
|
void | removeDelimiter (int delim) |
| | Removes all delimiters with value delim.
|
|
bool | start () |
| | Starts the timer with the current interval().
|
|
bool | restart () |
| | Stops the timer, then starts it again with the current interval().
|
|
void | stop () |
| | Requests stop and wakes the timer thread, but does not wait for completion.
|
|
void | clearDelimiters () |
| | Remove all frequency delimiters.
|
|
void | lock () |
| | Locks the internal timer mutex.
|
|
void | unlock () |
| | Unlocks the internal timer mutex.
|
| void | tickEvent (int delimiter) |
| | Raised on each timer tick and on configured delimiter ticks.
|
|
| PIObject (const PIString &name=PIString()) |
| | Constructs an object and initializes its name property.
|
|
virtual | ~PIObject () |
| | Destroys the object, raises deleted() and disconnects it from the event graph.
|
|
PIString | name () const |
| | Returns the name property of this object.
|
|
virtual const char * | className () const |
| | Returns the registered class name of this object.
|
|
virtual uint | classNameID () const |
| | Returns the hash of className().
|
|
virtual const char * | parentClassName () const |
| | Returns the registered parent class name, or an empty string for the root.
|
|
bool | debug () const |
| | Returns whether piCoutObj output is enabled for this object.
|
|
void | setName (const PIString &name) |
| | Sets the name property of this object.
|
|
void | setDebug (bool debug) |
| | Enables or disables piCoutObj output for this object.
|
|
PIVariant | property (const char *name) const |
| | Returns the property with name "name".
|
| void | setProperty (const char *name, const PIVariant &value) |
| | Sets the property "name" to "value" and creates it if needed.
|
|
bool | isPropertyExists (const char *name) const |
| | Returns whether the property "name" exists.
|
| void | setThreadSafe (bool yes) |
| | Enables or disables the internal object mutex during handler execution.
|
|
bool | isThreadSafe () const |
| | Returns whether the internal object mutex is enabled for handler execution.
|
| bool | execute (const PIString &method, const PIVector< PIVariantSimple > &vl) |
| | Executes a registered method or handler method by name with the supplied arguments.
|
|
bool | execute (const PIString &method) |
| | Overload of execute() for a method without arguments.
|
|
bool | execute (const PIString &method, const PIVariantSimple &v0) |
| | Overload of execute() for one argument.
|
|
bool | execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| | Overload of execute() for two arguments.
|
|
bool | execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| | Overload of execute() for three arguments.
|
|
bool | execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| | Overload of execute() for four arguments.
|
| bool | executeQueued (PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl) |
| | Queues execution of a registered method on the performer object.
|
|
bool | executeQueued (PIObject *performer, const PIString &method) |
| | Overload of executeQueued() for a method without arguments.
|
|
bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0) |
| | Overload of executeQueued() for one argument.
|
|
bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| | Overload of executeQueued() for two arguments.
|
|
bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| | Overload of executeQueued() for three arguments.
|
|
bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| | Overload of executeQueued() for four arguments.
|
|
void | dump (const PIString &line_prefix=PIString()) const |
| | Dumps object diagnostics to the project output stream.
|
|
PIStringList | scopeList () const |
| | Returns the registered inheritance scope of this object, including its own class.
|
|
PIStringList | methodsEH () const |
| | Returns full signatures of all registered event and handler methods for this class scope.
|
|
bool | isMethodEHContains (const PIString &name) const |
| | Returns whether a registered event or handler method with this name exists.
|
|
PIString | methodEHArguments (const PIString &name) const |
| | Returns the comma-separated argument type list of a registered method.
|
|
PIString | methodEHFullFormat (const PIString &name) const |
| | Returns the full registered signature of a method.
|
|
PIString | methodEHFromAddr (const void *addr) const |
| | Returns the registered method name for the specified entry-point address.
|
|
void | piDisconnect (const PIString &sig, PIObject *dest, void *ev_h) |
| | Disconnects this source object from a specific destination handler for event "sig".
|
|
void | piDisconnect (const PIString &sig, PIObject *dest) |
| | Disconnects this source object from all connections of event "sig" to destination object "dest".
|
|
void | piDisconnect (const PIString &sig) |
| | Disconnects this source object from all connections of event "sig".
|
|
bool | isPIObject () const |
| | Returns whether this pointer still refers to a live PIObject instance.
|
|
template<typename T> |
| bool | isTypeOf () const |
| | Returns whether this object belongs to class "T" or one of its registered descendants.
|
|
template<typename T> |
| T * | cast () const |
| | Returns this object cast to "T" when isTypeOf<T>() succeeds, otherwise nullptr.
|
|
void | callQueuedEvents () |
| | Executes all queued deliveries posted to this performer object.
|
| bool | maybeCallQueuedEvents () |
| | Executes queued deliveries only when this object was used as a performer.
|
| void | deleteLater () |
| | Schedules the object for deferred deletion.
|
| void | deleted (PIObject *o) |
| | Raised immediately before object destruction.
|
|
|
static bool | execute (PIObject *o, const PIString &method, const PIVector< PIVariantSimple > &vl) |
| | Static convenience wrapper for execute().
|
|
static bool | execute (PIObject *o, const PIString &method) |
| | Static overload of execute() without arguments.
|
|
static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0) |
| | Static overload of execute() for one argument.
|
|
static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| | Static overload of execute() for two arguments.
|
|
static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| | Static overload of execute() for three arguments.
|
|
static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| | Static overload of execute() for four arguments.
|
|
static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl) |
| | Static convenience wrapper for executeQueued().
|
|
static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method) |
| | Static overload of executeQueued() without arguments.
|
|
static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0) |
| | Static overload of executeQueued() for one argument.
|
|
static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| | Static overload of executeQueued() for two arguments.
|
|
static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| | Static overload of executeQueued() for three arguments.
|
|
static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| | Static overload of executeQueued() for four arguments.
|
|
static PIObject::Connection | piConnect (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, void *ev_h, void *e_h, int args, const char *loc) |
| | Low-level direct connection helper behind the legacy CONNECT* macros.
|
|
static PIObject::Connection | piConnectU (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, const PIString &hname, const char *loc, PIObject *performer=0) |
| | Low-level name-based connection helper behind CONNECTU() and CONNECTU_QUEUED().
|
|
static PIObject::Connection | piConnectLS (PIObject *src, const PIString &sig, std::function< void()> *f, const char *loc) |
| | Low-level helper that connects an event to a lambda or functor wrapper.
|
|
static void | piDisconnect (PIObject *src, const PIString &sig, PIObject *dest, void *ev_h) |
| | Disconnects source object "src" from a specific destination handler for event "sig".
|
|
static void | piDisconnect (PIObject *src, const PIString &sig, PIObject *dest) |
| | Disconnects source object "src" from all connections of event "sig" to destination object "dest".
|
|
static void | piDisconnect (PIObject *src, const PIString &sig) |
| | Disconnects source object "src" from all connections of event "sig".
|
|
static void | raiseEvent (PIObject *sender, const uint eventID) |
| | Internal event delivery helper for registered events without arguments.
|
|
template<typename T0> |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0()) |
| | Internal event delivery helper for registered events with one argument.
|
|
template<typename T0, typename T1> |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1()) |
| | Internal event delivery helper for registered events with two arguments.
|
|
template<typename T0, typename T1, typename T2> |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2()) |
| | Internal event delivery helper for registered events with three arguments.
|
|
template<typename T0, typename T1, typename T2, typename T3> |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2(), const T3 &v3=T3()) |
| | Internal event delivery helper for registered events with four arguments.
|
|
static PIObject * | findByName (const PIString &name) |
| | Returns the first live object with name "name", or nullptr.
|
|
static bool | isPIObject (const PIObject *o) |
| | Returns whether "o" points to a live PIObject instance.
|
|
static bool | isPIObject (const void *o) |
| | Overload of isPIObject() for an untyped pointer.
|
|
template<typename T> |
| static bool | isTypeOf (const PIObject *o) |
| | Returns whether "o" belongs to class "T" or one of its registered descendants.
|
|
template<typename T> |
| static bool | isTypeOf (const void *o) |
| | Overload of isTypeOf() for an untyped pointer.
|
|
static PIString | simplifyType (const char *a, bool readable=true) |
| | Simplifies a C++ type spelling for registered-method metadata.
|
| PIObject * | emitter () const |
| | Returns the source object that raised the current event.
|
|
#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) |
| | Put this macro inside a direct PIObject subclass definition to enable registered events, event handlers and class metadata.
|
|
#define | PIOBJECT_SUBCLASS(name, parent) |
| | Put this macro inside a PIObject subclass definition to inherit registered methods and class scope from "parent".
|
|
#define | EVENT_HANDLER0(ret, name) |
| | Declare a registered event handler method with signature ret name().
|
|
#define | EVENT_HANDLER1(ret, name, type0, var0) |
| | Declare a registered event handler method with one argument.
|
|
#define | EVENT_HANDLER2(ret, name, type0, var0, type1, var1) |
| | Declare a registered event handler method with two arguments.
|
|
#define | EVENT_HANDLER3(ret, name, type0, var0, type1, var1, type2, var2) |
| | Declare a registered event handler method with three arguments.
|
|
#define | EVENT_HANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) |
| | Declare a registered event handler method with four arguments.
|
|
#define | EVENT_HANDLER EVENT_HANDLER0 |
| | Synonym of EVENT_HANDLER0.
|
|
#define | EVENT_VHANDLER0(ret, name) |
| | Declare a virtual registered event handler method with signature virtual ret name().
|
|
#define | EVENT_VHANDLER1(ret, name, type0, var0) |
| | Declare a virtual registered event handler method with one argument.
|
|
#define | EVENT_VHANDLER2(ret, name, type0, var0, type1, var1) |
| | Declare a virtual registered event handler method with two arguments.
|
|
#define | EVENT_VHANDLER3(ret, name, type0, var0, type1, var1, type2, var2) |
| | Declare a virtual registered event handler method with three arguments.
|
|
#define | EVENT_VHANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) |
| | Declare a virtual registered event handler method with four arguments.
|
|
#define | EVENT_VHANDLER EVENT_VHANDLER0 |
| | Synonym of EVENT_VHANDLER0.
|
|
#define | EVENT0(name) |
| | Declare an event method with no arguments.
|
|
#define | EVENT1(name, type0, var0) |
| | Declare an event method with one argument.
|
|
#define | EVENT2(name, type0, var0, type1, var1) |
| | Declare an event method with two arguments.
|
|
#define | EVENT3(name, type0, var0, type1, var1, type2, var2) |
| | Declare an event method with three arguments.
|
|
#define | EVENT4(name, type0, var0, type1, var1, type2, var2, type3, var3) |
| | Declare an event method with four arguments.
|
|
#define | EVENT EVENT0 |
| | Synonym of EVENT0.
|
|
#define | RAISE_EVENT0(src, event) |
| | Compatibility helper that raises event "event" on source object "src".
|
|
#define | RAISE_EVENT1(src, event, v0) |
| | Compatibility helper that raises event "event" with one argument.
|
|
#define | RAISE_EVENT2(src, event, v0, v1) |
| | Compatibility helper that raises event "event" with two arguments.
|
|
#define | RAISE_EVENT3(src, event, v0, v1, v2) |
| | Compatibility helper that raises event "event" with three arguments.
|
|
#define | RAISE_EVENT4(src, event, v0, v1, v2, v3) |
| | Compatibility helper that raises event "event" with four arguments.
|
| #define | CONNECTU(src, event, dest, handler) |
| | Connect event "event" from object "src" to event handler or event "handler" of object "dest".
|
| #define | CONNECTU_QUEUED(src, event, dest, handler, performer) |
| | Connect event "event" from object "src" to event handler or event "handler" of object "dest".
|
| #define | CONNECTL(src, event, functor) |
| | Connect event "event" from object "src" to lambda-expression "functor".
|
| #define | CONNECT0(ret, src, event, dest, handler) |
| | Legacy compatibility helper that connects an event to a registered handler with compile-time signature spelling.
|
| #define | CONNECT1(ret, type0, src, event, dest, handler) |
| | Legacy compatibility helper for a one-argument registered event or handler.
|
| #define | CONNECT2(ret, type0, type1, src, event, dest, handler) |
| | Legacy compatibility helper for a two-argument registered event or handler.
|
| #define | CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| | Legacy compatibility helper for a three-argument registered event or handler.
|
| #define | CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| | Legacy compatibility helper for a four-argument registered event or handler.
|
| #define | CONNECT CONNECT0 |
| | Synonym of CONNECT0.
|
| #define | WEAK_CONNECT0(ret, src, event, dest, handler) |
| | Legacy compatibility helper that skips source method verification.
|
| #define | WEAK_CONNECT1(ret, type0, src, event, dest, handler) |
| | Legacy compatibility helper that skips source method verification for one argument.
|
| #define | WEAK_CONNECT2(ret, type0, type1, src, event, dest, handler) |
| | Legacy compatibility helper that skips source method verification for two arguments.
|
| #define | WEAK_CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| | Legacy compatibility helper that skips source method verification for three arguments.
|
| #define | WEAK_CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| | Legacy compatibility helper that skips source method verification for four arguments.
|
| #define | WEAK_CONNECT WEAK_CONNECT0 |
| | Synonym of WEAK_CONNECT0.
|
|
#define | DISCONNECT0(ret, src, event, dest, handler) |
| | Disconnect a registered event from a registered event handler.
|
|
#define | DISCONNECT1(ret, type0, src, event, dest, handler) |
| | Disconnect a one-argument registered event from a registered event handler.
|
|
#define | DISCONNECT2(ret, type0, type1, src, event, dest, handler) |
| | Disconnect a two-argument registered event from a registered event handler.
|
|
#define | DISCONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| | Disconnect a three-argument registered event from a registered event handler.
|
|
#define | DISCONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| | Disconnect a four-argument registered event from a registered event handler.
|
|
#define | DISCONNECT DISCONNECT0 |
| | Synonym of DISCONNECT0.
|
|
#define | HANDLER(handler) |
| | Low-level helper that expands to the registered handler entry point.
|