| 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);
 | 
|  };
 | 
|  
 | 
| 
 |