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

Side by Side Diff: webrtc/p2p/base/transport.h

Issue 1336553003: Revert change which removes GICE (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Created 5 years, 3 months 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 unified diff | Download patch
« no previous file with comments | « webrtc/p2p/base/session.cc ('k') | webrtc/p2p/base/transport.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 const std::string& old_pwd, 135 const std::string& old_pwd,
136 const std::string& new_ufrag, 136 const std::string& new_ufrag,
137 const std::string& new_pwd); 137 const std::string& new_pwd);
138 138
139 class Transport : public rtc::MessageHandler, 139 class Transport : public rtc::MessageHandler,
140 public sigslot::has_slots<> { 140 public sigslot::has_slots<> {
141 public: 141 public:
142 Transport(rtc::Thread* signaling_thread, 142 Transport(rtc::Thread* signaling_thread,
143 rtc::Thread* worker_thread, 143 rtc::Thread* worker_thread,
144 const std::string& content_name, 144 const std::string& content_name,
145 const std::string& type,
145 PortAllocator* allocator); 146 PortAllocator* allocator);
146 virtual ~Transport(); 147 virtual ~Transport();
147 148
148 // Returns the signaling thread. The app talks to Transport on this thread. 149 // Returns the signaling thread. The app talks to Transport on this thread.
149 rtc::Thread* signaling_thread() const { return signaling_thread_; } 150 rtc::Thread* signaling_thread() const { return signaling_thread_; }
150 // Returns the worker thread. The actual networking is done on this thread. 151 // Returns the worker thread. The actual networking is done on this thread.
151 rtc::Thread* worker_thread() const { return worker_thread_; } 152 rtc::Thread* worker_thread() const { return worker_thread_; }
152 153
153 // Returns the content_name of this transport. 154 // Returns the content_name of this transport.
154 const std::string& content_name() const { return content_name_; } 155 const std::string& content_name() const { return content_name_; }
156 // Returns the type of this transport.
157 const std::string& type() const { return type_; }
155 158
156 // Returns the port allocator object for this transport. 159 // Returns the port allocator object for this transport.
157 PortAllocator* port_allocator() { return allocator_; } 160 PortAllocator* port_allocator() { return allocator_; }
158 161
159 // Returns the readable and states of this manager. These bits are the ORs 162 // Returns the readable and states of this manager. These bits are the ORs
160 // of the corresponding bits on the managed channels. Each time one of these 163 // of the corresponding bits on the managed channels. Each time one of these
161 // states changes, a signal is raised. 164 // states changes, a signal is raised.
162 // TODO: Replace uses of readable() and writable() with 165 // TODO: Replace uses of readable() and writable() with
163 // any_channels_readable() and any_channels_writable(). 166 // any_channels_readable() and any_channels_writable().
164 bool readable() const { return any_channels_readable(); } 167 bool readable() const { return any_channels_readable(); }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 // Must be called before applying local session description. 206 // Must be called before applying local session description.
204 void SetCertificate( 207 void SetCertificate(
205 const rtc::scoped_refptr<rtc::RTCCertificate>& certificate); 208 const rtc::scoped_refptr<rtc::RTCCertificate>& certificate);
206 209
207 // Get a copy of the local identity provided by SetIdentity. 210 // Get a copy of the local identity provided by SetIdentity.
208 bool GetCertificate(rtc::scoped_refptr<rtc::RTCCertificate>* certificate); 211 bool GetCertificate(rtc::scoped_refptr<rtc::RTCCertificate>* certificate);
209 212
210 // Get a copy of the remote certificate in use by the specified channel. 213 // Get a copy of the remote certificate in use by the specified channel.
211 bool GetRemoteSSLCertificate(rtc::SSLCertificate** cert); 214 bool GetRemoteSSLCertificate(rtc::SSLCertificate** cert);
212 215
216 TransportProtocol protocol() const { return protocol_; }
217
213 // Create, destroy, and lookup the channels of this type by their components. 218 // Create, destroy, and lookup the channels of this type by their components.
214 TransportChannelImpl* CreateChannel(int component); 219 TransportChannelImpl* CreateChannel(int component);
215 // Note: GetChannel may lead to race conditions, since the mutex is not held 220 // Note: GetChannel may lead to race conditions, since the mutex is not held
216 // after the pointer is returned. 221 // after the pointer is returned.
217 TransportChannelImpl* GetChannel(int component); 222 TransportChannelImpl* GetChannel(int component);
218 // Note: HasChannel does not lead to race conditions, unlike GetChannel. 223 // Note: HasChannel does not lead to race conditions, unlike GetChannel.
219 bool HasChannel(int component) { 224 bool HasChannel(int component) {
220 return (NULL != GetChannel(component)); 225 return (NULL != GetChannel(component));
221 } 226 }
222 bool HasChannels(); 227 bool HasChannels();
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 // Derived classes can override, but must call the base as well. 319 // Derived classes can override, but must call the base as well.
315 virtual bool ApplyLocalTransportDescription_w(TransportChannelImpl* channel, 320 virtual bool ApplyLocalTransportDescription_w(TransportChannelImpl* channel,
316 std::string* error_desc); 321 std::string* error_desc);
317 322
318 // Pushes down remote ice credentials from the remote description to the 323 // Pushes down remote ice credentials from the remote description to the
319 // transport channel. 324 // transport channel.
320 virtual bool ApplyRemoteTransportDescription_w(TransportChannelImpl* ch, 325 virtual bool ApplyRemoteTransportDescription_w(TransportChannelImpl* ch,
321 std::string* error_desc); 326 std::string* error_desc);
322 327
323 // Negotiates the transport parameters based on the current local and remote 328 // Negotiates the transport parameters based on the current local and remote
324 // transport description, such as the ICE role to use, and whether DTLS 329 // transport description, such at the version of ICE to use, and whether DTLS
325 // should be activated. 330 // should be activated.
326 // Derived classes can negotiate their specific parameters here, but must call 331 // Derived classes can negotiate their specific parameters here, but must call
327 // the base as well. 332 // the base as well.
328 virtual bool NegotiateTransportDescription_w(ContentAction local_role, 333 virtual bool NegotiateTransportDescription_w(ContentAction local_role,
329 std::string* error_desc); 334 std::string* error_desc);
330 335
331 // Pushes down the transport parameters obtained via negotiation. 336 // Pushes down the transport parameters obtained via negotiation.
332 // Derived classes can set their specific parameters here, but must call the 337 // Derived classes can set their specific parameters here, but must call the
333 // base as well. 338 // base as well.
334 virtual bool ApplyNegotiatedTransportDescription_w( 339 virtual bool ApplyNegotiatedTransportDescription_w(
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 bool GetRemoteSSLCertificate_w(rtc::SSLCertificate** cert); 445 bool GetRemoteSSLCertificate_w(rtc::SSLCertificate** cert);
441 446
442 void SetChannelReceivingTimeout_w(int timeout_ms); 447 void SetChannelReceivingTimeout_w(int timeout_ms);
443 448
444 // Sends SignalCompleted if we are now in that state. 449 // Sends SignalCompleted if we are now in that state.
445 void MaybeCompleted_w(); 450 void MaybeCompleted_w();
446 451
447 rtc::Thread* const signaling_thread_; 452 rtc::Thread* const signaling_thread_;
448 rtc::Thread* const worker_thread_; 453 rtc::Thread* const worker_thread_;
449 const std::string content_name_; 454 const std::string content_name_;
455 const std::string type_;
450 PortAllocator* const allocator_; 456 PortAllocator* const allocator_;
451 bool destroyed_; 457 bool destroyed_;
452 TransportState readable_; 458 TransportState readable_;
453 TransportState writable_; 459 TransportState writable_;
454 TransportState receiving_; 460 TransportState receiving_;
455 bool was_writable_; 461 bool was_writable_;
456 bool connect_requested_; 462 bool connect_requested_;
457 IceRole ice_role_; 463 IceRole ice_role_;
458 uint64 tiebreaker_; 464 uint64 tiebreaker_;
465 TransportProtocol protocol_;
459 IceMode remote_ice_mode_; 466 IceMode remote_ice_mode_;
460 int channel_receiving_timeout_; 467 int channel_receiving_timeout_;
461 rtc::scoped_ptr<TransportDescription> local_description_; 468 rtc::scoped_ptr<TransportDescription> local_description_;
462 rtc::scoped_ptr<TransportDescription> remote_description_; 469 rtc::scoped_ptr<TransportDescription> remote_description_;
463 470
464 // TODO(tommi): Make sure we only use this on the worker thread. 471 // TODO(tommi): Make sure we only use this on the worker thread.
465 ChannelMap channels_; 472 ChannelMap channels_;
466 // Buffers the ready_candidates so that SignalCanidatesReady can 473 // Buffers the ready_candidates so that SignalCanidatesReady can
467 // provide them in multiples. 474 // provide them in multiples.
468 std::vector<Candidate> ready_candidates_; 475 std::vector<Candidate> ready_candidates_;
469 // Protects changes to channels and messages 476 // Protects changes to channels and messages
470 rtc::CriticalSection crit_; 477 rtc::CriticalSection crit_;
471 478
472 DISALLOW_COPY_AND_ASSIGN(Transport); 479 DISALLOW_COPY_AND_ASSIGN(Transport);
473 }; 480 };
474 481
482 // Extract a TransportProtocol from a TransportDescription.
483 TransportProtocol TransportProtocolFromDescription(
484 const TransportDescription* desc);
475 485
476 } // namespace cricket 486 } // namespace cricket
477 487
478 #endif // WEBRTC_P2P_BASE_TRANSPORT_H_ 488 #endif // WEBRTC_P2P_BASE_TRANSPORT_H_
OLDNEW
« no previous file with comments | « webrtc/p2p/base/session.cc ('k') | webrtc/p2p/base/transport.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698