Home | History | Annotate | Download | only in protocol
      1 // Copyright 2014 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 "remoting/protocol/host_video_dispatcher.h"
      6 
      7 #include "base/bind.h"
      8 #include "net/socket/stream_socket.h"
      9 #include "remoting/base/constants.h"
     10 #include "remoting/proto/video.pb.h"
     11 #include "remoting/protocol/message_serialization.h"
     12 
     13 namespace remoting {
     14 namespace protocol {
     15 
     16 HostVideoDispatcher::HostVideoDispatcher()
     17     : ChannelDispatcherBase(kVideoChannelName) {
     18 }
     19 
     20 HostVideoDispatcher::~HostVideoDispatcher() {
     21 }
     22 
     23 void HostVideoDispatcher::OnInitialized() {
     24   // TODO(sergeyu): Provide WriteFailedCallback for the buffered writer.
     25   writer_.Init(channel(), BufferedSocketWriter::WriteFailedCallback());
     26 }
     27 
     28 void HostVideoDispatcher::ProcessVideoPacket(scoped_ptr<VideoPacket> packet,
     29                                              const base::Closure& done) {
     30   writer_.Write(SerializeAndFrameMessage(*packet), done);
     31 }
     32 
     33 }  // namespace protocol
     34 }  // namespace remoting
     35