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