ZFFramework
 
Loading...
Searching...
No Matches
ZFObserverGroup.h
Go to the documentation of this file.
1
5
6#ifndef _ZFI_ZFObserverGroup_h_
7#define _ZFI_ZFObserverGroup_h_
8
9#include "ZFObject.h"
10
12
13zfclassFwd _ZFP_ZFObserverGroupPrivate;
32public:
35 ZF_IN zfidentity eventId
36 , ZF_IN const ZFListener &observer
37 , ZF_IN_OPT ZFLevel observerLevel = ZFLevelAppNormal
38 ) const;
41 ZF_IN zfidentity eventId
42 , ZF_IN const ZFListener &observer
43 , ZF_IN_OPT ZFLevel observerLevel = ZFLevelAppNormal
44 ) const;
47 ZF_IN zfidentity eventId
48 , ZF_IN const ZFListener &callback
49 ) const;
53 zffinal void observerRemoveAll(void) const;
60 ZF_IN zfidentity eventId
61 , ZF_IN_OPT ZFObject *param0 = zfnull
62 , ZF_IN_OPT ZFObject *param1 = zfnull
63 ) const;
66 ZF_IN ZFObject *customSender
67 , ZF_IN zfidentity eventId
68 , ZF_IN_OPT ZFObject *param0 = zfnull
69 , ZF_IN_OPT ZFObject *param1 = zfnull
70 ) const;
73 ZF_IN zfidentity eventId
74 , ZF_IN_OPT ZFObject *param0 = zfnull
75 , ZF_IN_OPT ZFObject *param1 = zfnull
76 ) const;
79 ZF_IN ZFObject *customSender
80 , ZF_IN zfidentity eventId
81 , ZF_IN_OPT ZFObject *param0 = zfnull
82 , ZF_IN_OPT ZFObject *param1 = zfnull
83 ) const;
84
85public:
87 zffinal inline const ZFObserverGroup &on(
88 ZF_IN zfidentity eventId
89 , ZF_IN const ZFListener &observer
90 , ZF_IN_OPT ZFLevel observerLevel = ZFLevelAppNormal
91 ) const {
92 return this->observerAdd(eventId, observer, observerLevel);
93 }
94
95public:
100 zfstring ret;
101 this->objectInfoT(ret);
102 return ret;
103 }
104
105public:
108 ZF_IN ZFObject *owner
109 , ZF_IN const ZFObserver &target
110 );
113 ZF_IN ZFObject *owner
114 , ZF_IN ZFObject *target
115 );
116
117public:
119 ZFObserverGroup(void);
121 ~ZFObserverGroup(void);
122
123 zfbool operator == (ZF_IN const ZFObserverGroup &ref) const {return d == ref.d;}
124 zfbool operator != (ZF_IN const ZFObserverGroup &ref) const {return d != ref.d;}
125 ZFObserverGroup &operator = (ZF_IN const ZFObserverGroup &ref);
127
128private:
129 _ZFP_ZFObserverGroupPrivate *d;;
130public:
131 void _ZFP_update(
132 ZF_IN ZFObject *owner
133 , ZF_IN const ZFObserver &target
134 );
135 void _ZFP_update(
136 ZF_IN ZFObject *owner
137 , ZF_IN ZFObject *target
138 );
139};
140
143ZFOUTPUT_TYPE(ZFObserverGroup, {v.objectInfoT(s);})
144
147 , ZFMP_IN(ZFObject *, owner)
149
150// ============================================================
156 , ZFMP_IN(const ZFObserver &, target)
163 , ZFMP_IN(ZFObject *, target)
165
167#endif // #ifndef _ZFI_ZFObserverGroup_h_
#define ZFLIB_ZFCore
used to export symbols
Definition ZFCoreEnvDef.h:30
#define zffinal
dummy macro shows that a method or class is designed must not to be overrided
Definition ZFCoreTypeDef_ClassType.h:63
#define zfclassLikePOD
shows the class is not a POD type, but you may use it like a POD except memset it to 0
Definition ZFCoreTypeDef_ClassType.h:41
#define ZF_IN
dummy macro that shows the param used as required input
Definition ZFCoreTypeDef_ClassType.h:184
#define ZF_IN_OPT
dummy macro that shows the param used as optional input
Definition ZFCoreTypeDef_ClassType.h:188
#define ZF_IN_OUT
dummy macro that shows the param used as required input and output
Definition ZFCoreTypeDef_ClassType.h:200
#define zfclassFwd
forward declaration of a class type
Definition ZFCoreTypeDef_ClassType.h:31
_ZFT_t_zfbool zfbool
bool type
Definition ZFCoreTypeDef_CoreType.h:103
_zft_zfidentity zfidentity
identity type, ensured at least 32 bit, ensured unsigned
Definition ZFCoreTypeDef_CoreType.h:225
#define zfnull
same as NULL, defined for future use
Definition ZFCoreTypeDef_CoreType.h:88
#define ZFOUTPUT_TYPE(T_Type, outputAction)
declare your custom type conversion to string, convenient for debug
Definition ZFCoreTypeDef_OtherType.h:221
zft_zfstring< zfchar > zfstring
see zft_zfstring
Definition ZFCoreTypeDef_StringType.h:15
ZFLevel
level for logic which depends on order
Definition ZFLevel.h:17
@ ZFLevelAppNormal
app
Definition ZFLevel.h:26
#define ZFMP_IN(ParamType, paramName)
macro to wrap param types for ZFMETHOD_INLINE_0 series
Definition ZFMethod.h:105
#define ZFMETHOD_FUNC_DECLARE_1(ZFLIB_, ReturnType, MethodName, ZFMP_0)
see ZFMETHOD_FUNC_DECLARE_0
Definition ZFMethodFuncDeclare.h:624
#define ZF_NAMESPACE_GLOBAL_BEGIN
begin namespace ZFFramework
Definition ZFNamespace.h:97
#define ZF_NAMESPACE_GLOBAL_END
end namespace ZFFramework
Definition ZFNamespace.h:98
ZFObject related include.
ZFObserverGroup ZFGlobalObserverGroup(const ZFObserver &target)
util to create a global ZFObserverGroup, which all of observers would be removed during ZFFrameworkCl...
void ZFObserverGroupRemove(ZFObject *owner)
see ZFObserverGroup
#define ZFTYPEID_ACCESS_ONLY_REG(ZFLIB_, TypeName, Type,...)
see ZFTYPEID_DECLARE
Definition ZFTypeIdDeclare.h:205
#define ZFTYPEID_ACCESS_ONLY_DECLARE(ZFLIB_, TypeName, Type)
see ZFTYPEID_DECLARE
Definition ZFTypeIdDeclare.h:195
listener as ZFCallback, mostly used by ZFObject::observerNotify
Definition ZFObjectObserver.h:30
base class of all objects
Definition ZFObjectCore.h:205
util to add multiple observer
Definition ZFObserverGroup.h:31
void observerNotifyWithSender(ZFObject *customSender, zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull) const
see ZFObserverGroup
void observerRemoveAll(void) const
see ZFObserverGroup
void observerNotifyReversely(zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull) const
see ZFObserverGroup
ZFObserverGroup(ZFObject *owner, const ZFObserver &target)
see ZFObserverGroup
void observerRemoveAll(zfidentity eventId) const
see ZFObserverGroup
zfbool observerHasAdd(zfidentity eventId) const
see ZFObserverGroup
ZFObserverGroup(ZFObject *owner, ZFObject *target)
see ZFObserverGroup
zfbool observerHasAdd(void) const
see ZFObserverGroup
zfstring objectInfo(void) const
return object info
Definition ZFObserverGroup.h:99
const ZFObserverGroup & observerAddForOnce(zfidentity eventId, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal) const
see ZFObserverGroup
const ZFObserverGroup & on(zfidentity eventId, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal) const
see ZFObserverGroup
Definition ZFObserverGroup.h:87
void observerRemove(zfidentity eventId, const ZFListener &callback) const
see ZFObserverGroup
void objectInfoT(zfstring &ret) const
see objectInfo
void observerNotify(zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull) const
see ZFObserverGroup
const ZFObserverGroup & observerAdd(zfidentity eventId, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal) const
see ZFObserverGroup
void observerNotifyReverselyWithSender(ZFObject *customSender, zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull) const
see ZFObserverGroup
holder object for observer logic, see ZFObject::observerNotify
Definition ZFObjectObserver.h:129