diff options
author | sergeyu <sergeyu@chromium.org> | 2015-01-10 13:44:09 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-01-10 21:44:59 +0000 |
commit | 203832d43af2d2c0cb92ca2a6ad3e59193c6836d (patch) | |
tree | 44cb36fdca1dcb557781260a676cf374ad0ff94b /remoting/protocol/client_control_dispatcher.cc | |
parent | f4f051fe183f2595bb09d6ddcc9da895460c4429 (diff) | |
download | chromium_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.cc | 30 |
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); |