Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(416)

Side by Side Diff: media/remoting/rpc/rpc_broker.cc

Issue 2643253003: Media Remoting Clean-up: Less-redundant naming, style consistency, etc. (Closed)
Patch Set: REBASE Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « media/remoting/rpc/rpc_broker.h ('k') | media/remoting/rpc/rpc_broker_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "media/remoting/rpc/rpc_broker.h"
6
7 #include <utility>
8
9 #include "base/logging.h"
10 #include "media/base/bind_to_current_loop.h"
11
12 namespace media {
13 namespace remoting {
14
15 namespace {
16
17 std::ostream& operator<<(std::ostream& out, const pb::RpcMessage& message) {
18 out << "handle=" << message.handle() << ", proc=" << message.proc();
19 switch (message.rpc_oneof_case()) {
20 case pb::RpcMessage::kIntegerValue:
21 out << ", integer_value=" << message.integer_value();
22 break;
23 case pb::RpcMessage::kInteger64Value:
24 out << ", integer64_value=" << message.integer64_value();
25 break;
26 case pb::RpcMessage::kDoubleValue:
27 out << ", double_value=" << message.double_value();
28 break;
29 case pb::RpcMessage::kBooleanValue:
30 out << ", boolean_value=" << message.boolean_value();
31 break;
32 case pb::RpcMessage::kStringValue:
33 out << ", string_value=" << message.string_value();
34 break;
35 default:
36 out << ", rpc_oneof=" << message.rpc_oneof_case();
37 break;
38 }
39 return out;
40 }
41
42 } // namespace
43
44 RpcBroker::RpcBroker(const SendMessageCallback& send_message_cb)
45 : next_handle_(kReceiverHandle + 1),
46 send_message_cb_(send_message_cb),
47 weak_factory_(this) {}
48
49 RpcBroker::~RpcBroker() {
50 DCHECK(thread_checker_.CalledOnValidThread());
51 receive_callbacks_.clear();
52 }
53
54 int RpcBroker::GetUniqueHandle() {
55 DCHECK(thread_checker_.CalledOnValidThread());
56 return next_handle_++;
57 }
58
59 void RpcBroker::RegisterMessageReceiverCallback(
60 int handle,
61 const ReceiveMessageCallback& callback) {
62 VLOG(2) << __func__ << "handle=" << handle;
63 DCHECK(thread_checker_.CalledOnValidThread());
64 DCHECK(receive_callbacks_.find(handle) == receive_callbacks_.end());
65 receive_callbacks_[handle] = callback;
66 }
67
68 void RpcBroker::UnregisterMessageReceiverCallback(int handle) {
69 VLOG(2) << __func__ << " handle=" << handle;
70 DCHECK(thread_checker_.CalledOnValidThread());
71 receive_callbacks_.erase(handle);
72 }
73
74 void RpcBroker::ProcessMessageFromRemote(
75 std::unique_ptr<pb::RpcMessage> message) {
76 DCHECK(message);
77 DCHECK(thread_checker_.CalledOnValidThread());
78 VLOG(3) << __func__ << ": " << *message;
79 const auto entry = receive_callbacks_.find(message->handle());
80 if (entry == receive_callbacks_.end()) {
81 LOG(ERROR) << "unregistered handle: " << message->handle();
82 return;
83 }
84 entry->second.Run(std::move(message));
85 }
86
87 void RpcBroker::SendMessageToRemote(std::unique_ptr<pb::RpcMessage> message) {
88 DCHECK(thread_checker_.CalledOnValidThread());
89 DCHECK(message);
90 VLOG(3) << __func__ << ": " << *message;
91 std::unique_ptr<std::vector<uint8_t>> serialized_message(
92 new std::vector<uint8_t>(message->ByteSize()));
93 CHECK(message->SerializeToArray(serialized_message->data(),
94 serialized_message->size()));
95 send_message_cb_.Run(std::move(serialized_message));
96 }
97
98 base::WeakPtr<RpcBroker> RpcBroker::GetWeakPtr() {
99 return weak_factory_.GetWeakPtr();
100 }
101
102 void RpcBroker::SetMessageCallbackForTesting(
103 const SendMessageCallback& send_message_cb) {
104 DCHECK(thread_checker_.CalledOnValidThread());
105 send_message_cb_ = send_message_cb;
106 }
107
108 } // namespace remoting
109 } // namespace media
OLDNEW
« no previous file with comments | « media/remoting/rpc/rpc_broker.h ('k') | media/remoting/rpc/rpc_broker_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698