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:
committed by
WebRTC LUCI CQ
parent
9e2f0c2e26
commit
c0ce454868
@ -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
|
||||
|
||||
Reference in New Issue
Block a user