PTLib  Version 2.10.11
notifier_ext.h File Reference

Go to the source code of this file.

Classes

class  PSmartNotifieeRegistrar
 Implements a function similar to the PNotifier, but uses an "id" to link the caller and callee rather than using a pointer. More...
 
class  PSmartNotifierFunction
 
class  PNotifierList
 

Macros

#define PDECLARE_SMART_NOTIFIEE   PSmartNotifieeRegistrar m_Registrar; \
 
#define PCREATE_SMART_NOTIFIEE   m_Registrar.Init(this)
 
#define PDECLARE_SMART_NOTIFIER(notifier, notifiee, func)
 
#define PCREATE_SMART_NOTIFIER(func)   PNotifier(new func##_PSmartNotifier(m_Registrar.GetID()))
 

Macro Definition Documentation

#define PCREATE_SMART_NOTIFIEE   m_Registrar.Init(this)
#define PCREATE_SMART_NOTIFIER (   func)    PNotifier(new func##_PSmartNotifier(m_Registrar.GetID()))
#define PDECLARE_SMART_NOTIFIEE   PSmartNotifieeRegistrar m_Registrar; \
#define PDECLARE_SMART_NOTIFIER (   notifier,
  notifiee,
  func 
)
Value:
class func##_PSmartNotifier : public PSmartNotifierFunction { \
public: \
func##_PSmartNotifier(unsigned id) : PSmartNotifierFunction(id) { } \
virtual void Call(PObject & note, INT extra) const \
{ \
void * obj = GetNotifiee(); \
if (obj) \
((notifiee*)obj)->func((notifier &)note, extra); \
PTRACE(2, "PWLib\tInvalid notifiee"); \
} \
}; \
friend class func##_PSmartNotifier; \
virtual void func(notifier & note, INT extra)
Definition: notifier_ext.h:64
virtual void Call(PObject &notifier, ParmType extra) const =0
Execute the call to the actual notification function on the object instance contained in this object...
#define PTRACE(level, args)
Output trace.
Definition: object.h:530
void * GetNotifiee() const
Definition: notifier_ext.h:74
Ultimate parent class for all objects in the class library.
Definition: object.h:1118