Basic signal handling.
More...
SignalObject |
GWENHYWFAR_API GWEN_SIGNALOBJECT * | GWEN_SignalObject_new (void) |
GWENHYWFAR_API void | GWEN_SignalObject_free (GWEN_SIGNALOBJECT *so) |
GWENHYWFAR_API GWEN_SIGNAL * | GWEN_SignalObject_FindSignal (const GWEN_SIGNALOBJECT *so, const char *name, const char *typeOfArg1, const char *typeOfArg2) |
GWENHYWFAR_API GWEN_SLOT * | GWEN_SignalObject_FindSlot (const GWEN_SIGNALOBJECT *so, const char *name, const char *typeOfArg1, const char *typeOfArg2) |
GWENHYWFAR_API void | GWEN_SignalObject_RemoveForDerivedType (GWEN_SIGNALOBJECT *so, const char *derivedType) |
GWENHYWFAR_API GWEN_SIGNAL * | GWEN_Signal_new (GWEN_SIGNALOBJECT *so, const char *derivedType, const char *name, const char *typeOfArg1, const char *typeOfArg2) |
GWENHYWFAR_API void | GWEN_Signal_free (GWEN_SIGNAL *sig) |
GWENHYWFAR_API GWEN_SIGNALOBJECT * | GWEN_Signal_GetSignalObject (const GWEN_SIGNAL *sig) |
GWENHYWFAR_API int | GWEN_Signal_Connect (GWEN_SIGNAL *sig, GWEN_SLOT *slot) |
GWENHYWFAR_API int | GWEN_Signal_Disconnect (GWEN_SIGNAL *sig, GWEN_SLOT *slot) |
GWENHYWFAR_API int | GWEN_Signal_Emit (GWEN_SIGNAL *sig, void *pArg1, void *pArg2, int iArg3, int iArg4) |
Detailed Description
Basic signal handling.
This module introduces a simple signal-slot framework. Signals have a fixed list of arguments:
-
a void* pointer
-
1st integer argument
-
2nd integer argument
The actual type of the void pointer is defined by the signal and corresponding slot(s): Gwen checks the type at runtime and refuses to connect signals with slots which define this pointer to be of a different type. Any signal can be connected to any number of matching slots.
The central object in this framework is GWEN_SIGNALOBJECT. It holds a list of signals and slots for a given object.
Typedef Documentation
typedef int GWENHYWFAR_CB(* GWEN_SLOT_FUNCTION)(GWEN_SLOT *slot, void *userData, void *pArg1, void *pArg2, int iArg3, int iArg4) |
This is the prototype for the slot function. If there is a problem in the function it should return 1, otherwise 0.
Definition at line 76 of file gwensignal.h.
Function Documentation
This function calls the slot function of all connected slots. If any of the slot functions called returns with code 1 then this function will return 1, too. Otherwise 0 is returned. This means that this function will only return 0 if every called slot function returns 0.
This function removes all signals and slots for the given derived type. This function can be used from within the FREEDATA function of the GWEN_INHERIT framework.