diff options
author | Yuri Wiitala <miu@chromium.org> | 2020-11-30 08:13:53 -0800 |
---|---|---|
committer | Yuri Wiitala <miu@chromium.org> | 2020-11-30 20:03:13 +0000 |
commit | c6465ca683e686cd7f7dfa347e86451425e7af25 (patch) | |
tree | 71d7a43bb08d7d94d576e55c0e5ef0c0c5876040 /cast/sender | |
parent | 9be11f7d2b44dff83dc88dff054b967a43f319cc (diff) | |
download | openscreen-c6465ca683e686cd7f7dfa347e86451425e7af25.tar.gz |
Remote virtual connections [1/3]: Refactor VCRouter to extend VCManager.
This is a clean-up patch to simplify code structure. Before this patch,
all clients of VirtualConnectionRouter need to instantiate both a
VirtualConnectionManager and a VirtualConnectionRouter, and then pass
the former (by pointer) to the latter. After this patch, VCR extends
VCM, and clients need not worry about a VCM.
Bug: b/162542369
Change-Id: I0dff69819d9b5282a43643a2da0fe33e7bf0a3fd
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2546803
Reviewed-by: Brandon Tolsch <btolsch@chromium.org>
Diffstat (limited to 'cast/sender')
-rw-r--r-- | cast/sender/cast_app_discovery_service_impl_unittest.cc | 9 | ||||
-rw-r--r-- | cast/sender/cast_platform_client.cc | 12 | ||||
-rw-r--r-- | cast/sender/cast_platform_client.h | 5 | ||||
-rw-r--r-- | cast/sender/cast_platform_client_unittest.cc | 9 |
4 files changed, 15 insertions, 20 deletions
diff --git a/cast/sender/cast_app_discovery_service_impl_unittest.cc b/cast/sender/cast_app_discovery_service_impl_unittest.cc index 9f2f8793..a2eeb046 100644 --- a/cast/sender/cast_app_discovery_service_impl_unittest.cc +++ b/cast/sender/cast_app_discovery_service_impl_unittest.cc @@ -4,9 +4,10 @@ #include "cast/sender/cast_app_discovery_service_impl.h" +#include <utility> + #include "cast/common/channel/testing/fake_cast_socket.h" #include "cast/common/channel/testing/mock_socket_error_handler.h" -#include "cast/common/channel/virtual_connection_manager.h" #include "cast/common/channel/virtual_connection_router.h" #include "cast/common/public/service_info.h" #include "cast/sender/testing/test_helpers.h" @@ -79,12 +80,10 @@ class CastAppDiscoveryServiceImplTest : public ::testing::Test { FakeCastSocketPair fake_cast_socket_pair_; int32_t socket_id_; MockSocketErrorHandler mock_error_handler_; - VirtualConnectionManager manager_; - VirtualConnectionRouter router_{&manager_}; + VirtualConnectionRouter router_; FakeClock clock_{Clock::now()}; FakeTaskRunner task_runner_{&clock_}; - CastPlatformClient platform_client_{&router_, &manager_, &FakeClock::now, - &task_runner_}; + CastPlatformClient platform_client_{&router_, &FakeClock::now, &task_runner_}; CastAppDiscoveryServiceImpl app_discovery_service_{&platform_client_, &FakeClock::now}; diff --git a/cast/sender/cast_platform_client.cc b/cast/sender/cast_platform_client.cc index f57adc8b..c321201a 100644 --- a/cast/sender/cast_platform_client.cc +++ b/cast/sender/cast_platform_client.cc @@ -9,7 +9,6 @@ #include <utility> #include "absl/strings/str_cat.h" -#include "cast/common/channel/virtual_connection_manager.h" #include "cast/common/channel/virtual_connection_router.h" #include "cast/common/public/cast_socket.h" #include "cast/common/public/service_info.h" @@ -23,21 +22,20 @@ namespace cast { static constexpr std::chrono::seconds kRequestTimeout = std::chrono::seconds(5); CastPlatformClient::CastPlatformClient(VirtualConnectionRouter* router, - VirtualConnectionManager* manager, ClockNowFunctionPtr clock, TaskRunner* task_runner) : sender_id_(MakeUniqueSessionId("sender")), virtual_conn_router_(router), - virtual_conn_manager_(manager), clock_(clock), task_runner_(task_runner) { - OSP_DCHECK(virtual_conn_manager_); + OSP_DCHECK(virtual_conn_router_); OSP_DCHECK(clock_); OSP_DCHECK(task_runner_); virtual_conn_router_->AddHandlerForLocalId(sender_id_, this); } CastPlatformClient::~CastPlatformClient() { + virtual_conn_router_->RemoveConnectionsByLocalId(sender_id_); virtual_conn_router_->RemoveHandlerForLocalId(sender_id_); for (auto& pending_requests : pending_requests_by_device_id_) { @@ -73,9 +71,9 @@ absl::optional<int> CastPlatformClient::RequestAppAvailability( request_id, app_id, std::move(timeout), std::move(callback)}); VirtualConnection virtual_conn{sender_id_, kPlatformReceiverId, socket_id}; - if (!virtual_conn_manager_->GetConnectionData(virtual_conn)) { - virtual_conn_manager_->AddConnection(virtual_conn, - VirtualConnection::AssociatedData{}); + if (!virtual_conn_router_->GetConnectionData(virtual_conn)) { + virtual_conn_router_->AddConnection(virtual_conn, + VirtualConnection::AssociatedData{}); } virtual_conn_router_->Send(std::move(virtual_conn), diff --git a/cast/sender/cast_platform_client.h b/cast/sender/cast_platform_client.h index 41ad7fc7..8ea9a99a 100644 --- a/cast/sender/cast_platform_client.h +++ b/cast/sender/cast_platform_client.h @@ -7,7 +7,9 @@ #include <functional> #include <map> +#include <memory> #include <string> +#include <vector> #include "absl/types/optional.h" #include "cast/common/channel/cast_message_handler.h" @@ -19,7 +21,6 @@ namespace openscreen { namespace cast { struct ServiceInfo; -class VirtualConnectionManager; class VirtualConnectionRouter; // This class handles Cast messages that generally relate to the "platform", in @@ -35,7 +36,6 @@ class CastPlatformClient final : public CastMessageHandler { std::function<void(const std::string& app_id, AppAvailabilityResult)>; CastPlatformClient(VirtualConnectionRouter* router, - VirtualConnectionManager* manager, ClockNowFunctionPtr clock, TaskRunner* task_runner); ~CastPlatformClient() override; @@ -82,7 +82,6 @@ class CastPlatformClient final : public CastMessageHandler { const std::string sender_id_; VirtualConnectionRouter* const virtual_conn_router_; - VirtualConnectionManager* const virtual_conn_manager_; std::map<std::string /* device_id */, int> socket_id_by_device_id_; std::map<std::string /* device_id */, PendingRequests> pending_requests_by_device_id_; diff --git a/cast/sender/cast_platform_client_unittest.cc b/cast/sender/cast_platform_client_unittest.cc index eaaf5c6e..ae721a15 100644 --- a/cast/sender/cast_platform_client_unittest.cc +++ b/cast/sender/cast_platform_client_unittest.cc @@ -4,9 +4,10 @@ #include "cast/sender/cast_platform_client.h" +#include <utility> + #include "cast/common/channel/testing/fake_cast_socket.h" #include "cast/common/channel/testing/mock_socket_error_handler.h" -#include "cast/common/channel/virtual_connection_manager.h" #include "cast/common/channel/virtual_connection_router.h" #include "cast/common/public/service_info.h" #include "cast/sender/testing/test_helpers.h" @@ -46,12 +47,10 @@ class CastPlatformClientTest : public ::testing::Test { FakeCastSocketPair fake_cast_socket_pair_; CastSocket* socket_ = nullptr; MockSocketErrorHandler mock_error_handler_; - VirtualConnectionManager manager_; - VirtualConnectionRouter router_{&manager_}; + VirtualConnectionRouter router_; FakeClock clock_{Clock::now()}; FakeTaskRunner task_runner_{&clock_}; - CastPlatformClient platform_client_{&router_, &manager_, &FakeClock::now, - &task_runner_}; + CastPlatformClient platform_client_{&router_, &FakeClock::now, &task_runner_}; ServiceInfo receiver_; }; |