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_JINGLE_SESSION_H_ | 5 #ifndef REMOTING_PROTOCOL_JINGLE_SESSION_H_ |
6 #define REMOTING_PROTOCOL_JINGLE_SESSION_H_ | 6 #define REMOTING_PROTOCOL_JINGLE_SESSION_H_ |
7 | 7 |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 #include "base/task.h" | 9 #include "base/task.h" |
10 #include "crypto/rsa_private_key.h" | 10 #include "crypto/rsa_private_key.h" |
(...skipping 14 matching lines...) Expand all Loading... |
25 class Socket; | 25 class Socket; |
26 class StreamSocket; | 26 class StreamSocket; |
27 class X509Certificate; | 27 class X509Certificate; |
28 } // namespace net | 28 } // namespace net |
29 | 29 |
30 namespace remoting { | 30 namespace remoting { |
31 | 31 |
32 namespace protocol { | 32 namespace protocol { |
33 | 33 |
34 class JingleSessionManager; | 34 class JingleSessionManager; |
35 class SocketWrapper; | |
36 | 35 |
37 // Implements protocol::Session that work over libjingle session (the | 36 // Implements protocol::Session that work over libjingle session (the |
38 // cricket::Session object is passed to Init() method). Created | 37 // cricket::Session object is passed to Init() method). Created |
39 // by JingleSessionManager for incoming and outgoing connections. | 38 // by JingleSessionManager for incoming and outgoing connections. |
40 class JingleSession : public protocol::Session, | 39 class JingleSession : public protocol::Session, |
41 public sigslot::has_slots<> { | 40 public sigslot::has_slots<> { |
42 public: | 41 public: |
43 static const char kChromotingContentName[]; | 42 static const char kChromotingContentName[]; |
44 | 43 |
45 // Chromotocol Session interface. | 44 // Chromotocol Session interface. |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
187 // and runs the SSL protocol over it. Finally |foo_socket_wrapper_| takes | 186 // and runs the SSL protocol over it. Finally |foo_socket_wrapper_| takes |
188 // ownership of |foo_ssl_socket_|, wrapping it with a SocketWrapper to work | 187 // ownership of |foo_ssl_socket_|, wrapping it with a SocketWrapper to work |
189 // around issues with callers of the resulting Sockets continuing to access | 188 // around issues with callers of the resulting Sockets continuing to access |
190 // them after CloseInternal() has completed. | 189 // them after CloseInternal() has completed. |
191 // TODO(wez): Fix the tear-down issue and remove SocketWrapper. | 190 // TODO(wez): Fix the tear-down issue and remove SocketWrapper. |
192 | 191 |
193 cricket::TransportChannel* raw_control_channel_; | 192 cricket::TransportChannel* raw_control_channel_; |
194 scoped_ptr<jingle_glue::TransportChannelSocketAdapter> control_channel_; | 193 scoped_ptr<jingle_glue::TransportChannelSocketAdapter> control_channel_; |
195 scoped_ptr<net::StreamSocket> control_socket_; | 194 scoped_ptr<net::StreamSocket> control_socket_; |
196 scoped_ptr<net::StreamSocket> control_ssl_socket_; | 195 scoped_ptr<net::StreamSocket> control_ssl_socket_; |
197 scoped_ptr<SocketWrapper> control_socket_wrapper_; | |
198 | 196 |
199 cricket::TransportChannel* raw_event_channel_; | 197 cricket::TransportChannel* raw_event_channel_; |
200 scoped_ptr<jingle_glue::TransportChannelSocketAdapter> event_channel_; | 198 scoped_ptr<jingle_glue::TransportChannelSocketAdapter> event_channel_; |
201 scoped_ptr<net::StreamSocket> event_socket_; | 199 scoped_ptr<net::StreamSocket> event_socket_; |
202 scoped_ptr<net::StreamSocket> event_ssl_socket_; | 200 scoped_ptr<net::StreamSocket> event_ssl_socket_; |
203 scoped_ptr<SocketWrapper> event_socket_wrapper_; | |
204 | 201 |
205 cricket::TransportChannel* raw_video_channel_; | 202 cricket::TransportChannel* raw_video_channel_; |
206 scoped_ptr<jingle_glue::TransportChannelSocketAdapter> video_channel_; | 203 scoped_ptr<jingle_glue::TransportChannelSocketAdapter> video_channel_; |
207 scoped_ptr<net::StreamSocket> video_socket_; | 204 scoped_ptr<net::StreamSocket> video_socket_; |
208 scoped_ptr<net::StreamSocket> video_ssl_socket_; | 205 scoped_ptr<net::StreamSocket> video_ssl_socket_; |
209 scoped_ptr<SocketWrapper> video_socket_wrapper_; | |
210 | 206 |
211 // Used to verify the certificate received in SSLClientSocket. | 207 // Used to verify the certificate received in SSLClientSocket. |
212 scoped_ptr<net::CertVerifier> cert_verifier_; | 208 scoped_ptr<net::CertVerifier> cert_verifier_; |
213 | 209 |
214 cricket::TransportChannel* raw_video_rtp_channel_; | 210 cricket::TransportChannel* raw_video_rtp_channel_; |
215 scoped_ptr<jingle_glue::TransportChannelSocketAdapter> video_rtp_channel_; | 211 scoped_ptr<jingle_glue::TransportChannelSocketAdapter> video_rtp_channel_; |
216 cricket::TransportChannel* raw_video_rtcp_channel_; | 212 cricket::TransportChannel* raw_video_rtcp_channel_; |
217 scoped_ptr<jingle_glue::TransportChannelSocketAdapter> video_rtcp_channel_; | 213 scoped_ptr<jingle_glue::TransportChannelSocketAdapter> video_rtcp_channel_; |
218 | 214 |
219 // Callback called by the SSL layer. | 215 // Callback called by the SSL layer. |
220 net::CompletionCallbackImpl<JingleSession> connect_callback_; | 216 net::CompletionCallbackImpl<JingleSession> connect_callback_; |
221 net::CompletionCallbackImpl<JingleSession> ssl_connect_callback_; | 217 net::CompletionCallbackImpl<JingleSession> ssl_connect_callback_; |
222 | 218 |
223 ScopedRunnableMethodFactory<JingleSession> task_factory_; | 219 ScopedRunnableMethodFactory<JingleSession> task_factory_; |
224 | 220 |
225 DISALLOW_COPY_AND_ASSIGN(JingleSession); | 221 DISALLOW_COPY_AND_ASSIGN(JingleSession); |
226 }; | 222 }; |
227 | 223 |
228 } // namespace protocol | 224 } // namespace protocol |
229 | 225 |
230 } // namespace remoting | 226 } // namespace remoting |
231 | 227 |
232 #endif // REMOTING_PROTOCOL_JINGLE_SESSION_H_ | 228 #endif // REMOTING_PROTOCOL_JINGLE_SESSION_H_ |
OLD | NEW |