Re-land: C++ readability review
[chromium-blink-merge.git] / remoting / protocol / client_video_dispatcher.h
bloba86142fa97977f42253fea33d68701095758df19
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.
5 #ifndef REMOTING_PROTOCOL_CLIENT_VIDEO_DISPATCHER_H_
6 #define REMOTING_PROTOCOL_CLIENT_VIDEO_DISPATCHER_H_
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/protobuf_message_parser.h"
13 namespace remoting {
14 namespace protocol {
16 class VideoStub;
18 class ClientVideoDispatcher : public ChannelDispatcherBase {
19 public:
20 explicit ClientVideoDispatcher(VideoStub* video_stub);
21 ~ClientVideoDispatcher() override;
23 private:
24 struct PendingFrame;
25 typedef std::list<PendingFrame> PendingFramesList;
27 void ProcessVideoPacket(scoped_ptr<VideoPacket> video_packet,
28 const base::Closure& done);
30 // Callback for VideoStub::ProcessVideoPacket().
31 void OnPacketDone(PendingFramesList::iterator pending_frame);
33 PendingFramesList pending_frames_;
35 VideoStub* video_stub_;
36 ProtobufMessageParser<VideoPacket> parser_;
38 DISALLOW_COPY_AND_ASSIGN(ClientVideoDispatcher);
41 } // namespace protocol
42 } // namespace remoting
44 #endif // REMOTING_PROTOCOL_CLIENT_VIDEO_DISPATCHER_H_