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

Side by Side Diff: remoting/protocol/client_control_dispatcher.cc

Issue 841773005: Cleanup channel dispatchers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "remoting/protocol/client_control_dispatcher.h" 5 #include "remoting/protocol/client_control_dispatcher.h"
6 6
7 #include "base/bind_helpers.h" 7 #include "base/bind_helpers.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/callback_helpers.h" 9 #include "base/callback_helpers.h"
10 #include "base/message_loop/message_loop_proxy.h" 10 #include "base/message_loop/message_loop_proxy.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 } 54 }
55 55
56 return true; 56 return true;
57 } 57 }
58 58
59 } // namespace 59 } // namespace
60 60
61 ClientControlDispatcher::ClientControlDispatcher() 61 ClientControlDispatcher::ClientControlDispatcher()
62 : ChannelDispatcherBase(kControlChannelName), 62 : ChannelDispatcherBase(kControlChannelName),
63 client_stub_(nullptr), 63 client_stub_(nullptr),
64 clipboard_stub_(nullptr) { 64 clipboard_stub_(nullptr),
65 parser_(base::Bind(&ClientControlDispatcher::OnMessageReceived,
66 base::Unretained(this)),
67 reader()) {
65 } 68 }
66 69
67 ClientControlDispatcher::~ClientControlDispatcher() { 70 ClientControlDispatcher::~ClientControlDispatcher() {
68 writer_.Close();
69 }
70
71 void ClientControlDispatcher::OnInitialized() {
72 // TODO(garykac): Set write failed callback.
73 writer_.Init(channel(), BufferedSocketWriter::WriteFailedCallback());
74 reader_.Init(channel(), base::Bind(
75 &ClientControlDispatcher::OnMessageReceived, base::Unretained(this)));
76 } 71 }
77 72
78 void ClientControlDispatcher::InjectClipboardEvent( 73 void ClientControlDispatcher::InjectClipboardEvent(
79 const ClipboardEvent& event) { 74 const ClipboardEvent& event) {
80 ControlMessage message; 75 ControlMessage message;
81 message.mutable_clipboard_event()->CopyFrom(event); 76 message.mutable_clipboard_event()->CopyFrom(event);
82 writer_.Write(SerializeAndFrameMessage(message), base::Closure()); 77 writer()->Write(SerializeAndFrameMessage(message), base::Closure());
83 } 78 }
84 79
85 void ClientControlDispatcher::NotifyClientResolution( 80 void ClientControlDispatcher::NotifyClientResolution(
86 const ClientResolution& resolution) { 81 const ClientResolution& resolution) {
87 ControlMessage message; 82 ControlMessage message;
88 message.mutable_client_resolution()->CopyFrom(resolution); 83 message.mutable_client_resolution()->CopyFrom(resolution);
89 writer_.Write(SerializeAndFrameMessage(message), base::Closure()); 84 writer()->Write(SerializeAndFrameMessage(message), base::Closure());
90 } 85 }
91 86
92 void ClientControlDispatcher::ControlVideo(const VideoControl& video_control) { 87 void ClientControlDispatcher::ControlVideo(const VideoControl& video_control) {
93 ControlMessage message; 88 ControlMessage message;
94 message.mutable_video_control()->CopyFrom(video_control); 89 message.mutable_video_control()->CopyFrom(video_control);
95 writer_.Write(SerializeAndFrameMessage(message), base::Closure()); 90 writer()->Write(SerializeAndFrameMessage(message), base::Closure());
96 } 91 }
97 92
98 void ClientControlDispatcher::ControlAudio(const AudioControl& audio_control) { 93 void ClientControlDispatcher::ControlAudio(const AudioControl& audio_control) {
99 ControlMessage message; 94 ControlMessage message;
100 message.mutable_audio_control()->CopyFrom(audio_control); 95 message.mutable_audio_control()->CopyFrom(audio_control);
101 writer_.Write(SerializeAndFrameMessage(message), base::Closure()); 96 writer()->Write(SerializeAndFrameMessage(message), base::Closure());
102 } 97 }
103 98
104 void ClientControlDispatcher::SetCapabilities( 99 void ClientControlDispatcher::SetCapabilities(
105 const Capabilities& capabilities) { 100 const Capabilities& capabilities) {
106 ControlMessage message; 101 ControlMessage message;
107 message.mutable_capabilities()->CopyFrom(capabilities); 102 message.mutable_capabilities()->CopyFrom(capabilities);
108 writer_.Write(SerializeAndFrameMessage(message), base::Closure()); 103 writer()->Write(SerializeAndFrameMessage(message), base::Closure());
109 } 104 }
110 105
111 void ClientControlDispatcher::RequestPairing( 106 void ClientControlDispatcher::RequestPairing(
112 const PairingRequest& pairing_request) { 107 const PairingRequest& pairing_request) {
113 ControlMessage message; 108 ControlMessage message;
114 message.mutable_pairing_request()->CopyFrom(pairing_request); 109 message.mutable_pairing_request()->CopyFrom(pairing_request);
115 writer_.Write(SerializeAndFrameMessage(message), base::Closure()); 110 writer()->Write(SerializeAndFrameMessage(message), base::Closure());
116 } 111 }
117 112
118 void ClientControlDispatcher::DeliverClientMessage( 113 void ClientControlDispatcher::DeliverClientMessage(
119 const ExtensionMessage& message) { 114 const ExtensionMessage& message) {
120 ControlMessage control_message; 115 ControlMessage control_message;
121 control_message.mutable_extension_message()->CopyFrom(message); 116 control_message.mutable_extension_message()->CopyFrom(message);
122 writer_.Write(SerializeAndFrameMessage(control_message), base::Closure()); 117 writer()->Write(SerializeAndFrameMessage(control_message), base::Closure());
123 } 118 }
124 119
125 void ClientControlDispatcher::OnMessageReceived( 120 void ClientControlDispatcher::OnMessageReceived(
126 scoped_ptr<ControlMessage> message, const base::Closure& done_task) { 121 scoped_ptr<ControlMessage> message,
122 const base::Closure& done_task) {
127 DCHECK(client_stub_); 123 DCHECK(client_stub_);
128 DCHECK(clipboard_stub_); 124 DCHECK(clipboard_stub_);
129 base::ScopedClosureRunner done_runner(done_task); 125 base::ScopedClosureRunner done_runner(done_task);
130 126
131 if (message->has_clipboard_event()) { 127 if (message->has_clipboard_event()) {
132 clipboard_stub_->InjectClipboardEvent(message->clipboard_event()); 128 clipboard_stub_->InjectClipboardEvent(message->clipboard_event());
133 } else if (message->has_capabilities()) { 129 } else if (message->has_capabilities()) {
134 client_stub_->SetCapabilities(message->capabilities()); 130 client_stub_->SetCapabilities(message->capabilities());
135 } else if (message->has_cursor_shape()) { 131 } else if (message->has_cursor_shape()) {
136 if (CursorShapeIsValid(message->cursor_shape())) 132 if (CursorShapeIsValid(message->cursor_shape()))
137 client_stub_->SetCursorShape(message->cursor_shape()); 133 client_stub_->SetCursorShape(message->cursor_shape());
138 } else if (message->has_pairing_response()) { 134 } else if (message->has_pairing_response()) {
139 client_stub_->SetPairingResponse(message->pairing_response()); 135 client_stub_->SetPairingResponse(message->pairing_response());
140 } else if (message->has_extension_message()) { 136 } else if (message->has_extension_message()) {
141 client_stub_->DeliverHostMessage(message->extension_message()); 137 client_stub_->DeliverHostMessage(message->extension_message());
142 } else { 138 } else {
143 LOG(WARNING) << "Unknown control message received."; 139 LOG(WARNING) << "Unknown control message received.";
144 } 140 }
145 } 141 }
146 142
147 } // namespace protocol 143 } // namespace protocol
148 } // namespace remoting 144 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/protocol/client_control_dispatcher.h ('k') | remoting/protocol/client_event_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698