RTCStatsMember<bool> and RTCStatsMember<std::vector<bool>> added.
RTCStatsMemberInterface::Type's kBool and kSequenceBool.
This means that RTCStats-derived classes ("RTCStats-derived
dictionaries"[1]) can contain boolean and sequence of boolean members.
[1] https://w3c.github.io/webrtc-stats/
BUG=chromium:627816
NOTRY=True
Review-Url: https://codereview.webrtc.org/2387343002
Cr-Commit-Position: refs/heads/master@{#14509}
This commit is contained in:
@ -166,6 +166,7 @@ class RTCStatsMemberInterface {
|
||||
public:
|
||||
// Member value types.
|
||||
enum Type {
|
||||
kBool, // bool
|
||||
kInt32, // int32_t
|
||||
kUint32, // uint32_t
|
||||
kInt64, // int64_t
|
||||
@ -173,6 +174,7 @@ class RTCStatsMemberInterface {
|
||||
kDouble, // double
|
||||
kString, // std::string
|
||||
|
||||
kSequenceBool, // std::vector<bool>
|
||||
kSequenceInt32, // std::vector<int32_t>
|
||||
kSequenceUint32, // std::vector<uint32_t>
|
||||
kSequenceInt64, // std::vector<int64_t>
|
||||
|
||||
@ -93,6 +93,8 @@ RTCStats::MembersOfThisObjectAndAncestors(
|
||||
return to_str; \
|
||||
}
|
||||
|
||||
WEBRTC_DEFINE_RTCSTATSMEMBER(bool, kBool, false, false,
|
||||
rtc::ToString(value_));
|
||||
WEBRTC_DEFINE_RTCSTATSMEMBER(int32_t, kInt32, false, false,
|
||||
rtc::ToString(value_));
|
||||
WEBRTC_DEFINE_RTCSTATSMEMBER(uint32_t, kUint32, false, false,
|
||||
@ -105,6 +107,9 @@ WEBRTC_DEFINE_RTCSTATSMEMBER(double, kDouble, false, false,
|
||||
rtc::ToString(value_));
|
||||
WEBRTC_DEFINE_RTCSTATSMEMBER(std::string, kString, false, true,
|
||||
value_);
|
||||
WEBRTC_DEFINE_RTCSTATSMEMBER(
|
||||
std::vector<bool>, kSequenceBool, true, false,
|
||||
VectorToString(value_));
|
||||
WEBRTC_DEFINE_RTCSTATSMEMBER(
|
||||
std::vector<int32_t>, kSequenceInt32, true, false,
|
||||
VectorToString(value_));
|
||||
|
||||
@ -51,10 +51,11 @@ TEST(RTCStatsTest, RTCStatsAndMembers) {
|
||||
EXPECT_EQ(stats.id(), "testId");
|
||||
EXPECT_EQ(stats.timestamp_us(), static_cast<int64_t>(42));
|
||||
std::vector<const RTCStatsMemberInterface*> members = stats.Members();
|
||||
EXPECT_EQ(members.size(), static_cast<size_t>(12));
|
||||
EXPECT_EQ(members.size(), static_cast<size_t>(14));
|
||||
for (const RTCStatsMemberInterface* member : members) {
|
||||
EXPECT_FALSE(member->is_defined());
|
||||
}
|
||||
stats.m_bool = true;
|
||||
stats.m_int32 = 123;
|
||||
stats.m_uint32 = 123;
|
||||
stats.m_int64 = 123;
|
||||
@ -62,6 +63,8 @@ TEST(RTCStatsTest, RTCStatsAndMembers) {
|
||||
stats.m_double = 123.0;
|
||||
stats.m_string = std::string("123");
|
||||
|
||||
std::vector<bool> sequence_bool;
|
||||
sequence_bool.push_back(true);
|
||||
std::vector<int32_t> sequence_int32;
|
||||
sequence_int32.push_back(static_cast<int32_t>(1));
|
||||
std::vector<uint32_t> sequence_uint32;
|
||||
@ -75,6 +78,7 @@ TEST(RTCStatsTest, RTCStatsAndMembers) {
|
||||
std::vector<std::string> sequence_string;
|
||||
sequence_string.push_back(std::string("six"));
|
||||
|
||||
stats.m_sequence_bool = sequence_bool;
|
||||
stats.m_sequence_int32 = sequence_int32;
|
||||
stats.m_sequence_uint32 = sequence_uint32;
|
||||
EXPECT_FALSE(stats.m_sequence_int64.is_defined());
|
||||
@ -85,12 +89,14 @@ TEST(RTCStatsTest, RTCStatsAndMembers) {
|
||||
for (const RTCStatsMemberInterface* member : members) {
|
||||
EXPECT_TRUE(member->is_defined());
|
||||
}
|
||||
EXPECT_EQ(*stats.m_bool, true);
|
||||
EXPECT_EQ(*stats.m_int32, static_cast<int32_t>(123));
|
||||
EXPECT_EQ(*stats.m_uint32, static_cast<uint32_t>(123));
|
||||
EXPECT_EQ(*stats.m_int64, static_cast<int64_t>(123));
|
||||
EXPECT_EQ(*stats.m_uint64, static_cast<uint64_t>(123));
|
||||
EXPECT_EQ(*stats.m_double, 123.0);
|
||||
EXPECT_EQ(*stats.m_string, std::string("123"));
|
||||
EXPECT_EQ(*stats.m_sequence_bool, sequence_bool);
|
||||
EXPECT_EQ(*stats.m_sequence_int32, sequence_int32);
|
||||
EXPECT_EQ(*stats.m_sequence_uint32, sequence_uint32);
|
||||
EXPECT_EQ(*stats.m_sequence_int64, sequence_int64);
|
||||
|
||||
@ -16,12 +16,14 @@ const char RTCTestStats::kType[] = "test-stats";
|
||||
|
||||
RTCTestStats::RTCTestStats(const std::string& id, int64_t timestamp_us)
|
||||
: RTCStats(id, timestamp_us),
|
||||
m_bool("mBool"),
|
||||
m_int32("mInt32"),
|
||||
m_uint32("mUint32"),
|
||||
m_int64("mInt64"),
|
||||
m_uint64("mUint64"),
|
||||
m_double("mDouble"),
|
||||
m_string("mString"),
|
||||
m_sequence_bool("mSequenceBool"),
|
||||
m_sequence_int32("mSequenceInt32"),
|
||||
m_sequence_uint32("mSequenceUint32"),
|
||||
m_sequence_int64("mSequenceInt64"),
|
||||
|
||||
@ -23,12 +23,14 @@ class RTCTestStats : public RTCStats {
|
||||
RTCTestStats(const std::string& id, int64_t timestamp_us);
|
||||
|
||||
WEBRTC_RTCSTATS_IMPL(RTCStats, RTCTestStats,
|
||||
&m_bool,
|
||||
&m_int32,
|
||||
&m_uint32,
|
||||
&m_int64,
|
||||
&m_uint64,
|
||||
&m_double,
|
||||
&m_string,
|
||||
&m_sequence_bool,
|
||||
&m_sequence_int32,
|
||||
&m_sequence_uint32,
|
||||
&m_sequence_int64,
|
||||
@ -36,12 +38,14 @@ class RTCTestStats : public RTCStats {
|
||||
&m_sequence_double,
|
||||
&m_sequence_string);
|
||||
|
||||
RTCStatsMember<bool> m_bool;
|
||||
RTCStatsMember<int32_t> m_int32;
|
||||
RTCStatsMember<uint32_t> m_uint32;
|
||||
RTCStatsMember<int64_t> m_int64;
|
||||
RTCStatsMember<uint64_t> m_uint64;
|
||||
RTCStatsMember<double> m_double;
|
||||
RTCStatsMember<std::string> m_string;
|
||||
RTCStatsMember<std::vector<bool>> m_sequence_bool;
|
||||
RTCStatsMember<std::vector<int32_t>> m_sequence_int32;
|
||||
RTCStatsMember<std::vector<uint32_t>> m_sequence_uint32;
|
||||
RTCStatsMember<std::vector<int64_t>> m_sequence_int64;
|
||||
|
||||
Reference in New Issue
Block a user