Delete QueuedTask and ToQueuedTask as no longer needed

Bug: webrtc:14245
Change-Id: I4b36c8d6f0709202e01d22386644c20cad58450f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269403
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37718}
This commit is contained in:
Danil Chapovalov
2022-08-09 11:24:52 +02:00
committed by WebRTC LUCI CQ
parent 9e2f0c2e26
commit c0ce454868
11 changed files with 3 additions and 468 deletions

View File

@ -79,69 +79,3 @@ TaskQueueBase::CurrentTaskQueueSetter::~CurrentTaskQueueSetter() {
#else
#error Unsupported platform
#endif
// Functions to support transition from std::unique_ptr<QueuedTask>
// representation of a task to absl::AnyInvocable<void() &&> representation. In
// the base interface older and newer functions call each other. This way
// TaskQueue would work when classes derived from TaskQueueBase implements
// either old set of Post functions (before the transition) or new set of Post
// functions. Thus callers of the interface can be updated independently of all
// of the implementations of that TaskQueueBase interface.
// TODO(bugs.webrtc.org/14245): Delete these functions when transition is
// complete.
namespace webrtc {
namespace {
class Task : public QueuedTask {
public:
explicit Task(absl::AnyInvocable<void() &&> task) : task_(std::move(task)) {}
~Task() override = default;
bool Run() override {
std::move(task_)();
return true;
}
private:
absl::AnyInvocable<void() &&> task_;
};
std::unique_ptr<QueuedTask> ToLegacy(absl::AnyInvocable<void() &&> task) {
return std::make_unique<Task>(std::move(task));
}
absl::AnyInvocable<void() &&> FromLegacy(std::unique_ptr<QueuedTask> task) {
return [task = std::move(task)]() mutable {
if (!task->Run()) {
task.release();
}
};
}
} // namespace
void TaskQueueBase::PostTask(std::unique_ptr<QueuedTask> task) {
PostTask(FromLegacy(std::move(task)));
}
void TaskQueueBase::PostTask(absl::AnyInvocable<void() &&> task) {
PostTask(ToLegacy(std::move(task)));
}
void TaskQueueBase::PostDelayedTask(std::unique_ptr<QueuedTask> task,
uint32_t milliseconds) {
PostDelayedTask(FromLegacy(std::move(task)), TimeDelta::Millis(milliseconds));
}
void TaskQueueBase::PostDelayedTask(absl::AnyInvocable<void() &&> task,
TimeDelta delay) {
PostDelayedTask(ToLegacy(std::move(task)), delay.ms());
}
void TaskQueueBase::PostDelayedHighPrecisionTask(
absl::AnyInvocable<void() &&> task,
TimeDelta delay) {
PostDelayedHighPrecisionTask(ToLegacy(std::move(task)), delay.ms());
}
} // namespace webrtc