summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/rtc_base/task_queue_for_test.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:35:49 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:35:49 +0000
commitd8bbc7858622b6d9c278469aab701ca0b609cddf (patch)
treeeff41dc61d9f714852212739e6b3738b82a2af87 /third_party/libwebrtc/rtc_base/task_queue_for_test.h
parentReleasing progress-linux version 125.0.3-1~progress7.99u1. (diff)
downloadfirefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.tar.xz
firefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.zip
Merging upstream version 126.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/libwebrtc/rtc_base/task_queue_for_test.h')
-rw-r--r--third_party/libwebrtc/rtc_base/task_queue_for_test.h41
1 files changed, 34 insertions, 7 deletions
diff --git a/third_party/libwebrtc/rtc_base/task_queue_for_test.h b/third_party/libwebrtc/rtc_base/task_queue_for_test.h
index 4c7f842abe..b54b1daefa 100644
--- a/third_party/libwebrtc/rtc_base/task_queue_for_test.h
+++ b/third_party/libwebrtc/rtc_base/task_queue_for_test.h
@@ -17,10 +17,9 @@
#include "absl/strings/string_view.h"
#include "api/function_view.h"
#include "api/task_queue/task_queue_base.h"
+#include "api/task_queue/task_queue_factory.h"
#include "rtc_base/checks.h"
#include "rtc_base/event.h"
-#include "rtc_base/task_queue.h"
-#include "rtc_base/thread_annotations.h"
namespace webrtc {
@@ -38,14 +37,39 @@ inline void SendTask(TaskQueueBase* task_queue,
/*warn_after=*/TimeDelta::Seconds(10)));
}
-class RTC_LOCKABLE TaskQueueForTest : public rtc::TaskQueue {
+class TaskQueueForTest {
public:
- using rtc::TaskQueue::TaskQueue;
- explicit TaskQueueForTest(absl::string_view name = "TestQueue",
- Priority priority = Priority::NORMAL);
+ explicit TaskQueueForTest(
+ std::unique_ptr<TaskQueueBase, TaskQueueDeleter> task_queue);
+ explicit TaskQueueForTest(
+ absl::string_view name = "TestQueue",
+ TaskQueueFactory::Priority priority = TaskQueueFactory::Priority::NORMAL);
TaskQueueForTest(const TaskQueueForTest&) = delete;
TaskQueueForTest& operator=(const TaskQueueForTest&) = delete;
- ~TaskQueueForTest() = default;
+ ~TaskQueueForTest();
+
+ bool IsCurrent() const { return impl_->IsCurrent(); }
+
+ // Returns non-owning pointer to the task queue implementation.
+ TaskQueueBase* Get() { return impl_.get(); }
+
+ void PostTask(
+ absl::AnyInvocable<void() &&> task,
+ const webrtc::Location& location = webrtc::Location::Current()) {
+ impl_->PostTask(std::move(task), location);
+ }
+ void PostDelayedTask(
+ absl::AnyInvocable<void() &&> task,
+ webrtc::TimeDelta delay,
+ const webrtc::Location& location = webrtc::Location::Current()) {
+ impl_->PostDelayedTask(std::move(task), delay, location);
+ }
+ void PostDelayedHighPrecisionTask(
+ absl::AnyInvocable<void() &&> task,
+ webrtc::TimeDelta delay,
+ const webrtc::Location& location = webrtc::Location::Current()) {
+ impl_->PostDelayedHighPrecisionTask(std::move(task), delay, location);
+ }
// A convenience, test-only method that blocks the current thread while
// a task executes on the task queue.
@@ -61,6 +85,9 @@ class RTC_LOCKABLE TaskQueueForTest : public rtc::TaskQueue {
// that all already posted tasks on the queue get executed.
SendTask([]() {});
}
+
+ private:
+ std::unique_ptr<TaskQueueBase, TaskQueueDeleter> impl_;
};
} // namespace webrtc