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 const ZFArgs &zfargs = ZFArgs()
62 ) const;
65 ZF_IN ZFObject *customSender
66 , ZF_IN zfidentity eventId
67 , ZF_IN_OPT const ZFArgs &zfargs = ZFArgs()
68 ) const;
71 ZF_IN zfidentity eventId
72 , ZF_IN_OPT const ZFArgs &zfargs = ZFArgs()
73 ) const;
76 ZF_IN ZFObject *customSender
77 , ZF_IN zfidentity eventId
78 , ZF_IN_OPT const ZFArgs &zfargs = ZFArgs()
79 ) const;
80
81public:
84 ZF_IN const zfstring &eventName
85 , ZF_IN const ZFListener &observer
86 , ZF_IN_OPT ZFLevel observerLevel = ZFLevelAppNormal
87 ) const;
89 zffinal inline const ZFObserverGroup &on(
90 ZF_IN zfidentity eventId
91 , ZF_IN const ZFListener &observer
92 , ZF_IN_OPT ZFLevel observerLevel = ZFLevelAppNormal
93 ) const {
94 return this->observerAdd(eventId, observer, observerLevel);
95 }
96
97public:
102 zfstring ret;
103 this->objectInfoT(ret);
104 return ret;
105 }
106
107public:
110 ZF_IN ZFObject *owner
111 , ZF_IN const ZFObserver &target
112 );
115 ZF_IN ZFObject *owner
116 , ZF_IN ZFObject *target
117 );
118
119public:
121 ZFObserverGroup(void);
123 ~ZFObserverGroup(void);
124
125 zfbool operator == (ZF_IN const ZFObserverGroup &ref) const {return d == ref.d;}
126 zfbool operator != (ZF_IN const ZFObserverGroup &ref) const {return d != ref.d;}
127 ZFObserverGroup &operator = (ZF_IN const ZFObserverGroup &ref);
129
130private:
131 _ZFP_ZFObserverGroupPrivate *d;
132public:
133 void _ZFP_update(
134 ZF_IN ZFObject *owner
135 , ZF_IN const ZFObserver &target
136 );
137 void _ZFP_update(
138 ZF_IN ZFObject *owner
139 , ZF_IN ZFObject *target
140 );
141};
142
145ZFOUTPUT_TYPE(ZFObserverGroup, {v.objectInfoT(s);})
146
149 , ZFMP_IN(ZFObject *, owner)
151
152// ============================================================
158 , ZFMP_IN(const ZFObserver &, target)
165 , ZFMP_IN(ZFObject *, target)
167
169#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:198
#define ZF_IN_OPT
dummy macro that shows the param used as optional input
Definition ZFCoreTypeDef_ClassType.h:202
#define ZF_IN_OUT
dummy macro that shows the param used as required input and output
Definition ZFCoreTypeDef_ClassType.h:214
#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 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 data used by ZFListener
Definition ZFArgs.h:20
listener as ZFCallback, mostly used by ZFObject::observerNotify
Definition ZFObjectObserver.h:30
base class of all objects
Definition ZFObjectCore.h:195
util to add multiple observer
Definition ZFObserverGroup.h:31
void observerNotifyWithSender(ZFObject *customSender, zfidentity eventId, const ZFArgs &zfargs=ZFArgs()) const
see ZFObserverGroup
void observerRemoveAll(void) const
see ZFObserverGroup
ZFObserverGroup(ZFObject *owner, const ZFObserver &target)
see ZFObserverGroup
void observerNotify(zfidentity eventId, const ZFArgs &zfargs=ZFArgs()) const
see ZFObserverGroup
void observerRemoveAll(zfidentity eventId) const
see ZFObserverGroup
zfbool observerHasAdd(zfidentity eventId) const
see ZFObserverGroup
void observerNotifyReverselyWithSender(ZFObject *customSender, zfidentity eventId, const ZFArgs &zfargs=ZFArgs()) 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:101
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:89
void observerRemove(zfidentity eventId, const ZFListener &callback) const
see ZFObserverGroup
void objectInfoT(zfstring &ret) const
see objectInfo
void observerNotifyReversely(zfidentity eventId, const ZFArgs &zfargs=ZFArgs()) const
see ZFObserverGroup
const ZFObserverGroup & observerAdd(zfidentity eventId, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal) const
see ZFObserverGroup
const ZFObserverGroup & on(const zfstring &eventName, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal) const
see ZFObserverGroup
holder object for observer logic, see ZFObject::observerNotify
Definition ZFObjectObserver.h:129