ZFFramework
Loading...
Searching...
No Matches
ZFTaskUtil.h
Go to the documentation of this file.
1
5
6#ifndef _ZFI_ZFTaskUtil_h_
7#define _ZFI_ZFTaskUtil_h_
8
9#include "ZFTask.h"
10#include "ZFThread_zfasyncIO.h"
12
13// ============================================================
17zfclass ZFLIB_ZFCore ZFWaitTask : zfextend ZFTask {
18 ZFOBJECT_DECLARE(ZFWaitTask, ZFTask)
19
20public:
23
24protected:
26 virtual void objectOnInit(void) {
28 }
30 virtual void objectOnInit(
31 ZF_IN const ZFListener &implOnStart
32 , ZF_IN_OPT const ZFListener &implOnStop = zfnull
33 ) {
34 zfsuper::objectOnInit(implOnStart, implOnStop);
35 }
36
38 ZFMP_IN(zftimet, duration)
39 )
40
41protected:
43 virtual void taskOnStart(void);
45 virtual void taskOnStop(void);
46private:
47 zfautoT<ZFTaskId> _implTaskId;
48};
49
50// ============================================================
56zfclass ZFLIB_ZFCore ZFAsyncTask : zfextend ZFTask {
57 ZFOBJECT_DECLARE(ZFAsyncTask, ZFTask)
58
59public:
62
63protected:
65 virtual void objectOnInit(void) {
67 }
69 virtual void objectOnInit(
70 ZF_IN const ZFListener &implOnStart
71 , ZF_IN_OPT const ZFListener &implOnStop = zfnull
72 ) {
73 if(implOnStop) {
74 zfsuper::objectOnInit(implOnStart, implOnStop);
75 }
76 else {
77 this->objectOnInit();
78 this->impl(implOnStart);
79 }
80 }
81
82protected:
84 virtual void taskOnStart(void);
86 virtual void taskOnStop(void);
87private:
88 zfautoT<ZFTaskId> _implTaskId;
89};
90
91// ============================================================
97zfclass ZFLIB_ZFCore ZFPostTask : zfextend ZFTask {
98 ZFOBJECT_DECLARE(ZFPostTask, ZFTask)
99
100public:
103
104protected:
106 virtual void objectOnInit(void) {
108 }
110 virtual void objectOnInit(
111 ZF_IN const ZFListener &implOnStart
112 , ZF_IN_OPT const ZFListener &implOnStop = zfnull
113 ) {
114 if(implOnStop) {
115 zfsuper::objectOnInit(implOnStart, implOnStop);
116 }
117 else {
118 this->objectOnInit();
119 this->impl(implOnStart);
120 }
121 }
122
123protected:
125 virtual void taskOnStart(void);
127 virtual void taskOnStop(void);
128private:
129 zfautoT<ZFTaskId> _implTaskId;
130};
131
132// ============================================================
138zfclass ZFLIB_ZFCore ZFAsyncIOCustomTask : zfextend ZFTask {
139 ZFOBJECT_DECLARE(ZFAsyncIOCustomTask, ZFTask)
140
141public:
144
145protected:
147 virtual void objectOnInit(void) {
149 }
151 virtual void objectOnInit(
152 ZF_IN const ZFListener &implOnStart
153 , ZF_IN_OPT const ZFListener &implOnStop = zfnull
154 ) {
155 if(implOnStop) {
156 zfsuper::objectOnInit(implOnStart, implOnStop);
157 }
158 else {
159 this->objectOnInit();
160 this->impl(implOnStart);
161 }
162 }
163
164protected:
166 virtual void taskOnStart(void);
168 virtual void taskOnStop(void);
169private:
170 zfautoT<ZFTaskId> _implTaskId;
171};
172
173// ============================================================
179zfclass ZFLIB_ZFCore ZFAsyncIOTask : zfextend ZFTask {
180 ZFOBJECT_DECLARE(ZFAsyncIOTask, ZFTask)
181
182public:
191
192protected:
194 virtual void objectOnInit(void) {
196 }
198 virtual void objectOnInit(
199 ZF_IN const ZFListener &implOnStart
200 , ZF_IN_OPT const ZFListener &implOnStop = zfnull
201 ) {
202 zfsuper::objectOnInit(implOnStart, implOnStop);
203 }
204
206 ZFMP_IN(const ZFOutput &, output)
207 , ZFMP_IN(const ZFInput &, input)
208 , ZFMP_IN_OPT(const ZFListener &, onProgress, zfnull)
209 , ZFMP_IN_OPT(ZFAsyncIOResumable *, resumable, zfnull)
211
212protected:
214 virtual void taskOnStart(void);
216 virtual void taskOnStop(void);
217private:
218 zfautoT<ZFTaskId> _implTaskId;
219};
220
222#endif // #ifndef _ZFI_ZFTaskUtil_h_
#define ZFLIB_ZFCore
used to export symbols
Definition ZFCoreEnvDef.h:30
#define zfextend
dummy macro shows class inherit from another
Definition ZFCoreTypeDef_ClassType.h:53
#define zfoverride
dummy macro shows that method override parent's method
Definition ZFCoreTypeDef_ClassType.h:58
#define ZF_IN
dummy macro that shows the param used as required input
Definition ZFCoreTypeDef_ClassType.h:196
#define ZF_IN_OPT
dummy macro that shows the param used as optional input
Definition ZFCoreTypeDef_ClassType.h:200
_zft_zftimet zftimet
time unit, ensured at least 64 bit, ensured signed
Definition ZFCoreTypeDef_CoreType.h:203
#define zfnull
same as NULL, defined for future use
Definition ZFCoreTypeDef_CoreType.h:88
#define ZFMP_IN_OPT(ParamType, paramName, DefaultValue)
see ZFMP_IN
Definition ZFMethod.h:108
#define ZFMP_IN(ParamType, paramName)
macro to wrap param types for ZFMETHOD_INLINE_0 series
Definition ZFMethod.h:105
#define ZF_NAMESPACE_GLOBAL_BEGIN
begin namespace ZFFramework
Definition ZFNamespace.h:97
#define ZF_NAMESPACE_GLOBAL_END
end namespace ZFFramework
Definition ZFNamespace.h:98
#define zfclass
same as class, shows that this class is a ZFObject type
Definition ZFObjectClassTypeFwd.h:38
#define ZFOBJECT_ON_INIT_DECLARE_1(ZFMP_0)
see ZFOBJECT_ON_INIT_INLINE_1
Definition ZFObjectDeclare.h:259
#define ZFOBJECT_ON_INIT_DECLARE_4(ZFMP_0, ZFMP_1, ZFMP_2, ZFMP_3)
see ZFOBJECT_ON_INIT_INLINE_1
Definition ZFObjectDeclare.h:358
#define ZFOBJECT_DECLARE(ChildClass, SuperClass,...)
necessary for every class inherit from ZFObject
Definition ZFObjectDeclare.h:122
#define ZFPROPERTY_RETAIN(Type, Name,...)
declare a retain property
Definition ZFPropertyDeclare.h:103
#define ZFPROPERTY_ASSIGN(Type, Name,...)
see ZFPROPERTY_RETAIN
Definition ZFPropertyDeclare.h:120
abstract task util
thread utility
virtual void taskOnStop(void)
called to stop task
virtual ZFListener & impl()
the impl
Definition ZFTaskUtil.h:143
virtual void objectOnInit(const ZFListener &implOnStart, const ZFListener &implOnStop=zft_zfnull)
util constructor to attach custom impl to E_TaskOnStart and E_TaskOnStop
Definition ZFTaskUtil.h:151
virtual void objectOnInit(void)
override this to init your object
Definition ZFTaskUtil.h:147
virtual void taskOnStart(void)
called to start task
resumable state for zfasyncIO
Definition ZFThread_zfasyncIO.h:42
virtual void taskOnStop(void)
called to stop task
virtual void taskOnStart(void)
called to start task
virtual ZFOutput & output()
the impl
Definition ZFTaskUtil.h:184
virtual zfanyT< ZFAsyncIOResumable > const & resumable()
the impl
Definition ZFTaskUtil.h:190
virtual ZFListener & onProgress()
the impl
Definition ZFTaskUtil.h:188
virtual void objectOnInit(void)
override this to init your object
Definition ZFTaskUtil.h:194
virtual ZFInput & input()
the impl
Definition ZFTaskUtil.h:186
virtual void objectOnInit(const ZFListener &implOnStart, const ZFListener &implOnStop=zft_zfnull)
util constructor to attach custom impl to E_TaskOnStart and E_TaskOnStop
Definition ZFTaskUtil.h:198
virtual ZFListener & impl()
the impl
Definition ZFTaskUtil.h:61
virtual void objectOnInit(void)
override this to init your object
Definition ZFTaskUtil.h:65
virtual void taskOnStop(void)
called to stop task
virtual void taskOnStart(void)
called to start task
virtual void objectOnInit(const ZFListener &implOnStart, const ZFListener &implOnStop=zft_zfnull)
util constructor to attach custom impl to E_TaskOnStart and E_TaskOnStop
Definition ZFTaskUtil.h:69
general input callback
Definition ZFIOCallback_input.h:36
listener as ZFCallback, mostly used by ZFObject::observerNotify
Definition ZFObjectObserver.h:30
general output callback
Definition ZFIOCallback_output.h:37
virtual void objectOnInit(const ZFListener &implOnStart, const ZFListener &implOnStop=zft_zfnull)
util constructor to attach custom impl to E_TaskOnStart and E_TaskOnStop
Definition ZFTaskUtil.h:110
virtual void objectOnInit(void)
override this to init your object
Definition ZFTaskUtil.h:106
virtual ZFListener & impl()
the impl
Definition ZFTaskUtil.h:102
virtual void taskOnStop(void)
called to stop task
virtual void taskOnStart(void)
called to start task
virtual void objectOnInit(const ZFListener &implOnStart, const ZFListener &implOnStop=(zft_zfnull))
util constructor to attach custom impl to E_TaskOnStart and E_TaskOnStop
virtual void objectOnInit(void)
override this to init your object
Definition ZFTaskUtil.h:26
virtual zftimet & duration()
the wait duration
Definition ZFTaskUtil.h:22
virtual void taskOnStart(void)
called to start task
virtual void objectOnInit(const ZFListener &implOnStart, const ZFListener &implOnStop=zft_zfnull)
util constructor to attach custom impl to E_TaskOnStart and E_TaskOnStop
Definition ZFTaskUtil.h:30
virtual void taskOnStop(void)
called to stop task
see zfany
Definition zfany.h:113
type restrict version of zfauto
Definition zfautoFwd.h:108