/*
 *  Copyright 2016 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 "webrtc/api/rtcstats_objects.h"

namespace webrtc {

const char RTCPeerConnectionStats::kType[] = "peer-connection";

RTCPeerConnectionStats::RTCPeerConnectionStats(
    const std::string& id, double timestamp)
    : RTCPeerConnectionStats(std::string(id), timestamp) {
}

RTCPeerConnectionStats::RTCPeerConnectionStats(
    std::string&& id, double timestamp)
    : RTCStats(std::move(id), timestamp),
      data_channels_opened("dataChannelsOpened"),
      data_channels_closed("dataChannelsClosed") {
}

}  // namespace webrtc
