Index: remoting/protocol/host_video_dispatcher.h |
diff --git a/remoting/protocol/host_video_dispatcher.h b/remoting/protocol/host_video_dispatcher.h |
index c1a957397c0ab6a018f12b8414df98a84b55bc9d..2c41bc567dcfce1806154f9e8ca6cd333f06cc5b 100644 |
--- a/remoting/protocol/host_video_dispatcher.h |
+++ b/remoting/protocol/host_video_dispatcher.h |
@@ -5,11 +5,13 @@ |
#ifndef REMOTING_PROTOCOL_HOST_VIDEO_DISPATCHER_H_ |
#define REMOTING_PROTOCOL_HOST_VIDEO_DISPATCHER_H_ |
+#include <deque> |
#include <string> |
#include "base/compiler_specific.h" |
-#include "remoting/protocol/buffered_socket_writer.h" |
+#include "remoting/proto/video.pb.h" |
#include "remoting/protocol/channel_dispatcher_base.h" |
+#include "remoting/protocol/protobuf_message_parser.h" |
#include "remoting/protocol/video_stub.h" |
namespace remoting { |
@@ -22,9 +24,25 @@ class HostVideoDispatcher : public ChannelDispatcherBase, public VideoStub { |
// VideoStub interface. |
void ProcessVideoPacket(scoped_ptr<VideoPacket> packet, |
- const base::Closure& done) override; |
+ const ProgressCallback& progress_callback) override; |
+ bool SupportsAcks() override; |
private: |
+ struct PendingFrame { |
+ PendingFrame(int frame_id, const ProgressCallback& progress_callback); |
+ |
+ int32_t frame_id; |
+ ProgressCallback progress_callback; |
+ }; |
+ |
+ void OnPacketSent(const ProgressCallback& progress_callback); |
+ void OnVideoAck(scoped_ptr<VideoAck> ack, const base::Closure& done); |
+ |
+ int32_t frame_id_; |
+ ProtobufMessageParser<VideoAck> parser_; |
+ |
+ std::deque<PendingFrame> pending_frames_; |
+ |
DISALLOW_COPY_AND_ASSIGN(HostVideoDispatcher); |
}; |