Adds CreateTimeControllerBasedCallFactory.
Bug: webrtc:11255
Change-Id: I9614823761ff5d2eb4fe03342f255a81087b6449
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166960
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30358}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index d95f749..860ac36 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -941,7 +941,9 @@
]
deps = [
+ ":callfactory_api",
":time_controller",
+ "../call:call_interfaces",
"../test/time_controller",
]
}
diff --git a/api/test/create_time_controller.cc b/api/test/create_time_controller.cc
index 1d6f24e..09682bd 100644
--- a/api/test/create_time_controller.cc
+++ b/api/test/create_time_controller.cc
@@ -12,6 +12,7 @@
#include <memory>
+#include "call/call.h"
#include "test/time_controller/external_time_controller.h"
namespace webrtc {
@@ -21,4 +22,22 @@
return std::make_unique<ExternalTimeController>(alarm);
}
+std::unique_ptr<CallFactoryInterface> CreateTimeControllerBasedCallFactory(
+ TimeController* time_controller) {
+ class TimeControllerBasedCallFactory : public CallFactoryInterface {
+ public:
+ explicit TimeControllerBasedCallFactory(TimeController* time_controller)
+ : time_controller_(time_controller) {}
+ Call* CreateCall(const Call::Config& config) override {
+ return Call::Create(config, time_controller_->GetClock(),
+ time_controller_->CreateProcessThread("CallModules"),
+ time_controller_->CreateProcessThread("Pacer"));
+ }
+
+ private:
+ TimeController* time_controller_;
+ };
+ return std::make_unique<TimeControllerBasedCallFactory>(time_controller);
+}
+
} // namespace webrtc
diff --git a/api/test/create_time_controller.h b/api/test/create_time_controller.h
index 9c5b19b..f4bd3f2 100644
--- a/api/test/create_time_controller.h
+++ b/api/test/create_time_controller.h
@@ -12,6 +12,7 @@
#include <memory>
+#include "api/call/call_factory_interface.h"
#include "api/test/time_controller.h"
namespace webrtc {
@@ -19,6 +20,11 @@
std::unique_ptr<TimeController> CreateTimeController(
ControlledAlarmClock* alarm);
+// This is creates a call factory that creates Call instances that are backed by
+// a time controller.
+std::unique_ptr<CallFactoryInterface> CreateTimeControllerBasedCallFactory(
+ TimeController* time_controller);
+
} // namespace webrtc
#endif // API_TEST_CREATE_TIME_CONTROLLER_H_