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

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

Issue 1351673003: Replace readable with receiving where receiving means receiving anything (stun ping, response or da… (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Resync, rebase, and address comments. 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
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 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 58
59 // TODO(deadbeef): Unify with PeerConnectionInterface::IceConnectionState 59 // TODO(deadbeef): Unify with PeerConnectionInterface::IceConnectionState
60 // once /talk/ and /webrtc/ are combined, and also switch to ENUM_NAME naming 60 // once /talk/ and /webrtc/ are combined, and also switch to ENUM_NAME naming
61 // style. 61 // style.
62 enum IceGatheringState { 62 enum IceGatheringState {
63 kIceGatheringNew = 0, 63 kIceGatheringNew = 0,
64 kIceGatheringGathering, 64 kIceGatheringGathering,
65 kIceGatheringComplete, 65 kIceGatheringComplete,
66 }; 66 };
67 67
68 // For "writable", "readable", and "receiving", we need to differentiate between 68 // For "writable" and "receiving", we need to differentiate between
69 // none, all, and some. 69 // none, all, and some.
70 enum TransportState { 70 enum TransportState {
71 TRANSPORT_STATE_NONE = 0, 71 TRANSPORT_STATE_NONE = 0,
72 TRANSPORT_STATE_SOME, 72 TRANSPORT_STATE_SOME,
73 TRANSPORT_STATE_ALL 73 TRANSPORT_STATE_ALL
74 }; 74 };
75 75
76 // When checking transport state, we need to differentiate between 76 // When checking transport state, we need to differentiate between
77 // "readable", "writable", or "receiving" check. 77 // "writable" or "receiving" check.
78 enum TransportStateType { 78 enum TransportStateType {
79 TRANSPORT_READABLE_STATE = 0, 79 TRANSPORT_WRITABLE_STATE = 0,
80 TRANSPORT_WRITABLE_STATE,
81 TRANSPORT_RECEIVING_STATE 80 TRANSPORT_RECEIVING_STATE
82 }; 81 };
83 82
84 // Stats that we can return about the connections for a transport channel. 83 // Stats that we can return about the connections for a transport channel.
85 // TODO(hta): Rename to ConnectionStats 84 // TODO(hta): Rename to ConnectionStats
86 struct ConnectionInfo { 85 struct ConnectionInfo {
87 ConnectionInfo() 86 ConnectionInfo()
88 : best_connection(false), 87 : best_connection(false),
89 writable(false), 88 writable(false),
90 readable(false),
91 timeout(false), 89 timeout(false),
92 new_connection(false), 90 new_connection(false),
93 rtt(0), 91 rtt(0),
94 sent_total_bytes(0), 92 sent_total_bytes(0),
95 sent_bytes_second(0), 93 sent_bytes_second(0),
96 sent_discarded_packets(0), 94 sent_discarded_packets(0),
97 sent_total_packets(0), 95 sent_total_packets(0),
98 recv_total_bytes(0), 96 recv_total_bytes(0),
99 recv_bytes_second(0), 97 recv_bytes_second(0),
100 key(NULL) {} 98 key(NULL) {}
101 99
102 bool best_connection; // Is this the best connection we have? 100 bool best_connection; // Is this the best connection we have?
103 bool writable; // Has this connection received a STUN response? 101 bool writable; // Has this connection received a STUN response?
104 bool readable; // Has this connection received a STUN request? 102 bool receiving; // Has this connection received anything?
105 bool timeout; // Has this connection timed out? 103 bool timeout; // Has this connection timed out?
106 bool new_connection; // Is this a newly created connection? 104 bool new_connection; // Is this a newly created connection?
107 size_t rtt; // The STUN RTT for this connection. 105 size_t rtt; // The STUN RTT for this connection.
108 size_t sent_total_bytes; // Total bytes sent on this connection. 106 size_t sent_total_bytes; // Total bytes sent on this connection.
109 size_t sent_bytes_second; // Bps over the last measurement interval. 107 size_t sent_bytes_second; // Bps over the last measurement interval.
110 size_t sent_discarded_packets; // Number of outgoing packets discarded due to 108 size_t sent_discarded_packets; // Number of outgoing packets discarded due to
111 // socket errors. 109 // socket errors.
112 size_t sent_total_packets; // Number of total outgoing packets attempted for 110 size_t sent_total_packets; // Number of total outgoing packets attempted for
113 // sending. 111 // sending.
114 112
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 public: 149 public:
152 Transport(const std::string& name, PortAllocator* allocator); 150 Transport(const std::string& name, PortAllocator* allocator);
153 virtual ~Transport(); 151 virtual ~Transport();
154 152
155 // Returns the name of this transport. 153 // Returns the name of this transport.
156 const std::string& name() const { return name_; } 154 const std::string& name() const { return name_; }
157 155
158 // Returns the port allocator object for this transport. 156 // Returns the port allocator object for this transport.
159 PortAllocator* port_allocator() { return allocator_; } 157 PortAllocator* port_allocator() { return allocator_; }
160 158
161 // Returns the readable and states of this manager. These bits are the ORs 159 // Returns the states of this manager. These bits are the ORs
162 // of the corresponding bits on the managed channels. Each time one of these 160 // of the corresponding bits on the managed channels. Each time one of these
163 // states changes, a signal is raised. 161 // states changes, a signal is raised.
164 // TODO: Replace uses of readable() and writable() with 162 // TODO(honghaiz): Replace uses of writable() with any_channels_writable().
165 // any_channels_readable() and any_channels_writable().
166 bool readable() const { return any_channels_readable(); }
167 bool writable() const { return any_channels_writable(); } 163 bool writable() const { return any_channels_writable(); }
168 bool was_writable() const { return was_writable_; } 164 bool was_writable() const { return was_writable_; }
169 bool any_channels_readable() const {
170 return (readable_ == TRANSPORT_STATE_SOME ||
171 readable_ == TRANSPORT_STATE_ALL);
172 }
173 bool any_channels_writable() const { 165 bool any_channels_writable() const {
174 return (writable_ == TRANSPORT_STATE_SOME || 166 return (writable_ == TRANSPORT_STATE_SOME ||
175 writable_ == TRANSPORT_STATE_ALL); 167 writable_ == TRANSPORT_STATE_ALL);
176 } 168 }
177 bool all_channels_readable() const {
178 return (readable_ == TRANSPORT_STATE_ALL);
179 }
180 bool all_channels_writable() const { 169 bool all_channels_writable() const {
181 return (writable_ == TRANSPORT_STATE_ALL); 170 return (writable_ == TRANSPORT_STATE_ALL);
182 } 171 }
183 bool any_channel_receiving() const { 172 bool any_channel_receiving() const {
184 return (receiving_ == TRANSPORT_STATE_SOME || 173 return (receiving_ == TRANSPORT_STATE_SOME ||
185 receiving_ == TRANSPORT_STATE_ALL); 174 receiving_ == TRANSPORT_STATE_ALL);
186 } 175 }
187 bool ready_for_remote_candidates() const { 176 bool ready_for_remote_candidates() const {
188 return local_description_set_ && remote_description_set_; 177 return local_description_set_ && remote_description_set_;
189 } 178 }
190 179
191 bool AllChannelsCompleted() const; 180 bool AllChannelsCompleted() const;
192 bool AnyChannelFailed() const; 181 bool AnyChannelFailed() const;
193 182
194 IceGatheringState gathering_state() const { return gathering_state_; } 183 IceGatheringState gathering_state() const { return gathering_state_; }
195 184
196 sigslot::signal1<Transport*> SignalReadableState;
197 sigslot::signal1<Transport*> SignalWritableState; 185 sigslot::signal1<Transport*> SignalWritableState;
198 sigslot::signal1<Transport*> SignalReceivingState; 186 sigslot::signal1<Transport*> SignalReceivingState;
199 sigslot::signal1<Transport*> SignalCompleted; 187 sigslot::signal1<Transport*> SignalCompleted;
200 sigslot::signal1<Transport*> SignalFailed; 188 sigslot::signal1<Transport*> SignalFailed;
201 189
202 // Returns whether the client has requested the channels to connect. 190 // Returns whether the client has requested the channels to connect.
203 bool connect_requested() const { return connect_requested_; } 191 bool connect_requested() const { return connect_requested_; }
204 192
205 void SetIceRole(IceRole role); 193 void SetIceRole(IceRole role);
206 IceRole ice_role() const { return ice_role_; } 194 IceRole ice_role() const { return ice_role_; }
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 TransportChannelImpl* operator->() const { return impl_; } 340 TransportChannelImpl* operator->() const { return impl_; }
353 341
354 private: 342 private:
355 TransportChannelImpl* impl_; 343 TransportChannelImpl* impl_;
356 int ref_; 344 int ref_;
357 }; 345 };
358 346
359 // Candidate component => ChannelMapEntry 347 // Candidate component => ChannelMapEntry
360 typedef std::map<int, ChannelMapEntry> ChannelMap; 348 typedef std::map<int, ChannelMapEntry> ChannelMap;
361 349
362 // Called when the state of a channel changes. 350 // Called when the write state of a channel changes.
363 void OnChannelReadableState(TransportChannel* channel);
364 void OnChannelWritableState(TransportChannel* channel); 351 void OnChannelWritableState(TransportChannel* channel);
365 352
366 // Called when the receiving state of a channel changes. 353 // Called when the receiving state of a channel changes.
367 void OnChannelReceivingState(TransportChannel* channel); 354 void OnChannelReceivingState(TransportChannel* channel);
368 355
369 // Called when a channel starts finishes gathering candidates 356 // Called when a channel starts finishes gathering candidates
370 void OnChannelGatheringState(TransportChannelImpl* channel); 357 void OnChannelGatheringState(TransportChannelImpl* channel);
371 358
372 // Called when a candidate is ready from channel. 359 // Called when a candidate is ready from channel.
373 void OnChannelCandidateGathered(TransportChannelImpl* channel, 360 void OnChannelCandidateGathered(TransportChannelImpl* channel,
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 // provide them in multiples. 407 // provide them in multiples.
421 std::vector<Candidate> ready_candidates_; 408 std::vector<Candidate> ready_candidates_;
422 409
423 RTC_DISALLOW_COPY_AND_ASSIGN(Transport); 410 RTC_DISALLOW_COPY_AND_ASSIGN(Transport);
424 }; 411 };
425 412
426 413
427 } // namespace cricket 414 } // namespace cricket
428 415
429 #endif // WEBRTC_P2P_BASE_TRANSPORT_H_ 416 #endif // WEBRTC_P2P_BASE_TRANSPORT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698