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/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_