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

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

Issue 2386783002: Add UMA metrics for ICE regathering reasons. (Closed)
Patch Set: Add const to the pooled_sessions method. Created 4 years, 2 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/faketransportcontroller.h ('k') | webrtc/p2p/base/p2ptransportchannel.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 20 matching lines...) Expand all
31 #include "webrtc/p2p/base/candidatepairinterface.h" 31 #include "webrtc/p2p/base/candidatepairinterface.h"
32 #include "webrtc/p2p/base/p2ptransport.h" 32 #include "webrtc/p2p/base/p2ptransport.h"
33 #include "webrtc/p2p/base/portallocator.h" 33 #include "webrtc/p2p/base/portallocator.h"
34 #include "webrtc/p2p/base/portinterface.h" 34 #include "webrtc/p2p/base/portinterface.h"
35 #include "webrtc/p2p/base/transportchannelimpl.h" 35 #include "webrtc/p2p/base/transportchannelimpl.h"
36 #include "webrtc/base/asyncpacketsocket.h" 36 #include "webrtc/base/asyncpacketsocket.h"
37 #include "webrtc/base/sigslot.h" 37 #include "webrtc/base/sigslot.h"
38 38
39 namespace cricket { 39 namespace cricket {
40 40
41 // Enum for UMA metrics, used to record whether the channel is
42 // connected/connecting/disconnected when ICE restart happens.
43 enum class IceRestartState { CONNECTING, CONNECTED, DISCONNECTED, MAX_VALUE };
44
41 extern const int WEAK_PING_INTERVAL; 45 extern const int WEAK_PING_INTERVAL;
42 extern const int STABILIZING_WRITABLE_CONNECTION_PING_INTERVAL; 46 extern const int STABILIZING_WRITABLE_CONNECTION_PING_INTERVAL;
43 extern const int STABLE_WRITABLE_CONNECTION_PING_INTERVAL; 47 extern const int STABLE_WRITABLE_CONNECTION_PING_INTERVAL;
44 static const int MIN_PINGS_AT_WEAK_PING_INTERVAL = 3; 48 static const int MIN_PINGS_AT_WEAK_PING_INTERVAL = 3;
45 49
46 // Adds the port on which the candidate originated. 50 // Adds the port on which the candidate originated.
47 class RemoteCandidate : public Candidate { 51 class RemoteCandidate : public Candidate {
48 public: 52 public:
49 RemoteCandidate(const Candidate& c, PortInterface* origin_port) 53 RemoteCandidate(const Candidate& c, PortInterface* origin_port)
50 : Candidate(c), origin_port_(origin_port) {} 54 : Candidate(c), origin_port_(origin_port) {}
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 } 92 }
89 void AddRemoteCandidate(const Candidate& candidate) override; 93 void AddRemoteCandidate(const Candidate& candidate) override;
90 void RemoveRemoteCandidate(const Candidate& candidate) override; 94 void RemoveRemoteCandidate(const Candidate& candidate) override;
91 // Sets the parameters in IceConfig. We do not set them blindly. Instead, we 95 // Sets the parameters in IceConfig. We do not set them blindly. Instead, we
92 // only update the parameter if it is considered set in |config|. For example, 96 // only update the parameter if it is considered set in |config|. For example,
93 // a negative value of receiving_timeout will be considered "not set" and we 97 // a negative value of receiving_timeout will be considered "not set" and we
94 // will not use it to update the respective parameter in |config_|. 98 // will not use it to update the respective parameter in |config_|.
95 // TODO(deadbeef): Use rtc::Optional instead of negative values. 99 // TODO(deadbeef): Use rtc::Optional instead of negative values.
96 void SetIceConfig(const IceConfig& config) override; 100 void SetIceConfig(const IceConfig& config) override;
97 const IceConfig& config() const; 101 const IceConfig& config() const;
102 void SetMetricsObserver(webrtc::MetricsObserverInterface* observer) override;
98 103
99 // From TransportChannel: 104 // From TransportChannel:
100 int SendPacket(const char* data, 105 int SendPacket(const char* data,
101 size_t len, 106 size_t len,
102 const rtc::PacketOptions& options, 107 const rtc::PacketOptions& options,
103 int flags) override; 108 int flags) override;
104 int SetOption(rtc::Socket::Option opt, int value) override; 109 int SetOption(rtc::Socket::Option opt, int value) override;
105 bool GetOption(rtc::Socket::Option opt, int* value) override; 110 bool GetOption(rtc::Socket::Option opt, int* value) override;
106 int GetError() override { return error_; } 111 int GetError() override { return error_; }
107 bool GetStats(std::vector<ConnectionInfo>* stats) override; 112 bool GetStats(std::vector<ConnectionInfo>* stats) override;
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 int64_t last_ping_sent_ms_ = 0; 392 int64_t last_ping_sent_ms_ = 0;
388 int weak_ping_interval_ = WEAK_PING_INTERVAL; 393 int weak_ping_interval_ = WEAK_PING_INTERVAL;
389 TransportChannelState state_ = TransportChannelState::STATE_INIT; 394 TransportChannelState state_ = TransportChannelState::STATE_INIT;
390 IceConfig config_; 395 IceConfig config_;
391 int last_sent_packet_id_ = -1; // -1 indicates no packet was sent before. 396 int last_sent_packet_id_ = -1; // -1 indicates no packet was sent before.
392 bool started_pinging_ = false; 397 bool started_pinging_ = false;
393 // The value put in the "nomination" attribute for the next nominated 398 // The value put in the "nomination" attribute for the next nominated
394 // connection. A zero-value indicates the connection will not be nominated. 399 // connection. A zero-value indicates the connection will not be nominated.
395 uint32_t nomination_ = 0; 400 uint32_t nomination_ = 0;
396 401
402 webrtc::MetricsObserverInterface* metrics_observer_ = nullptr;
403
397 RTC_DISALLOW_COPY_AND_ASSIGN(P2PTransportChannel); 404 RTC_DISALLOW_COPY_AND_ASSIGN(P2PTransportChannel);
398 }; 405 };
399 406
400 } // namespace cricket 407 } // namespace cricket
401 408
402 #endif // WEBRTC_P2P_BASE_P2PTRANSPORTCHANNEL_H_ 409 #endif // WEBRTC_P2P_BASE_P2PTRANSPORTCHANNEL_H_
OLDNEW
« no previous file with comments | « webrtc/p2p/base/faketransportcontroller.h ('k') | webrtc/p2p/base/p2ptransportchannel.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698