Switch kStatsValueName* constants to be enums instead of char*.
This is to guard against potentially assigning a value name to an incorrect value, non-static string or otherwise assume they can be treated as strings.
R=perkj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/26359004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7884 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/talk/app/webrtc/java/jni/peerconnection_jni.cc b/talk/app/webrtc/java/jni/peerconnection_jni.cc
index 43faa9c..cb86877b 100644
--- a/talk/app/webrtc/java/jni/peerconnection_jni.cc
+++ b/talk/app/webrtc/java/jni/peerconnection_jni.cc
@@ -1022,7 +1022,9 @@
for (int i = 0; i < values.size(); ++i) {
ScopedLocalRefFrame local_ref_frame(jni);
const StatsReport::Value& value = values[i];
- jstring j_name = JavaStringFromStdString(jni, value.name);
+ // Should we use the '.name' enum value here instead of converting the
+ // name to a string?
+ jstring j_name = JavaStringFromStdString(jni, value.display_name());
jstring j_value = JavaStringFromStdString(jni, value.value);
jobject j_element_value =
jni->NewObject(*j_value_class_, j_value_ctor_, j_name, j_value);
diff --git a/talk/app/webrtc/statstypes.cc b/talk/app/webrtc/statstypes.cc
index 51838ac..8547520 100644
--- a/talk/app/webrtc/statstypes.cc
+++ b/talk/app/webrtc/statstypes.cc
@@ -29,148 +29,6 @@
namespace webrtc {
-// The items below are in alphabetical order.
-const char StatsReport::kStatsValueNameActiveConnection[] =
- "googActiveConnection";
-const char StatsReport::kStatsValueNameActualEncBitrate[] =
- "googActualEncBitrate";
-const char StatsReport::kStatsValueNameAudioOutputLevel[] = "audioOutputLevel";
-const char StatsReport::kStatsValueNameAudioInputLevel[] = "audioInputLevel";
-const char StatsReport::kStatsValueNameAvailableReceiveBandwidth[] =
- "googAvailableReceiveBandwidth";
-const char StatsReport::kStatsValueNameAvailableSendBandwidth[] =
- "googAvailableSendBandwidth";
-const char StatsReport::kStatsValueNameAvgEncodeMs[] = "googAvgEncodeMs";
-const char StatsReport::kStatsValueNameBucketDelay[] = "googBucketDelay";
-const char StatsReport::kStatsValueNameBytesReceived[] = "bytesReceived";
-const char StatsReport::kStatsValueNameBytesSent[] = "bytesSent";
-const char StatsReport::kStatsValueNameBandwidthLimitedResolution[] =
- "googBandwidthLimitedResolution";
-const char StatsReport::kStatsValueNameCaptureJitterMs[] =
- "googCaptureJitterMs";
-const char StatsReport::kStatsValueNameCaptureQueueDelayMsPerS[] =
- "googCaptureQueueDelayMsPerS";
-const char StatsReport::kStatsValueNameChannelId[] = "googChannelId";
-const char StatsReport::kStatsValueNameCodecName[] = "googCodecName";
-const char StatsReport::kStatsValueNameComponent[] = "googComponent";
-const char StatsReport::kStatsValueNameContentName[] = "googContentName";
-const char StatsReport::kStatsValueNameCpuLimitedResolution[] =
- "googCpuLimitedResolution";
-const char StatsReport::kStatsValueNameDecodingCTSG[] =
- "googDecodingCTSG";
-const char StatsReport::kStatsValueNameDecodingCTN[] =
- "googDecodingCTN";
-const char StatsReport::kStatsValueNameDecodingNormal[] =
- "googDecodingNormal";
-const char StatsReport::kStatsValueNameDecodingPLC[] =
- "googDecodingPLC";
-const char StatsReport::kStatsValueNameDecodingCNG[] =
- "googDecodingCNG";
-const char StatsReport::kStatsValueNameDecodingPLCCNG[] =
- "googDecodingPLCCNG";
-const char StatsReport::kStatsValueNameDer[] = "googDerBase64";
-// Echo metrics from the audio processing module.
-const char StatsReport::kStatsValueNameEchoCancellationQualityMin[] =
- "googEchoCancellationQualityMin";
-const char StatsReport::kStatsValueNameEchoDelayMedian[] =
- "googEchoCancellationEchoDelayMedian";
-const char StatsReport::kStatsValueNameEchoDelayStdDev[] =
- "googEchoCancellationEchoDelayStdDev";
-const char StatsReport::kStatsValueNameEchoReturnLoss[] =
- "googEchoCancellationReturnLoss";
-const char StatsReport::kStatsValueNameEchoReturnLossEnhancement[] =
- "googEchoCancellationReturnLossEnhancement";
-
-const char StatsReport::kStatsValueNameEncodeUsagePercent[] =
- "googEncodeUsagePercent";
-const char StatsReport::kStatsValueNameExpandRate[] = "googExpandRate";
-const char StatsReport::kStatsValueNameFingerprint[] = "googFingerprint";
-const char StatsReport::kStatsValueNameFingerprintAlgorithm[] =
- "googFingerprintAlgorithm";
-const char StatsReport::kStatsValueNameFirsReceived[] = "googFirsReceived";
-const char StatsReport::kStatsValueNameFirsSent[] = "googFirsSent";
-const char StatsReport::kStatsValueNameFrameHeightInput[] =
- "googFrameHeightInput";
-const char StatsReport::kStatsValueNameFrameHeightReceived[] =
- "googFrameHeightReceived";
-const char StatsReport::kStatsValueNameFrameHeightSent[] =
- "googFrameHeightSent";
-const char StatsReport::kStatsValueNameFrameRateReceived[] =
- "googFrameRateReceived";
-const char StatsReport::kStatsValueNameFrameRateDecoded[] =
- "googFrameRateDecoded";
-const char StatsReport::kStatsValueNameFrameRateOutput[] =
- "googFrameRateOutput";
-const char StatsReport::kStatsValueNameDecodeMs[] = "googDecodeMs";
-const char StatsReport::kStatsValueNameMaxDecodeMs[] = "googMaxDecodeMs";
-const char StatsReport::kStatsValueNameCurrentDelayMs[] = "googCurrentDelayMs";
-const char StatsReport::kStatsValueNameTargetDelayMs[] = "googTargetDelayMs";
-const char StatsReport::kStatsValueNameJitterBufferMs[] = "googJitterBufferMs";
-const char StatsReport::kStatsValueNameMinPlayoutDelayMs[] =
- "googMinPlayoutDelayMs";
-const char StatsReport::kStatsValueNameRenderDelayMs[] = "googRenderDelayMs";
-
-const char StatsReport::kStatsValueNameCaptureStartNtpTimeMs[] =
- "googCaptureStartNtpTimeMs";
-
-const char StatsReport::kStatsValueNameFrameRateInput[] = "googFrameRateInput";
-const char StatsReport::kStatsValueNameFrameRateSent[] = "googFrameRateSent";
-const char StatsReport::kStatsValueNameFrameWidthInput[] =
- "googFrameWidthInput";
-const char StatsReport::kStatsValueNameFrameWidthReceived[] =
- "googFrameWidthReceived";
-const char StatsReport::kStatsValueNameFrameWidthSent[] = "googFrameWidthSent";
-const char StatsReport::kStatsValueNameInitiator[] = "googInitiator";
-const char StatsReport::kStatsValueNameIssuerId[] = "googIssuerId";
-const char StatsReport::kStatsValueNameJitterReceived[] = "googJitterReceived";
-const char StatsReport::kStatsValueNameLocalAddress[] = "googLocalAddress";
-const char StatsReport::kStatsValueNameLocalCandidateType[] =
- "googLocalCandidateType";
-const char StatsReport::kStatsValueNameLocalCertificateId[] =
- "googLocalCertificateId";
-const char StatsReport::kStatsValueNameAdaptationChanges[] =
- "googAdaptationChanges";
-const char StatsReport::kStatsValueNameNacksReceived[] = "googNacksReceived";
-const char StatsReport::kStatsValueNameNacksSent[] = "googNacksSent";
-const char StatsReport::kStatsValueNamePlisReceived[] = "googPlisReceived";
-const char StatsReport::kStatsValueNamePlisSent[] = "googPlisSent";
-const char StatsReport::kStatsValueNamePacketsReceived[] = "packetsReceived";
-const char StatsReport::kStatsValueNamePacketsSent[] = "packetsSent";
-const char StatsReport::kStatsValueNamePacketsLost[] = "packetsLost";
-const char StatsReport::kStatsValueNamePreferredJitterBufferMs[] =
- "googPreferredJitterBufferMs";
-const char StatsReport::kStatsValueNameReadable[] = "googReadable";
-const char StatsReport::kStatsValueNameRecvPacketGroupArrivalTimeDebug[] =
- "googReceivedPacketGroupArrivalTimeDebug";
-const char StatsReport::kStatsValueNameRecvPacketGroupPropagationDeltaDebug[] =
- "googReceivedPacketGroupPropagationDeltaDebug";
-const char
-StatsReport::kStatsValueNameRecvPacketGroupPropagationDeltaSumDebug[] =
- "googReceivedPacketGroupPropagationDeltaSumDebug";
-const char StatsReport::kStatsValueNameRemoteAddress[] = "googRemoteAddress";
-const char StatsReport::kStatsValueNameRemoteCandidateType[] =
- "googRemoteCandidateType";
-const char StatsReport::kStatsValueNameRemoteCertificateId[] =
- "googRemoteCertificateId";
-const char StatsReport::kStatsValueNameRetransmitBitrate[] =
- "googRetransmitBitrate";
-const char StatsReport::kStatsValueNameRtt[] = "googRtt";
-const char StatsReport::kStatsValueNameSsrc[] = "ssrc";
-const char StatsReport::kStatsValueNameSendPacketsDiscarded[] =
- "packetsDiscardedOnSend";
-const char StatsReport::kStatsValueNameTargetEncBitrate[] =
- "googTargetEncBitrate";
-const char StatsReport::kStatsValueNameTransmitBitrate[] =
- "googTransmitBitrate";
-const char StatsReport::kStatsValueNameTransportId[] = "transportId";
-const char StatsReport::kStatsValueNameTransportType[] = "googTransportType";
-const char StatsReport::kStatsValueNameTrackId[] = "googTrackId";
-const char StatsReport::kStatsValueNameTypingNoiseState[] =
- "googTypingNoiseState";
-const char StatsReport::kStatsValueNameViewLimitedResolution[] =
- "googViewLimitedResolution";
-const char StatsReport::kStatsValueNameWritable[] = "googWritable";
-
const char StatsReport::kStatsReportTypeSession[] = "googLibjingleSession";
const char StatsReport::kStatsReportTypeBwe[] = "VideoBwe";
const char StatsReport::kStatsReportTypeRemoteSsrc[] = "remoteSsrc";
@@ -218,10 +76,6 @@
return id == other_id;
}
-StatsReport::Value::Value()
- : name(NULL) {
-}
-
// The copy ctor can't be declared as explicit due to problems with STL.
StatsReport::Value::Value(const Value& other)
: name(other.name), value(other.value) {
@@ -241,11 +95,194 @@
return *this;
}
-// TODO(tommi): Change implementation to do a simple enum value-to-static-
-// string conversion when client code has been updated to use this method
-// instead of the |name| member variable.
const char* StatsReport::Value::display_name() const {
- return name;
+ switch (name) {
+ case kStatsValueNameAudioOutputLevel:
+ return "audioOutputLevel";
+ case kStatsValueNameAudioInputLevel:
+ return "audioInputLevel";
+ case kStatsValueNameBytesSent:
+ return "bytesSent";
+ case kStatsValueNamePacketsSent:
+ return "packetsSent";
+ case kStatsValueNameBytesReceived:
+ return "bytesReceived";
+ case kStatsValueNamePacketsReceived:
+ return "packetsReceived";
+ case kStatsValueNamePacketsLost:
+ return "packetsLost";
+ case kStatsValueNameTransportId:
+ return "transportId";
+ case kStatsValueNameSsrc:
+ return "ssrc";
+
+ // 'goog' prefixed constants.
+ case kStatsValueNameActiveConnection:
+ return "googActiveConnection";
+ case kStatsValueNameActualEncBitrate:
+ return "googActualEncBitrate";
+ case kStatsValueNameAvailableReceiveBandwidth:
+ return "googAvailableReceiveBandwidth";
+ case kStatsValueNameAvailableSendBandwidth:
+ return "googAvailableSendBandwidth";
+ case kStatsValueNameAvgEncodeMs:
+ return "googAvgEncodeMs";
+ case kStatsValueNameBucketDelay:
+ return "googBucketDelay";
+ case kStatsValueNameBandwidthLimitedResolution:
+ return "googBandwidthLimitedResolution";
+ case kStatsValueNameCaptureJitterMs:
+ return "googCaptureJitterMs";
+ case kStatsValueNameCaptureQueueDelayMsPerS:
+ return "googCaptureQueueDelayMsPerS";
+ case kStatsValueNameChannelId:
+ return "googChannelId";
+ case kStatsValueNameCodecName:
+ return "googCodecName";
+ case kStatsValueNameComponent:
+ return "googComponent";
+ case kStatsValueNameContentName:
+ return "googContentName";
+ case kStatsValueNameCpuLimitedResolution:
+ return "googCpuLimitedResolution";
+ case kStatsValueNameDecodingCTSG:
+ return "googDecodingCTSG";
+ case kStatsValueNameDecodingCTN:
+ return "googDecodingCTN";
+ case kStatsValueNameDecodingNormal:
+ return "googDecodingNormal";
+ case kStatsValueNameDecodingPLC:
+ return "googDecodingPLC";
+ case kStatsValueNameDecodingCNG:
+ return "googDecodingCNG";
+ case kStatsValueNameDecodingPLCCNG:
+ return "googDecodingPLCCNG";
+ case kStatsValueNameDer:
+ return "googDerBase64";
+ case kStatsValueNameEchoCancellationQualityMin:
+ return "googEchoCancellationQualityMin";
+ case kStatsValueNameEchoDelayMedian:
+ return "googEchoCancellationEchoDelayMedian";
+ case kStatsValueNameEchoDelayStdDev:
+ return "googEchoCancellationEchoDelayStdDev";
+ case kStatsValueNameEchoReturnLoss:
+ return "googEchoCancellationReturnLoss";
+ case kStatsValueNameEchoReturnLossEnhancement:
+ return "googEchoCancellationReturnLossEnhancement";
+ case kStatsValueNameEncodeUsagePercent:
+ return "googEncodeUsagePercent";
+ case kStatsValueNameExpandRate:
+ return "googExpandRate";
+ case kStatsValueNameFingerprint:
+ return "googFingerprint";
+ case kStatsValueNameFingerprintAlgorithm:
+ return "googFingerprintAlgorithm";
+ case kStatsValueNameFirsReceived:
+ return "googFirsReceived";
+ case kStatsValueNameFirsSent:
+ return "googFirsSent";
+ case kStatsValueNameFrameHeightInput:
+ return "googFrameHeightInput";
+ case kStatsValueNameFrameHeightReceived:
+ return "googFrameHeightReceived";
+ case kStatsValueNameFrameHeightSent:
+ return "googFrameHeightSent";
+ case kStatsValueNameFrameRateReceived:
+ return "googFrameRateReceived";
+ case kStatsValueNameFrameRateDecoded:
+ return "googFrameRateDecoded";
+ case kStatsValueNameFrameRateOutput:
+ return "googFrameRateOutput";
+ case kStatsValueNameDecodeMs:
+ return "googDecodeMs";
+ case kStatsValueNameMaxDecodeMs:
+ return "googMaxDecodeMs";
+ case kStatsValueNameCurrentDelayMs:
+ return "googCurrentDelayMs";
+ case kStatsValueNameTargetDelayMs:
+ return "googTargetDelayMs";
+ case kStatsValueNameJitterBufferMs:
+ return "googJitterBufferMs";
+ case kStatsValueNameMinPlayoutDelayMs:
+ return "googMinPlayoutDelayMs";
+ case kStatsValueNameRenderDelayMs:
+ return "googRenderDelayMs";
+ case kStatsValueNameCaptureStartNtpTimeMs:
+ return "googCaptureStartNtpTimeMs";
+ case kStatsValueNameFrameRateInput:
+ return "googFrameRateInput";
+ case kStatsValueNameFrameRateSent:
+ return "googFrameRateSent";
+ case kStatsValueNameFrameWidthInput:
+ return "googFrameWidthInput";
+ case kStatsValueNameFrameWidthReceived:
+ return "googFrameWidthReceived";
+ case kStatsValueNameFrameWidthSent:
+ return "googFrameWidthSent";
+ case kStatsValueNameInitiator:
+ return "googInitiator";
+ case kStatsValueNameIssuerId:
+ return "googIssuerId";
+ case kStatsValueNameJitterReceived:
+ return "googJitterReceived";
+ case kStatsValueNameLocalAddress:
+ return "googLocalAddress";
+ case kStatsValueNameLocalCandidateType:
+ return "googLocalCandidateType";
+ case kStatsValueNameLocalCertificateId:
+ return "googLocalCertificateId";
+ case kStatsValueNameAdaptationChanges:
+ return "googAdaptationChanges";
+ case kStatsValueNameNacksReceived:
+ return "googNacksReceived";
+ case kStatsValueNameNacksSent:
+ return "googNacksSent";
+ case kStatsValueNamePlisReceived:
+ return "googPlisReceived";
+ case kStatsValueNamePlisSent:
+ return "googPlisSent";
+ case kStatsValueNamePreferredJitterBufferMs:
+ return "googPreferredJitterBufferMs";
+ case kStatsValueNameReadable:
+ return "googReadable";
+ case kStatsValueNameRecvPacketGroupArrivalTimeDebug:
+ return "googReceivedPacketGroupArrivalTimeDebug";
+ case kStatsValueNameRecvPacketGroupPropagationDeltaDebug:
+ return "googReceivedPacketGroupPropagationDeltaDebug";
+ case kStatsValueNameRecvPacketGroupPropagationDeltaSumDebug:
+ return "googReceivedPacketGroupPropagationDeltaSumDebug";
+ case kStatsValueNameRemoteAddress:
+ return "googRemoteAddress";
+ case kStatsValueNameRemoteCandidateType:
+ return "googRemoteCandidateType";
+ case kStatsValueNameRemoteCertificateId:
+ return "googRemoteCertificateId";
+ case kStatsValueNameRetransmitBitrate:
+ return "googRetransmitBitrate";
+ case kStatsValueNameRtt:
+ return "googRtt";
+ case kStatsValueNameSendPacketsDiscarded:
+ return "packetsDiscardedOnSend";
+ case kStatsValueNameTargetEncBitrate:
+ return "googTargetEncBitrate";
+ case kStatsValueNameTransmitBitrate:
+ return "googTransmitBitrate";
+ case kStatsValueNameTransportType:
+ return "googTransportType";
+ case kStatsValueNameTrackId:
+ return "googTrackId";
+ case kStatsValueNameTypingNoiseState:
+ return "googTypingNoiseState";
+ case kStatsValueNameViewLimitedResolution:
+ return "googViewLimitedResolution";
+ case kStatsValueNameWritable:
+ return "googWritable";
+ default:
+ ASSERT(false);
+ break;
+ }
+
+ return nullptr;
}
void StatsReport::AddValue(StatsReport::StatsValueName name,
diff --git a/talk/app/webrtc/statstypes.h b/talk/app/webrtc/statstypes.h
index f2a23d0..d47dc18 100644
--- a/talk/app/webrtc/statstypes.h
+++ b/talk/app/webrtc/statstypes.h
@@ -65,10 +65,6 @@
// without requiring a new StatsReport instance.
bool operator==(const std::string& other_id) const;
- // TODO(tommi): Change this to be an enum type that holds all the
- // kStatsValueName constants.
- typedef const char* StatsValueName;
-
// The unique identifier for this object.
// This is used as a key for this report in ordered containers,
// so it must never be changed.
@@ -76,8 +72,102 @@
std::string id; // See below for contents.
std::string type; // See below for contents.
+ // StatsValue names.
+ enum StatsValueName {
+ kStatsValueNameActiveConnection,
+ kStatsValueNameAudioInputLevel,
+ kStatsValueNameAudioOutputLevel,
+ kStatsValueNameBytesReceived,
+ kStatsValueNameBytesSent,
+ kStatsValueNamePacketsLost,
+ kStatsValueNamePacketsReceived,
+ kStatsValueNamePacketsSent,
+ kStatsValueNameReadable,
+ kStatsValueNameSsrc,
+ kStatsValueNameTransportId,
+
+ // Internal StatsValue names.
+ kStatsValueNameActualEncBitrate,
+ kStatsValueNameAdaptationChanges,
+ kStatsValueNameAvailableReceiveBandwidth,
+ kStatsValueNameAvailableSendBandwidth,
+ kStatsValueNameAvgEncodeMs,
+ kStatsValueNameBandwidthLimitedResolution,
+ kStatsValueNameBucketDelay,
+ kStatsValueNameCaptureJitterMs,
+ kStatsValueNameCaptureQueueDelayMsPerS,
+ kStatsValueNameCaptureStartNtpTimeMs,
+ kStatsValueNameChannelId,
+ kStatsValueNameCodecName,
+ kStatsValueNameComponent,
+ kStatsValueNameContentName,
+ kStatsValueNameCpuLimitedResolution,
+ kStatsValueNameCurrentDelayMs,
+ kStatsValueNameDecodeMs,
+ kStatsValueNameDecodingCNG,
+ kStatsValueNameDecodingCTN,
+ kStatsValueNameDecodingCTSG,
+ kStatsValueNameDecodingNormal,
+ kStatsValueNameDecodingPLC,
+ kStatsValueNameDecodingPLCCNG,
+ kStatsValueNameDer,
+ kStatsValueNameEchoCancellationQualityMin,
+ kStatsValueNameEchoDelayMedian,
+ kStatsValueNameEchoDelayStdDev,
+ kStatsValueNameEchoReturnLoss,
+ kStatsValueNameEchoReturnLossEnhancement,
+ kStatsValueNameEncodeUsagePercent,
+ kStatsValueNameExpandRate,
+ kStatsValueNameFingerprint,
+ kStatsValueNameFingerprintAlgorithm,
+ kStatsValueNameFirsReceived,
+ kStatsValueNameFirsSent,
+ kStatsValueNameFrameHeightInput,
+ kStatsValueNameFrameHeightReceived,
+ kStatsValueNameFrameHeightSent,
+ kStatsValueNameFrameRateDecoded,
+ kStatsValueNameFrameRateInput,
+ kStatsValueNameFrameRateOutput,
+ kStatsValueNameFrameRateReceived,
+ kStatsValueNameFrameRateSent,
+ kStatsValueNameFrameWidthInput,
+ kStatsValueNameFrameWidthReceived,
+ kStatsValueNameFrameWidthSent,
+ kStatsValueNameInitiator,
+ kStatsValueNameIssuerId,
+ kStatsValueNameJitterBufferMs,
+ kStatsValueNameJitterReceived,
+ kStatsValueNameLocalAddress,
+ kStatsValueNameLocalCandidateType,
+ kStatsValueNameLocalCertificateId,
+ kStatsValueNameMaxDecodeMs,
+ kStatsValueNameMinPlayoutDelayMs,
+ kStatsValueNameNacksReceived,
+ kStatsValueNameNacksSent,
+ kStatsValueNamePlisReceived,
+ kStatsValueNamePlisSent,
+ kStatsValueNamePreferredJitterBufferMs,
+ kStatsValueNameRecvPacketGroupArrivalTimeDebug,
+ kStatsValueNameRecvPacketGroupPropagationDeltaDebug,
+ kStatsValueNameRecvPacketGroupPropagationDeltaSumDebug,
+ kStatsValueNameRemoteAddress,
+ kStatsValueNameRemoteCandidateType,
+ kStatsValueNameRemoteCertificateId,
+ kStatsValueNameRenderDelayMs,
+ kStatsValueNameRetransmitBitrate,
+ kStatsValueNameRtt,
+ kStatsValueNameSendPacketsDiscarded,
+ kStatsValueNameTargetDelayMs,
+ kStatsValueNameTargetEncBitrate,
+ kStatsValueNameTrackId,
+ kStatsValueNameTransmitBitrate,
+ kStatsValueNameTransportType,
+ kStatsValueNameTypingNoiseState,
+ kStatsValueNameViewLimitedResolution,
+ kStatsValueNameWritable,
+ };
+
struct Value {
- Value();
// The copy ctor can't be declared as explicit due to problems with STL.
Value(const Value& other);
explicit Value(StatsValueName name);
@@ -88,9 +178,7 @@
// The public |name| member variable is otherwise meant to be read-only.
Value& operator=(const Value& other);
- // TODO(tommi): Change implementation to do a simple enum value-to-static-
- // string conversion when client code has been updated to use this method
- // instead of the |name| member variable.
+ // Returns the string representation of |name|.
const char* display_name() const;
const StatsValueName name;
@@ -153,9 +241,6 @@
// ICE Candidate. It links to its transport.
static const char kStatsReportTypeIceCandidate[];
- // The id of StatsReport of type VideoBWE.
- static const char kStatsReportVideoBweId[];
-
// A StatsReport of |type| = "googCertificate" contains an SSL certificate
// transmitted by one of the endpoints of this connection. The |id| is
// controlled by the fingerprint, and is used to identify the certificate in
@@ -164,99 +249,8 @@
// "googIssuerId").
static const char kStatsReportTypeCertificate[];
- // StatsValue names
- static const char kStatsValueNameAudioOutputLevel[];
- static const char kStatsValueNameAudioInputLevel[];
- static const char kStatsValueNameBytesSent[];
- static const char kStatsValueNamePacketsSent[];
- static const char kStatsValueNameBytesReceived[];
- static const char kStatsValueNamePacketsReceived[];
- static const char kStatsValueNamePacketsLost[];
- static const char kStatsValueNameTransportId[];
- static const char kStatsValueNameLocalAddress[];
- static const char kStatsValueNameRemoteAddress[];
- static const char kStatsValueNameWritable[];
- static const char kStatsValueNameReadable[];
- static const char kStatsValueNameActiveConnection[];
-
-
- // Internal StatsValue names
- static const char kStatsValueNameAvgEncodeMs[];
- static const char kStatsValueNameEncodeUsagePercent[];
- static const char kStatsValueNameCaptureJitterMs[];
- static const char kStatsValueNameCaptureQueueDelayMsPerS[];
- static const char kStatsValueNameCodecName[];
- static const char kStatsValueNameBandwidthLimitedResolution[];
- static const char kStatsValueNameCpuLimitedResolution[];
- static const char kStatsValueNameViewLimitedResolution[];
- static const char kStatsValueNameAdaptationChanges[];
- static const char kStatsValueNameEchoCancellationQualityMin[];
- static const char kStatsValueNameEchoDelayMedian[];
- static const char kStatsValueNameEchoDelayStdDev[];
- static const char kStatsValueNameEchoReturnLoss[];
- static const char kStatsValueNameEchoReturnLossEnhancement[];
- static const char kStatsValueNameExpandRate[];
- static const char kStatsValueNameFirsReceived[];
- static const char kStatsValueNameFirsSent[];
- static const char kStatsValueNameFrameHeightInput[];
- static const char kStatsValueNameFrameHeightReceived[];
- static const char kStatsValueNameFrameHeightSent[];
- static const char kStatsValueNameFrameRateReceived[];
- static const char kStatsValueNameFrameRateDecoded[];
- static const char kStatsValueNameFrameRateOutput[];
- static const char kStatsValueNameDecodeMs[];
- static const char kStatsValueNameMaxDecodeMs[];
- static const char kStatsValueNameCurrentDelayMs[];
- static const char kStatsValueNameTargetDelayMs[];
- static const char kStatsValueNameJitterBufferMs[];
- static const char kStatsValueNameMinPlayoutDelayMs[];
- static const char kStatsValueNameRenderDelayMs[];
- static const char kStatsValueNameCaptureStartNtpTimeMs[];
- static const char kStatsValueNameFrameRateInput[];
- static const char kStatsValueNameFrameRateSent[];
- static const char kStatsValueNameFrameWidthInput[];
- static const char kStatsValueNameFrameWidthReceived[];
- static const char kStatsValueNameFrameWidthSent[];
- static const char kStatsValueNameJitterReceived[];
- static const char kStatsValueNameNacksReceived[];
- static const char kStatsValueNameNacksSent[];
- static const char kStatsValueNamePlisReceived[];
- static const char kStatsValueNamePlisSent[];
- static const char kStatsValueNamePreferredJitterBufferMs[];
- static const char kStatsValueNameRtt[];
- static const char kStatsValueNameAvailableSendBandwidth[];
- static const char kStatsValueNameAvailableReceiveBandwidth[];
- static const char kStatsValueNameTargetEncBitrate[];
- static const char kStatsValueNameActualEncBitrate[];
- static const char kStatsValueNameRetransmitBitrate[];
- static const char kStatsValueNameTransmitBitrate[];
- static const char kStatsValueNameBucketDelay[];
- static const char kStatsValueNameInitiator[];
- static const char kStatsValueNameTransportType[];
- static const char kStatsValueNameContentName[];
- static const char kStatsValueNameComponent[];
- static const char kStatsValueNameChannelId[];
- static const char kStatsValueNameTrackId[];
- static const char kStatsValueNameSsrc[];
- static const char kStatsValueNameSendPacketsDiscarded[];
- static const char kStatsValueNameTypingNoiseState[];
- static const char kStatsValueNameDer[];
- static const char kStatsValueNameFingerprint[];
- static const char kStatsValueNameFingerprintAlgorithm[];
- static const char kStatsValueNameIssuerId[];
- static const char kStatsValueNameLocalCertificateId[];
- static const char kStatsValueNameRemoteCertificateId[];
- static const char kStatsValueNameLocalCandidateType[];
- static const char kStatsValueNameRemoteCandidateType[];
- static const char kStatsValueNameRecvPacketGroupArrivalTimeDebug[];
- static const char kStatsValueNameRecvPacketGroupPropagationDeltaDebug[];
- static const char kStatsValueNameRecvPacketGroupPropagationDeltaSumDebug[];
- static const char kStatsValueNameDecodingCTSG[];
- static const char kStatsValueNameDecodingCTN[];
- static const char kStatsValueNameDecodingNormal[];
- static const char kStatsValueNameDecodingPLC[];
- static const char kStatsValueNameDecodingCNG[];
- static const char kStatsValueNameDecodingPLCCNG[];
+ // The id of StatsReport of type VideoBWE.
+ static const char kStatsReportVideoBweId[];
};
// This class is provided for the cases where we need to keep