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_CLIENT_VIDEO_DISPATCHER_H_
6#define REMOTING_PROTOCOL_CLIENT_VIDEO_DISPATCHER_H_
7
8#include "base/compiler_specific.h"
9#include "remoting/proto/video.pb.h"
10#include "remoting/protocol/channel_dispatcher_base.h"
11#include "remoting/protocol/message_reader.h"
12
13namespace remoting {
14namespace protocol {
15
16class VideoStub;
17
18class ClientVideoDispatcher : public ChannelDispatcherBase {
19 public:
20  explicit ClientVideoDispatcher(VideoStub* video_stub);
21  virtual ~ClientVideoDispatcher();
22
23 protected:
24  // ChannelDispatcherBase overrides.
25  virtual void OnInitialized() OVERRIDE;
26
27 private:
28  ProtobufMessageReader<VideoPacket> reader_;
29
30  // The stub to which VideoPackets are passed for processing.
31  VideoStub* video_stub_;
32
33  DISALLOW_COPY_AND_ASSIGN(ClientVideoDispatcher);
34};
35
36}  // namespace protocol
37}  // namespace remoting
38
39#endif  // REMOTING_PROTOCOL_CLIENT_VIDEO_DISPATCHER_H_
40