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}
This commit is contained in:
Sebastian Jansson 2020-01-23 10:00:33 +01:00 committed by Commit Bot
parent 3c7e4dd85f
commit 7aa2edf936
5 changed files with 30 additions and 16 deletions

View File

@ -941,7 +941,9 @@ if (rtc_include_tests) {
]
deps = [
":callfactory_api",
":time_controller",
"../call:call_interfaces",
"../test/time_controller",
]
}

View File

@ -12,6 +12,7 @@
#include <memory>
#include "call/call.h"
#include "test/time_controller/external_time_controller.h"
namespace webrtc {
@ -21,4 +22,22 @@ std::unique_ptr<TimeController> CreateTimeController(
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

View File

@ -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 @@ namespace webrtc {
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_

View File

@ -27,6 +27,7 @@ if (rtc_include_tests) {
"..:fileutils",
"..:test_support",
"../:video_test_common",
"../../api:create_time_controller",
"../../api:libjingle_peerconnection_api",
"../../api:network_emulation_manager_api",
"../../api:rtc_stats_api",
@ -37,7 +38,6 @@ if (rtc_include_tests) {
"../../api/task_queue:default_task_queue_factory",
"../../api/video_codecs:builtin_video_decoder_factory",
"../../api/video_codecs:builtin_video_encoder_factory",
"../../call:call_interfaces",
"../../media:rtc_audio_video",
"../../media:rtc_media_base",
"../../modules/audio_device:audio_device_impl",

View File

@ -17,9 +17,9 @@
#include "api/audio_codecs/builtin_audio_encoder_factory.h"
#include "api/rtc_event_log/rtc_event_log_factory.h"
#include "api/task_queue/default_task_queue_factory.h"
#include "api/test/create_time_controller.h"
#include "api/video_codecs/builtin_video_decoder_factory.h"
#include "api/video_codecs/builtin_video_encoder_factory.h"
#include "call/call.h"
#include "media/engine/webrtc_media_engine.h"
#include "modules/audio_device/include/test_audio_device.h"
#include "p2p/client/basic_port_allocator.h"
@ -114,19 +114,6 @@ class LambdaPeerConnectionObserver final : public PeerConnectionObserver {
PeerScenarioClient::CallbackHandlers* handlers_;
};
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_;
};
} // namespace
@ -175,7 +162,7 @@ PeerScenarioClient::PeerScenarioClient(
pcf_deps.signaling_thread = signaling_thread_;
pcf_deps.worker_thread = worker_thread_.get();
pcf_deps.call_factory =
std::make_unique<TimeControllerBasedCallFactory>(net->time_controller());
CreateTimeControllerBasedCallFactory(net->time_controller());
pcf_deps.task_queue_factory =
net->time_controller()->CreateTaskQueueFactory();
pcf_deps.event_log_factory =