diff options
Diffstat (limited to 'cast/streaming/rpc_broker.cc')
-rw-r--r-- | cast/streaming/rpc_broker.cc | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/cast/streaming/rpc_broker.cc b/cast/streaming/rpc_broker.cc deleted file mode 100644 index 6e79a4dd..00000000 --- a/cast/streaming/rpc_broker.cc +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "cast/streaming/rpc_broker.h" - -#include <utility> - -#include "util/osp_logging.h" - -namespace openscreen { -namespace cast { - -namespace { - -std::ostream& operator<<(std::ostream& out, const RpcMessage& message) { - out << "handle=" << message.handle() << ", proc=" << message.proc(); - switch (message.rpc_oneof_case()) { - case RpcMessage::kIntegerValue: - return out << ", integer_value=" << message.integer_value(); - case RpcMessage::kInteger64Value: - return out << ", integer64_value=" << message.integer64_value(); - case RpcMessage::kDoubleValue: - return out << ", double_value=" << message.double_value(); - case RpcMessage::kBooleanValue: - return out << ", boolean_value=" << message.boolean_value(); - case RpcMessage::kStringValue: - return out << ", string_value=" << message.string_value(); - default: - return out << ", rpc_oneof=" << message.rpc_oneof_case(); - } - - OSP_NOTREACHED(); -} - -} // namespace - -RpcBroker::RpcBroker(SendMessageCallback send_message_cb) - : next_handle_(kFirstHandle), - send_message_cb_(std::move(send_message_cb)) {} - -RpcBroker::~RpcBroker() { - receive_callbacks_.clear(); -} - -RpcBroker::Handle RpcBroker::GetUniqueHandle() { - return next_handle_++; -} - -void RpcBroker::RegisterMessageReceiverCallback( - RpcBroker::Handle handle, - ReceiveMessageCallback callback) { - OSP_DCHECK(receive_callbacks_.find(handle) == receive_callbacks_.end()) - << "must deregister before re-registering"; - OSP_DVLOG << "registering handle: " << handle; - receive_callbacks_.emplace_back(handle, std::move(callback)); -} - -void RpcBroker::UnregisterMessageReceiverCallback(RpcBroker::Handle handle) { - OSP_DVLOG << "unregistering handle: " << handle; - receive_callbacks_.erase_key(handle); -} - -void RpcBroker::ProcessMessageFromRemote(const RpcMessage& message) { - OSP_DVLOG << "received message: " << message; - const auto entry = receive_callbacks_.find(message.handle()); - if (entry == receive_callbacks_.end()) { - OSP_DVLOG << "unregistered handle: " << message.handle(); - return; - } - entry->second(message); -} - -void RpcBroker::SendMessageToRemote(const RpcMessage& message) { - OSP_DVLOG << "sending message message: " << message; - std::vector<uint8_t> serialized_message(message.ByteSizeLong()); - OSP_CHECK(message.SerializeToArray(serialized_message.data(), - serialized_message.size())); - send_message_cb_(std::move(serialized_message)); -} - -bool RpcBroker::IsRegisteredForTesting(RpcBroker::Handle handle) { - return receive_callbacks_.find(handle) != receive_callbacks_.end(); -} - -} // namespace cast -} // namespace openscreen |