summaryrefslogtreecommitdiffstats
path: root/remoting/protocol/client_control_dispatcher.cc
diff options
context:
space:
mode:
authorsergeyu <sergeyu@chromium.org>2015-01-10 13:44:09 -0800
committerCommit bot <commit-bot@chromium.org>2015-01-10 21:44:59 +0000
commit203832d43af2d2c0cb92ca2a6ad3e59193c6836d (patch)
tree44cb36fdca1dcb557781260a676cf374ad0ff94b /remoting/protocol/client_control_dispatcher.cc
parentf4f051fe183f2595bb09d6ddcc9da895460c4429 (diff)
downloadchromium_src-203832d43af2d2c0cb92ca2a6ad3e59193c6836d.zip
chromium_src-203832d43af2d2c0cb92ca2a6ad3e59193c6836d.tar.gz
chromium_src-203832d43af2d2c0cb92ca2a6ad3e59193c6836d.tar.bz2
Cleanup channel dispatchers
Now ChannelDispatcherBase handles initialization of reader and writer, which makes all dispatcher classes simpler. ChannelDispatcherBase now can handle writer errors. Also renamed ProtobufMessageReader -> ProtobufMessageParser. Review URL: https://codereview.chromium.org/841773005 Cr-Commit-Position: refs/heads/master@{#310993}
Diffstat (limited to 'remoting/protocol/client_control_dispatcher.cc')
-rw-r--r--remoting/protocol/client_control_dispatcher.cc30
1 files changed, 13 insertions, 17 deletions
diff --git a/remoting/protocol/client_control_dispatcher.cc b/remoting/protocol/client_control_dispatcher.cc
index f08e6cf..d13e53f 100644
--- a/remoting/protocol/client_control_dispatcher.cc
+++ b/remoting/protocol/client_control_dispatcher.cc
@@ -61,69 +61,65 @@ bool CursorShapeIsValid(const CursorShapeInfo& cursor_shape) {
ClientControlDispatcher::ClientControlDispatcher()
: ChannelDispatcherBase(kControlChannelName),
client_stub_(nullptr),
- clipboard_stub_(nullptr) {
+ clipboard_stub_(nullptr),
+ parser_(base::Bind(&ClientControlDispatcher::OnMessageReceived,
+ base::Unretained(this)),
+ reader()) {
}
ClientControlDispatcher::~ClientControlDispatcher() {
- writer_.Close();
-}
-
-void ClientControlDispatcher::OnInitialized() {
- // TODO(garykac): Set write failed callback.
- writer_.Init(channel(), BufferedSocketWriter::WriteFailedCallback());
- reader_.Init(channel(), base::Bind(
- &ClientControlDispatcher::OnMessageReceived, base::Unretained(this)));
}
void ClientControlDispatcher::InjectClipboardEvent(
const ClipboardEvent& event) {
ControlMessage message;
message.mutable_clipboard_event()->CopyFrom(event);
- writer_.Write(SerializeAndFrameMessage(message), base::Closure());
+ writer()->Write(SerializeAndFrameMessage(message), base::Closure());
}
void ClientControlDispatcher::NotifyClientResolution(
const ClientResolution& resolution) {
ControlMessage message;
message.mutable_client_resolution()->CopyFrom(resolution);
- writer_.Write(SerializeAndFrameMessage(message), base::Closure());
+ writer()->Write(SerializeAndFrameMessage(message), base::Closure());
}
void ClientControlDispatcher::ControlVideo(const VideoControl& video_control) {
ControlMessage message;
message.mutable_video_control()->CopyFrom(video_control);
- writer_.Write(SerializeAndFrameMessage(message), base::Closure());
+ writer()->Write(SerializeAndFrameMessage(message), base::Closure());
}
void ClientControlDispatcher::ControlAudio(const AudioControl& audio_control) {
ControlMessage message;
message.mutable_audio_control()->CopyFrom(audio_control);
- writer_.Write(SerializeAndFrameMessage(message), base::Closure());
+ writer()->Write(SerializeAndFrameMessage(message), base::Closure());
}
void ClientControlDispatcher::SetCapabilities(
const Capabilities& capabilities) {
ControlMessage message;
message.mutable_capabilities()->CopyFrom(capabilities);
- writer_.Write(SerializeAndFrameMessage(message), base::Closure());
+ writer()->Write(SerializeAndFrameMessage(message), base::Closure());
}
void ClientControlDispatcher::RequestPairing(
const PairingRequest& pairing_request) {
ControlMessage message;
message.mutable_pairing_request()->CopyFrom(pairing_request);
- writer_.Write(SerializeAndFrameMessage(message), base::Closure());
+ writer()->Write(SerializeAndFrameMessage(message), base::Closure());
}
void ClientControlDispatcher::DeliverClientMessage(
const ExtensionMessage& message) {
ControlMessage control_message;
control_message.mutable_extension_message()->CopyFrom(message);
- writer_.Write(SerializeAndFrameMessage(control_message), base::Closure());
+ writer()->Write(SerializeAndFrameMessage(control_message), base::Closure());
}
void ClientControlDispatcher::OnMessageReceived(
- scoped_ptr<ControlMessage> message, const base::Closure& done_task) {
+ scoped_ptr<ControlMessage> message,
+ const base::Closure& done_task) {
DCHECK(client_stub_);
DCHECK(clipboard_stub_);
base::ScopedClosureRunner done_runner(done_task);