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#ifndef REMOTING_PROTOCOL_HOST_VIDEO_DISPATCHER_H_
6#define REMOTING_PROTOCOL_HOST_VIDEO_DISPATCHER_H_
7
8#include <string>
9
10#include "base/compiler_specific.h"
11#include "remoting/protocol/buffered_socket_writer.h"
12#include "remoting/protocol/channel_dispatcher_base.h"
13#include "remoting/protocol/video_stub.h"
14
15namespace remoting {
16namespace protocol {
17
18class HostVideoDispatcher : public ChannelDispatcherBase, public VideoStub {
19 public:
20  HostVideoDispatcher();
21  virtual ~HostVideoDispatcher();
22
23  // VideoStub interface.
24  virtual void ProcessVideoPacket(scoped_ptr<VideoPacket> packet,
25                                  const base::Closure& done) OVERRIDE;
26
27 protected:
28  // ChannelDispatcherBase overrides.
29  virtual void OnInitialized() OVERRIDE;
30
31 private:
32  BufferedSocketWriter writer_;
33
34  DISALLOW_COPY_AND_ASSIGN(HostVideoDispatcher);
35};
36
37}  // namespace protocol
38}  // namespace remoting
39
40#endif  // REMOTING_PROTOCOL_HOST_VIDEO_DISPATCHER_H_
41