Adds CreateTaskQueueFactory to TimeController

Bug: webrtc:11255
Change-Id: I02bdc944c7081590f40a77b315f64c63adbc6ff8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166921
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30349}
diff --git a/api/test/time_controller.cc b/api/test/time_controller.cc
index 26fe69c..b3b2f46 100644
--- a/api/test/time_controller.cc
+++ b/api/test/time_controller.cc
@@ -10,6 +10,22 @@
 #include "api/test/time_controller.h"
 
 namespace webrtc {
+std::unique_ptr<TaskQueueFactory> TimeController::CreateTaskQueueFactory() {
+  class FactoryWrapper final : public TaskQueueFactory {
+   public:
+    explicit FactoryWrapper(TaskQueueFactory* inner_factory)
+        : inner_(inner_factory) {}
+    std::unique_ptr<TaskQueueBase, TaskQueueDeleter> CreateTaskQueue(
+        absl::string_view name,
+        Priority priority) const override {
+      return inner_->CreateTaskQueue(name, priority);
+    }
+
+   private:
+    TaskQueueFactory* const inner_;
+  };
+  return std::make_unique<FactoryWrapper>(GetTaskQueueFactory());
+}
 bool TimeController::Wait(const std::function<bool()>& done,
                           TimeDelta max_duration) {
   // Step size is chosen to be short enough to not significantly affect latency