update WFDynamicTask

This commit is contained in:
XieHan
2020-11-23 00:08:20 +08:00
parent 4ecac779f5
commit caeeb47c01
2 changed files with 7 additions and 6 deletions
+2 -1
View File
@@ -95,6 +95,7 @@ using dns_callback_t = std::function<void (WFDNSTask *)>;
using WFEmptyTask = WFGenericTask;
using WFDynamicTask = WFGenericTask;
using dynamic_create_t = std::function<SubTask *(WFDynamicTask *)>;
class WFTaskFactory
{
@@ -223,7 +224,7 @@ public:
return new WFEmptyTask;
}
static WFDynamicTask *create_dynamic_task(std::function<SubTask *()> func);
static WFDynamicTask *create_dynamic_task(dynamic_create_t create);
};
template<class REQ, class RESP>
+5 -5
View File
@@ -111,24 +111,24 @@ class __WFDynamicTask : public WFDynamicTask
protected:
virtual void dispatch()
{
series_of(this)->push_front(this->create());
series_of(this)->push_front(this->create(this));
this->WFDynamicTask::dispatch();
}
protected:
std::function<SubTask *()> create;
std::function<SubTask *(WFDynamicTask *)> create;
public:
__WFDynamicTask(std::function<SubTask *()>&& func) :
__WFDynamicTask(std::function<SubTask *(WFDynamicTask *)>&& func) :
create(std::move(func))
{
}
};
inline WFDynamicTask *
WFTaskFactory::create_dynamic_task(std::function<SubTask *()> func)
WFTaskFactory::create_dynamic_task(dynamic_create_t create)
{
return new __WFDynamicTask(std::move(func));
return new __WFDynamicTask(std::move(create));
}
/**********WFComplexClientTask**********/