172c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com// Copyright 2014 The Chromium Authors. All rights reserved.
272c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com// Use of this source code is governed by a BSD-style license that can be
372c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com// found in the LICENSE file.
472c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com
572c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com#ifndef REMOTING_PROTOCOL_CLIENT_VIDEO_DISPATCHER_H_
672c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com#define REMOTING_PROTOCOL_CLIENT_VIDEO_DISPATCHER_H_
772c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com
872c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com#include "base/compiler_specific.h"
972c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com#include "remoting/proto/video.pb.h"
1072c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com#include "remoting/protocol/channel_dispatcher_base.h"
1172c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com#include "remoting/protocol/message_reader.h"
12b073d920c90bc95f6c216327acd321a4fc809bfascroggo@google.com
1372c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.comnamespace remoting {
1472c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.comnamespace protocol {
1572c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com
1672c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.comclass VideoStub;
1772c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com
1872c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.comclass ClientVideoDispatcher : public ChannelDispatcherBase {
1972c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com public:
2072c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com  explicit ClientVideoDispatcher(VideoStub* video_stub);
2172c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com  virtual ~ClientVideoDispatcher();
2272c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com
2372c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com protected:
2472c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com  // ChannelDispatcherBase overrides.
2572c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com  virtual void OnInitialized() OVERRIDE;
2672c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com
2772c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com private:
2872c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com  ProtobufMessageReader<VideoPacket> reader_;
2972c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com
3072c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com  // The stub to which VideoPackets are passed for processing.
3172c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com  VideoStub* video_stub_;
3272c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com
3372c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com  DISALLOW_COPY_AND_ASSIGN(ClientVideoDispatcher);
34b073d920c90bc95f6c216327acd321a4fc809bfascroggo@google.com};
3572c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com
3672c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com}  // namespace protocol
3772c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com}  // namespace remoting
3872c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com
3972c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com#endif  // REMOTING_PROTOCOL_CLIENT_VIDEO_DISPATCHER_H_
4072c9672ce274a3b6cb40800d66374edf25b157a3scroggo@google.com