/* * Copyright 2023 The WebRTC Project Authors. All rights reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #include "api/stats/rtc_stats_member.h" namespace webrtc { #define WEBRTC_DEFINE_RTCSTATSMEMBER(T, type, is_seq, is_str) \ template <> \ RTCStatsMemberInterface::Type RTCStatsMember::StaticType() { \ return type; \ } \ template <> \ bool RTCStatsMember::is_sequence() const { \ return is_seq; \ } \ template <> \ bool RTCStatsMember::is_string() const { \ return is_str; \ } \ template class RTC_EXPORT_TEMPLATE_DEFINE(RTC_EXPORT) RTCStatsMember WEBRTC_DEFINE_RTCSTATSMEMBER(bool, kBool, false, false); WEBRTC_DEFINE_RTCSTATSMEMBER(int32_t, kInt32, false, false); WEBRTC_DEFINE_RTCSTATSMEMBER(uint32_t, kUint32, false, false); WEBRTC_DEFINE_RTCSTATSMEMBER(int64_t, kInt64, false, false); WEBRTC_DEFINE_RTCSTATSMEMBER(uint64_t, kUint64, false, false); WEBRTC_DEFINE_RTCSTATSMEMBER(double, kDouble, false, false); WEBRTC_DEFINE_RTCSTATSMEMBER(std::string, kString, false, true); WEBRTC_DEFINE_RTCSTATSMEMBER(std::vector, kSequenceBool, true, false); WEBRTC_DEFINE_RTCSTATSMEMBER(std::vector, kSequenceInt32, true, false); WEBRTC_DEFINE_RTCSTATSMEMBER(std::vector, kSequenceUint32, true, false); WEBRTC_DEFINE_RTCSTATSMEMBER(std::vector, kSequenceInt64, true, false); WEBRTC_DEFINE_RTCSTATSMEMBER(std::vector, kSequenceUint64, true, false); WEBRTC_DEFINE_RTCSTATSMEMBER(std::vector, kSequenceDouble, true, false); WEBRTC_DEFINE_RTCSTATSMEMBER(std::vector, kSequenceString, true, false); WEBRTC_DEFINE_RTCSTATSMEMBER(rtc_stats_internal::MapStringUint64, kMapStringUint64, false, false); WEBRTC_DEFINE_RTCSTATSMEMBER(rtc_stats_internal::MapStringDouble, kMapStringDouble, false, false); } // namespace webrtc