Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(201)

Unified Diff: remoting/protocol/connection_to_client.h

Issue 4726003: Implement InputStub in the host side for chromoting (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/protocol/connection_to_client.h
diff --git a/remoting/protocol/connection_to_client.h b/remoting/protocol/connection_to_client.h
index 769b0a8fe51aa81e8aceb976f27be78bead1ec54..546db7628de5f4278bbcd86290c462d0855828a4 100644
--- a/remoting/protocol/connection_to_client.h
+++ b/remoting/protocol/connection_to_client.h
@@ -11,7 +11,6 @@
#include "base/message_loop.h"
#include "base/ref_counted.h"
#include "base/scoped_ptr.h"
-#include "remoting/protocol/message_reader.h"
#include "remoting/protocol/session.h"
#include "remoting/protocol/stream_writer.h"
#include "remoting/protocol/video_writer.h"
@@ -20,6 +19,9 @@ namespace remoting {
namespace protocol {
class ClientStub;
+class HostStub;
+class InputStub;
+class HostMessageDispatcher;
// This class represents a remote viewer connected to the chromoting host
// through a libjingle connection. A viewer object is responsible for sending
@@ -27,19 +29,12 @@ class ClientStub;
// responsible for receiving and parsing data from the remote viewer and
// delegating events to the event handler.
class ConnectionToClient :
- public base::RefCountedThreadSafe<ConnectionToClient> {
+ public base::RefCountedThreadSafe<ConnectionToClient> {
public:
class EventHandler {
public:
virtual ~EventHandler() {}
- // Handles an event received by the ConnectionToClient. Receiver will own
- // the ClientMessages in ClientMessageList and needs to delete them.
- // Note that the sender of messages will not reference messages
- // again so it is okay to clear |messages| in this method.
- virtual void HandleMessage(ConnectionToClient* connection,
- ChromotingClientMessage* message) = 0;
-
// Called when the network connection is opened.
virtual void OnConnectionOpened(ConnectionToClient* connection) = 0;
@@ -55,7 +50,9 @@ class ConnectionToClient :
// a libjingle channel, these events are delegated to |handler|.
// It is guranteed that |handler| is called only on the |message_loop|.
ConnectionToClient(MessageLoop* message_loop,
- EventHandler* handler);
+ EventHandler* handler,
+ HostStub* host_stub,
+ InputStub* input_stub);
virtual ~ConnectionToClient();
@@ -90,21 +87,14 @@ class ConnectionToClient :
// Callback for protocol Session.
void OnSessionStateChange(protocol::Session::State state);
- // Callback for MessageReader.
- void OnMessageReceived(ChromotingClientMessage* message);
-
// Process a libjingle state change event on the |loop_|.
void StateChangeTask(protocol::Session::State state);
- // Process a data buffer received from libjingle.
- void MessageReceivedTask(ChromotingClientMessage* message);
-
void OnClosed();
// The libjingle channel used to send and receive data from the remote client.
scoped_refptr<protocol::Session> session_;
- MessageReader event_reader_;
scoped_ptr<VideoWriter> video_writer_;
// ClientStub for sending messages to the client.
@@ -116,6 +106,15 @@ class ConnectionToClient :
// Event handler for handling events sent from this object.
EventHandler* handler_;
+ // HostStub for receiving control events from the client.
+ HostStub* host_stub_;
+
+ // InputStub for receiving input events from the client.
+ InputStub* input_stub_;
+
+ // Dispatcher for submitting messages to stubs.
+ scoped_ptr<HostMessageDispatcher> dispatcher_;
+
DISALLOW_COPY_AND_ASSIGN(ConnectionToClient);
};

Powered by Google App Engine
This is Rietveld 408576698