PIP 5.6.1
Platform-Independent Primitives
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Related Functions | List of all members
PIObject Class Reference

Base class for objects that declare events, event handlers and registered methods. More...

#include <piobject.h>

Inheritance diagram for PIObject:
Inheritance graph
[legend]

Classes

class  Connection
 Handle of one connection between a source object and a destination object or functor. More...
 

Public Member Functions

 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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
void deleteLater ()
 Schedules the object for deferred deletion. More...
 

Static Public Member Functions

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 PIObjectfindByName (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.
 

Protected Member Functions

PIObjectemitter () const
 Returns the source object that raised the current event. More...
 
virtual void propertyChanged (const char *name)
 Virtual method called after property "name" has been changed by setProperty().
 

Related Functions

(Note that these are not member functions.)

#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)   ret name()
 Declare a registered event handler method with signature ret name().
 
#define EVENT_HANDLER1(ret, name, type0, var0)   ret name(type0 var0)
 Declare a registered event handler method with one argument.
 
#define EVENT_HANDLER2(ret, name, type0, var0, type1, var1)   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)   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)    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)   virtual ret name()
 Declare a virtual registered event handler method with signature virtual ret name().
 
#define EVENT_VHANDLER1(ret, name, type0, var0)   virtual ret name(type0 var0)
 Declare a virtual registered event handler method with one argument.
 
#define EVENT_VHANDLER2(ret, name, type0, var0, type1, var1)   virtual 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)   virtual 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)    virtual 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)   void name();
 Declare an event method with no arguments.
 
#define EVENT1(name, type0, var0)   void name(type0 var0);
 Declare an event method with one argument.
 
#define EVENT2(name, type0, var0, type1, var1)   void name(type0 var0, type1 var1);
 Declare an event method with two arguments.
 
#define EVENT3(name, type0, var0, type1, var1, type2, var2)   void 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)   void 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". 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)
 Legacy compatibility helper that connects an event to a registered handler with compile-time signature spelling. More...
 
#define CONNECT1(ret, type0, src, event, dest, handler)
 Legacy compatibility helper for a one-argument registered event or handler. More...
 
#define CONNECT2(ret, type0, type1, src, event, dest, handler)
 Legacy compatibility helper for a two-argument registered event or handler. More...
 
#define CONNECT3(ret, type0, type1, type2, src, event, dest, handler)
 Legacy compatibility helper for a three-argument registered event or handler. More...
 
#define CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler)
 Legacy compatibility helper for a four-argument registered event or handler. More...
 
#define CONNECT   CONNECT0
 Synonym of CONNECT0. More...
 
#define WEAK_CONNECT0(ret, src, event, dest, handler)
 Legacy compatibility helper that skips source method verification. More...
 
#define WEAK_CONNECT1(ret, type0, src, event, dest, handler)
 Legacy compatibility helper that skips source method verification for one argument. More...
 
#define WEAK_CONNECT2(ret, type0, type1, src, event, dest, handler)
 Legacy compatibility helper that skips source method verification for two arguments. More...
 
#define WEAK_CONNECT3(ret, type0, type1, type2, src, event, dest, handler)
 Legacy compatibility helper that skips source method verification for three arguments. More...
 
#define WEAK_CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler)
 Legacy compatibility helper that skips source method verification for four arguments. More...
 
#define WEAK_CONNECT   WEAK_CONNECT0
 Synonym of WEAK_CONNECT0. More...
 
#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.
 

Events

void deleted (PIObject *o)
 Raised immediately before object destruction. More...
 

Detailed Description

Base class for objects that declare events, event handlers and registered methods.

PIObject is the base class for all PIP classes that need event-driven communication. It provides signal-slot mechanism, property system, and object lifetime management. PIObject stores named properties, keeps connection state and exposes a small metaobject table used by CONNECTU(), execute() and related APIs. Queued delivery runs on the performer object and requires explicit draining through callQueuedEvents() or maybeCallQueuedEvents().

Events and Event handlers

PIObject provide notification mechanism similar Qt but implemented on language capabilities without any special preprocessors or compilers. Any class inherits PIObject should use macro PIOBJECT() immediate after declaration to proper compile.

Event is a some abstract event that can be raised at any time as common method. Event is a function but declared with special macro EVENT() and don`t need definition. To raise event simply execute event function.

Event handler is a function but declared with special macro EVENT_HANDLER(). It need definition as common method. You can use event handlers as ordinary functions.

Main goal of this mechanism is perform abstract connections between various objects. This functionality provide macro CONNECT(), CONNECTU() and CONNECTL() which connect some event of first object to some event handler or event of second object. Each event can be connected any times to any event handlers.

Example:

class ObjectA: public PIObject {
PIOBJECT(ObjectA)
public:
EVENT_HANDLER1(void, handlerA, const PIString & , str) {piCoutObj << "handler A:" << str;}
EVENT1(eventA1, const PIString & , str);
EVENT2(eventA2, int, i, float, f);
};
class ObjectB: public PIObject {
PIOBJECT(ObjectB)
public:
EVENT_HANDLER2(void, handlerB, int, i, float, f) {piCoutObj << "handler B:" << i << "," << f;}
EVENT1(eventB, PIString, str);
};
int main(int argc, char * argv[]) {
ObjectA obj_a;
ObjectB obj_b;
CONNECT2(void, int, float, &obj_a, eventA2, &obj_b, handlerB);
obj_a.eventA2(2, 0.5);
CONNECT1(void, PIString, &obj_b, eventB, &obj_a, handlerA);
obj_b.eventB("event to handler");
CONNECTU(&obj_a, eventA1, &obj_b, eventB);
obj_a.eventA1("event to event");
obj_a.piDisconnect("eventA1");
CONNECTL(&obj_a, eventA1, ([](const PIString & str){piCout << str;}));
obj_a.eventA1("event to lambda");
};
Base class for objects that declare events, event handlers and registered methods.
Definition: piobject.h:56
#define CONNECT1(ret, type0, src, event, dest, handler)
Legacy compatibility helper for a one-argument registered event or handler.
Definition: piobject_macros.h:261
#define EVENT_HANDLER1(ret, name, type0, var0)
Declare a registered event handler method with one argument.
Definition: piobject_macros.h:66
#define EVENT1(name, type0, var0)
Declare an event method with one argument.
Definition: piobject_macros.h:142
#define piCoutObj
Macro used for conditional (piDebug && PIObject::debug()) output to PICout(StdOut) for subclasses of ...
Definition: picout.h:45
#define CONNECTL(src, event, functor)
Connect event "event" from object "src" to lambda-expression "functor".
Definition: piobject_macros.h:240
#define CONNECT2(ret, type0, type1, src, event, dest, handler)
Legacy compatibility helper for a two-argument registered event or handler.
Definition: piobject_macros.h:270
#define EVENT2(name, type0, var0, type1, var1)
Declare an event method with two arguments.
Definition: piobject_macros.h:148
#define EVENT_HANDLER2(ret, name, type0, var0, type1, var1)
Declare a registered event handler method with two arguments.
Definition: piobject_macros.h:72
#define CONNECTU(src, event, dest, handler)
Connect event "event" from object "src" to event handler or event "handler" of object "dest".
Definition: piobject_macros.h:204
#define PIOBJECT(name)
Put this macro inside a direct PIObject subclass definition to enable registered events,...
Definition: piobject_macros.h:46
String class.
Definition: pistring.h:42
#define piCout
Definition: picout.h:36
s v file v filter f
Restore operator.
Definition: pivarianttypes.h:414

Result:

handler B: 2 , 0.5
handler A: event to handler
handler A: event to event
event to lambda

Member Function Documentation

◆ setProperty()

void PIObject::setProperty ( const char *  name,
const PIVariant value 
)
inline

Sets the property "name" to "value" and creates it if needed.

Calls propertyChanged() after updating the stored value.

◆ setThreadSafe()

void PIObject::setThreadSafe ( bool  yes)
inline

Enables or disables the internal object mutex during handler execution.

This flag affects direct and queued handler invocation for this object, but does not describe full thread-safety of the class.

◆ execute()

bool PIObject::execute ( const PIString method,
const PIVector< PIVariantSimple > &  vl 
)

Executes a registered method or handler method by name with the supplied arguments.

This helper works only with the registered-method table built from EVENT_HANDLER*() and EVENT*() declarations. It does not provide arbitrary reflection or complex overload resolution: the implementation selects a suitable registered method by name and argument count.

◆ executeQueued()

bool PIObject::executeQueued ( PIObject performer,
const PIString method,
const PIVector< PIVariantSimple > &  vl 
)

Queues execution of a registered method on the performer object.

Delivery happens only when "performer" later calls callQueuedEvents() or maybeCallQueuedEvents(). Argument values are transported through PIVariantSimple, so queued arguments should be representable there.

◆ maybeCallQueuedEvents()

bool PIObject::maybeCallQueuedEvents ( )
inline

Executes queued deliveries only when this object was used as a performer.

This helper is cheaper than unconditional callQueuedEvents() for objects that are rarely used as performer targets.

◆ deleteLater()

void PIObject::deleteLater ( )

Schedules the object for deferred deletion.

On first call background thread started to delete objects. Each object deletes when it`s outside from any events and hadlers.

◆ deleted()

void PIObject::deleted ( PIObject o)

Raised immediately before object destruction.

Warning

This event raised from destructor, so use only "o" numeric value, don`t try to cast deleted object to some subclass!

◆ emitter()

PIObject * PIObject::emitter ( ) const
inlineprotected

Returns the source object that raised the current event.

This value is valid only while an event handler is running.

Friends And Related Function Documentation

◆ CONNECTU

#define CONNECTU (   src,
  event,
  dest,
  handler 
)
related

Connect event "event" from object "src" to event handler or event "handler" of object "dest".

"handler" can accept a prefix of "event" arguments. This macro resolves registered methods by name at run time and returns PIObject::Connection.

◆ CONNECTU_QUEUED

#define CONNECTU_QUEUED (   src,
  event,
  dest,
  handler,
  performer 
)
related

Connect event "event" from object "src" to event handler or event "handler" of object "dest".

"handler" can accept a prefix of "event" arguments. Delivery is queued on the performer object and runs only when that object calls PIObject::callQueuedEvents() or PIObject::maybeCallQueuedEvents(). All argument types should be registered by REGISTER_VARIANT() macro, but many common and PIP types already done. Returns PIObject::Connection.

◆ CONNECTL

#define CONNECTL (   src,
  event,
  functor 
)
related

Connect event "event" from object "src" to lambda-expression "functor".

"event" and "functor" must have the same argument list. Wrap "functor" in () when the lambda expression is complex. Returns PIObject::Connection.

◆ CONNECT0

#define CONNECT0 (   ret,
  src,
  event,
  dest,
  handler 
)
related

Legacy compatibility helper that connects an event to a registered handler with compile-time signature spelling.

Deprecated:
Use CONNECTU() instead

Prefer CONNECTU() for new code.

◆ CONNECT1

#define CONNECT1 (   ret,
  type0,
  src,
  event,
  dest,
  handler 
)
related

Legacy compatibility helper for a one-argument registered event or handler.

Deprecated:
Use CONNECTU() instead

◆ CONNECT2

#define CONNECT2 (   ret,
  type0,
  type1,
  src,
  event,
  dest,
  handler 
)
related

Legacy compatibility helper for a two-argument registered event or handler.

Deprecated:
Use CONNECTU() instead

◆ CONNECT3

#define CONNECT3 (   ret,
  type0,
  type1,
  type2,
  src,
  event,
  dest,
  handler 
)
related

Legacy compatibility helper for a three-argument registered event or handler.

Deprecated:
Use CONNECTU() instead

◆ CONNECT4

#define CONNECT4 (   ret,
  type0,
  type1,
  type2,
  type3,
  src,
  event,
  dest,
  handler 
)
related

Legacy compatibility helper for a four-argument registered event or handler.

Deprecated:
Use CONNECTU() instead

◆ CONNECT

#define CONNECT   CONNECT0
related

Synonym of CONNECT0.

Deprecated:
Use CONNECTU() instead

◆ WEAK_CONNECT0

#define WEAK_CONNECT0 (   ret,
  src,
  event,
  dest,
  handler 
)
related

Legacy compatibility helper that skips source method verification.

Deprecated:
Use CONNECTU() instead

◆ WEAK_CONNECT1

#define WEAK_CONNECT1 (   ret,
  type0,
  src,
  event,
  dest,
  handler 
)
related

Legacy compatibility helper that skips source method verification for one argument.

Deprecated:
Use CONNECTU() instead

◆ WEAK_CONNECT2

#define WEAK_CONNECT2 (   ret,
  type0,
  type1,
  src,
  event,
  dest,
  handler 
)
related

Legacy compatibility helper that skips source method verification for two arguments.

Deprecated:
Use CONNECTU() instead

◆ WEAK_CONNECT3

#define WEAK_CONNECT3 (   ret,
  type0,
  type1,
  type2,
  src,
  event,
  dest,
  handler 
)
related

Legacy compatibility helper that skips source method verification for three arguments.

Deprecated:
Use CONNECTU() instead

◆ WEAK_CONNECT4

#define WEAK_CONNECT4 (   ret,
  type0,
  type1,
  type2,
  type3,
  src,
  event,
  dest,
  handler 
)
related

Legacy compatibility helper that skips source method verification for four arguments.

Deprecated:
Use CONNECTU() instead

◆ WEAK_CONNECT

#define WEAK_CONNECT   WEAK_CONNECT0
related

Synonym of WEAK_CONNECT0.

Deprecated:
Use CONNECTU() instead