Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef REMOTING_PROTOCOL_CONNECTION_TO_CLIENT_H_ | 5 #ifndef REMOTING_PROTOCOL_CONNECTION_TO_CLIENT_H_ |
| 6 #define REMOTING_PROTOCOL_CONNECTION_TO_CLIENT_H_ | 6 #define REMOTING_PROTOCOL_CONNECTION_TO_CLIENT_H_ |
| 7 | 7 |
| 8 #include <deque> | 8 #include <deque> |
| 9 #include <string> | |
| 9 #include <vector> | 10 #include <vector> |
| 10 | 11 |
| 11 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
| 12 #include "base/synchronization/lock.h" | 13 #include "base/synchronization/lock.h" |
| 13 #include "base/threading/non_thread_safe.h" | 14 #include "base/threading/non_thread_safe.h" |
| 14 #include "remoting/protocol/session.h" | 15 #include "remoting/protocol/session.h" |
| 15 #include "remoting/protocol/video_writer.h" | 16 #include "remoting/protocol/video_writer.h" |
| 16 | 17 |
| 18 namespace net { | |
| 19 class IPEndPoint; | |
| 20 } // namespace net | |
| 21 | |
| 17 namespace remoting { | 22 namespace remoting { |
| 18 namespace protocol { | 23 namespace protocol { |
| 19 | 24 |
| 20 class ClientStub; | 25 class ClientStub; |
| 21 class HostStub; | 26 class HostStub; |
| 22 class InputStub; | 27 class InputStub; |
| 23 class HostControlDispatcher; | 28 class HostControlDispatcher; |
| 24 class HostEventDispatcher; | 29 class HostEventDispatcher; |
| 25 | 30 |
| 26 // This class represents a remote viewer connection to the chromoting | 31 // This class represents a remote viewer connection to the chromoting |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 38 // Called when the network connection is closed. | 43 // Called when the network connection is closed. |
| 39 virtual void OnConnectionClosed(ConnectionToClient* connection) = 0; | 44 virtual void OnConnectionClosed(ConnectionToClient* connection) = 0; |
| 40 | 45 |
| 41 // Called when the network connection has failed. | 46 // Called when the network connection has failed. |
| 42 virtual void OnConnectionFailed(ConnectionToClient* connection, | 47 virtual void OnConnectionFailed(ConnectionToClient* connection, |
| 43 Session::Error error) = 0; | 48 Session::Error error) = 0; |
| 44 | 49 |
| 45 // Called when sequence number is updated. | 50 // Called when sequence number is updated. |
| 46 virtual void OnSequenceNumberUpdated(ConnectionToClient* connection, | 51 virtual void OnSequenceNumberUpdated(ConnectionToClient* connection, |
| 47 int64 sequence_number) = 0; | 52 int64 sequence_number) = 0; |
| 53 | |
| 54 // Called on notification of a route change event, which happens when a | |
| 55 // channel is connected. | |
| 56 virtual void OnClientIpEndPoint(ConnectionToClient* connection, | |
|
Sergey Ulanov
2012/01/25 01:56:48
Maybe call it OnClientIpAddress?
Lambros
2012/01/25 19:27:10
Done.
| |
| 57 const std::string& channel_name, | |
| 58 const net::IPEndPoint& end_point) = 0; | |
| 48 }; | 59 }; |
| 49 | 60 |
| 50 // Constructs a ConnectionToClient object for the |session|. Takes | 61 // Constructs a ConnectionToClient object for the |session|. Takes |
| 51 // ownership of |session|. | 62 // ownership of |session|. |
| 52 explicit ConnectionToClient(Session* session); | 63 explicit ConnectionToClient(Session* session); |
| 53 virtual ~ConnectionToClient(); | 64 virtual ~ConnectionToClient(); |
| 54 | 65 |
| 55 // Set |event_handler| for connection events. |event_handler| is | 66 // Set |event_handler| for connection events. Must be called once when this |
| 56 // guaranteed to be used only on the network thread. Must be called | 67 // object is created. |
| 57 // once when this object is created. | |
| 58 void SetEventHandler(EventHandler* event_handler); | 68 void SetEventHandler(EventHandler* event_handler); |
| 59 | 69 |
| 60 // Returns the connection in use. | 70 // Returns the connection in use. |
| 61 virtual Session* session(); | 71 virtual Session* session(); |
| 62 | 72 |
| 63 // Disconnect the client connection. | 73 // Disconnect the client connection. |
| 64 virtual void Disconnect(); | 74 virtual void Disconnect(); |
| 65 | 75 |
| 66 // Update the sequence number when received from the client. EventHandler | 76 // Update the sequence number when received from the client. EventHandler |
| 67 // will be called. | 77 // will be called. |
| 68 virtual void UpdateSequenceNumber(int64 sequence_number); | 78 virtual void UpdateSequenceNumber(int64 sequence_number); |
| 69 | 79 |
| 70 // Send encoded update stream data to the viewer. | 80 // Send encoded update stream data to the viewer. |
| 71 virtual VideoStub* video_stub(); | 81 virtual VideoStub* video_stub(); |
| 72 | 82 |
| 73 // Return pointer to ClientStub. | 83 // Return pointer to ClientStub. |
| 74 virtual ClientStub* client_stub(); | 84 virtual ClientStub* client_stub(); |
| 75 | 85 |
| 76 // These two setters should be called before Init(). | 86 // These two setters should be called before Init(). |
| 77 virtual void set_host_stub(HostStub* host_stub); | 87 virtual void set_host_stub(HostStub* host_stub); |
| 78 virtual void set_input_stub(InputStub* input_stub); | 88 virtual void set_input_stub(InputStub* input_stub); |
| 79 | 89 |
| 80 private: | 90 private: |
| 81 // Callback for protocol Session. | 91 // Callback for protocol Session. |
| 82 void OnSessionStateChange(Session::State state); | 92 void OnSessionStateChange(Session::State state); |
| 83 | 93 |
| 94 void OnSessionRouteChange(const std::string& channel_name, | |
| 95 const net::IPEndPoint& end_point); | |
| 96 | |
| 84 // Callback for channel initialization. | 97 // Callback for channel initialization. |
| 85 void OnChannelInitialized(bool successful); | 98 void OnChannelInitialized(bool successful); |
| 86 | 99 |
| 87 void NotifyIfChannelsReady(); | 100 void NotifyIfChannelsReady(); |
| 88 | 101 |
| 89 void CloseOnError(); | 102 void CloseOnError(); |
| 90 | 103 |
| 91 // Stops writing in the channels. | 104 // Stops writing in the channels. |
| 92 void CloseChannels(); | 105 void CloseChannels(); |
| 93 | 106 |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 105 scoped_ptr<HostEventDispatcher> event_dispatcher_; | 118 scoped_ptr<HostEventDispatcher> event_dispatcher_; |
| 106 scoped_ptr<VideoWriter> video_writer_; | 119 scoped_ptr<VideoWriter> video_writer_; |
| 107 | 120 |
| 108 DISALLOW_COPY_AND_ASSIGN(ConnectionToClient); | 121 DISALLOW_COPY_AND_ASSIGN(ConnectionToClient); |
| 109 }; | 122 }; |
| 110 | 123 |
| 111 } // namespace protocol | 124 } // namespace protocol |
| 112 } // namespace remoting | 125 } // namespace remoting |
| 113 | 126 |
| 114 #endif // REMOTING_PROTOCOL_CONNECTION_TO_CLIENT_H_ | 127 #endif // REMOTING_PROTOCOL_CONNECTION_TO_CLIENT_H_ |
| OLD | NEW |