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;
38public:
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 &observer
49 , ZF_IN_OPT ZFLevel observerLevel = ZFLevelAppNormal
50 ) const;
53 ZF_IN zfidentity eventId
54 , ZF_IN const ZFListener &callback
55 ) const;
59 zffinal void observerRemoveAll(void) const;
66 ZF_IN zfidentity eventId
67 , ZF_IN_OPT ZFObject *param0 = zfnull
68 , ZF_IN_OPT ZFObject *param1 = zfnull
69 ) const;
72 ZF_IN ZFObject *customSender
73 , ZF_IN zfidentity eventId
74 , ZF_IN_OPT ZFObject *param0 = zfnull
75 , ZF_IN_OPT ZFObject *param1 = zfnull
76 ) const;
79 ZF_IN zfidentity eventId
80 , ZF_IN_OPT ZFObject *param0 = zfnull
81 , ZF_IN_OPT ZFObject *param1 = zfnull
82 ) const;
85 ZF_IN ZFObject *customSender
86 , ZF_IN zfidentity eventId
87 , ZF_IN_OPT ZFObject *param0 = zfnull
88 , ZF_IN_OPT ZFObject *param1 = zfnull
89 ) const;
90
91public:
93 zffinal inline const ZFObserverGroup &on(
94 ZF_IN zfidentity eventId
95 , ZF_IN const ZFListener &observer
96 , ZF_IN_OPT ZFLevel observerLevel = ZFLevelAppNormal
97 ) const {
98 return this->observerAdd(eventId, observer, observerLevel);
99 }
100
101public:
106 zfstring ret;
107 this->objectInfoT(ret);
108 return ret;
109 }
110
111public:
114 ZF_IN ZFObject *owner
115 , ZF_IN const ZFObserver &target
116 );
119 ZF_IN ZFObject *owner
120 , ZF_IN ZFObject *target
121 );
122
123public:
125 ZFObserverGroup(void);
127 ~ZFObserverGroup(void);
128
129 zfbool operator == (ZF_IN const ZFObserverGroup &ref) const {return d == ref.d;}
130 zfbool operator != (ZF_IN const ZFObserverGroup &ref) const {return d != ref.d;}
131 ZFObserverGroup &operator = (ZF_IN const ZFObserverGroup &ref);
133
134private:
135 _ZFP_ZFObserverGroupPrivate *d;;
136public:
137 void _ZFP_update(
138 ZF_IN ZFObject *owner
139 , ZF_IN const ZFObserver &target
140 );
141 void _ZFP_update(
142 ZF_IN ZFObject *owner
143 , ZF_IN ZFObject *target
144 );
145};
146
149ZFOUTPUT_TYPE(ZFObserverGroup, {v.objectInfoT(s);})
150
153 , ZFMP_IN(ZFObject *, owner)
155
156// ============================================================
162 , ZFMP_IN(const ZFObserver &, target)
169 , ZFMP_IN(ZFObject *, target)
171
173#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:180
#define ZF_IN_OPT
dummy macro that shows the param used as optional input
Definition ZFCoreTypeDef_ClassType.h:184
#define ZF_IN_OUT
dummy macro that shows the param used as required input and output
Definition ZFCoreTypeDef_ClassType.h:196
#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:209
util to add multiple observer
Definition ZFObserverGroup.h:37
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:105
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:93
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:147