Index: remoting/client/chromoting_client.h |
diff --git a/remoting/client/chromoting_client.h b/remoting/client/chromoting_client.h |
index e476f318de135230ad35111b3fd947823ab22f29..57e799c6ec8cd07a89be29e8152ed3fdba95311a 100644 |
--- a/remoting/client/chromoting_client.h |
+++ b/remoting/client/chromoting_client.h |
@@ -13,6 +13,7 @@ |
#include "remoting/client/host_connection.h" |
#include "remoting/client/client_config.h" |
#include "remoting/client/chromoting_view.h" |
+#include "remoting/protocol/video_stub.h" |
class MessageLoop; |
@@ -24,7 +25,9 @@ class InitClientMessage; |
class InputHandler; |
class RectangleUpdateDecoder; |
-class ChromotingClient : public HostConnection::HostEventCallback { |
+// TODO(sergeyu): Move VideoStub implementation to RectangleUpdateDecoder. |
+class ChromotingClient : public HostConnection::HostEventCallback, |
+ public VideoStub { |
public: |
// Objects passed in are not owned by this class. |
ChromotingClient(const ClientConfig& config, |
@@ -58,20 +61,31 @@ class ChromotingClient : public HostConnection::HostEventCallback { |
virtual void OnConnectionClosed(HostConnection* conn); |
virtual void OnConnectionFailed(HostConnection* conn); |
+ // VideoStub implementation. |
+ virtual void ProcessVideoPacket(const VideoPacket* packet, Task* done); |
+ |
private: |
+ struct QueuedVideoPacket { |
+ QueuedVideoPacket(const VideoPacket* packet, Task* done) |
+ : packet(packet), done(done) { |
+ } |
+ const VideoPacket* packet; |
+ Task* done; |
+ }; |
+ |
MessageLoop* message_loop(); |
// Convenience method for modifying the state on this object's message loop. |
void SetConnectionState(ConnectionState s); |
- // If a message is not being processed, dispatches a single message from the |
- // |received_messages_| queue. |
- void DispatchMessage(); |
+ // If a packet is not being processed, dispatches a single message from the |
+ // |received_packets_| queue. |
+ void DispatchPacket(); |
- void OnMessageDone(ChromotingHostMessage* msg); |
+ void OnPacketDone(); |
// Handles for chromotocol messages. |
- void InitClient(const InitClientMessage& msg, Task* done); |
+ void InitClient(const InitClientMessage& msg); |
// The following are not owned by this class. |
ClientConfig config_; |
@@ -86,15 +100,15 @@ class ChromotingClient : public HostConnection::HostEventCallback { |
ConnectionState state_; |
- // Contains all messages that have been received, but have not yet been |
+ // Contains all video packets that have been received, but have not yet been |
// processed. |
// |
// Used to serialize sending of messages to the client. |
- std::list<ChromotingHostMessage*> received_messages_; |
+ std::list<QueuedVideoPacket> received_packets_; |
// True if a message is being processed. Can be used to determine if it is |
// safe to dispatch another message. |
- bool message_being_processed_; |
+ bool packet_being_processed_; |
DISALLOW_COPY_AND_ASSIGN(ChromotingClient); |
}; |