From 72a3116f92b0545bda3d133b0ced106e8be00914 Mon Sep 17 00:00:00 2001 From: Xie Han <63350856@qq.com> Date: Sun, 1 Sep 2024 04:04:10 +0800 Subject: [PATCH] Remove WFFacilities::ReplyGuard. --- docs/tutorial-05-http_proxy.md | 14 -------------- src/manager/WFFacilities.h | 22 ---------------------- 2 files changed, 36 deletions(-) diff --git a/docs/tutorial-05-http_proxy.md b/docs/tutorial-05-http_proxy.md index 862a1a02..4bee06ce 100644 --- a/docs/tutorial-05-http_proxy.md +++ b/docs/tutorial-05-http_proxy.md @@ -220,17 +220,3 @@ int process(WFHttpTask *server_task) series_of(server_task)->push_back(task); } ~~~ -但鉴于很多用户不想了解series用法,我们加入一个便利类ReplyGuard,让用户可以在任何时候回复请求,用法如下: -~~~cpp -int process(WFHttpTask *server_task) -{ - auto *guard = new WFFacilities::ReplyGuard(server_task); - WFHttpTask *task = WFTaskFactory::create_http_task(..., [guard, server_task]{WFHttpTask *task) { - *server_task->get_resp() = std::move(*task->get_resp()); - delete guard; // 此时server才会回复。 - }); - task->start(); -} -~~~ -WFFacilities::ReplyGuard用于阻止一个server task的回复,只有这个guard被析构,才会触发回复。 -使用ReplyGuard一般不影响原server task series的使用,用户依然可以push_back任务。但**避免再调用series的cancel()**。 diff --git a/src/manager/WFFacilities.h b/src/manager/WFFacilities.h index 9c5d3dca..c51a4552 100644 --- a/src/manager/WFFacilities.h +++ b/src/manager/WFFacilities.h @@ -78,28 +78,6 @@ public: WFFuture future; }; -public: - class ReplyGuard - { - public: - ReplyGuard(SubTask *server_task) - { - SeriesWork *series = series_of(server_task); - assert(series); - assert(server_task == series->get_last_task()); - this->cond = WFTaskFactory::create_conditional(server_task); - series->set_last_task(this->cond); - } - - ~ReplyGuard() - { - this->cond->signal(NULL); - } - - private: - WFConditional *cond; - }; - private: static void __timer_future_callback(WFTimerTask *task); static void __fio_future_callback(WFFileIOTask *task);