| Index: webrtc/api/webrtcsession.cc
|
| diff --git a/webrtc/api/webrtcsession.cc b/webrtc/api/webrtcsession.cc
|
| index c5582d3630b7ebdc0644f5a6738ff2bc540d6127..99f2cd1a438c0d6ae7f5fbe78efe68884ebc0bfd 100644
|
| --- a/webrtc/api/webrtcsession.cc
|
| +++ b/webrtc/api/webrtcsession.cc
|
| @@ -627,6 +627,24 @@ void WebRtcSession::Close() {
|
| media_controller_->Close();
|
| }
|
|
|
| +std::unique_ptr<ChannelNamePairs> WebRtcSession::GetChannelNamePairs() {
|
| + ASSERT(signaling_thread()->IsCurrent());
|
| + std::unique_ptr<ChannelNamePairs> channel_name_pairs(new ChannelNamePairs());
|
| + if (voice_channel()) {
|
| + channel_name_pairs->voice = rtc::Optional<ChannelNamePair>(ChannelNamePair(
|
| + voice_channel()->content_name(), voice_channel()->transport_name()));
|
| + }
|
| + if (video_channel()) {
|
| + channel_name_pairs->video = rtc::Optional<ChannelNamePair>(ChannelNamePair(
|
| + video_channel()->content_name(), video_channel()->transport_name()));
|
| + }
|
| + if (data_channel()) {
|
| + channel_name_pairs->data = rtc::Optional<ChannelNamePair>(ChannelNamePair(
|
| + data_channel()->content_name(), data_channel()->transport_name()));
|
| + }
|
| + return channel_name_pairs;
|
| +}
|
| +
|
| cricket::BaseChannel* WebRtcSession::GetChannel(
|
| const std::string& content_name) {
|
| if (voice_channel() && voice_channel()->content_name() == content_name) {
|
| @@ -1039,6 +1057,46 @@ bool WebRtcSession::GetChannelTransportStats(cricket::BaseChannel* ch,
|
| return true;
|
| }
|
|
|
| +std::unique_ptr<SessionStats> WebRtcSession::GetSessionStats_n(
|
| + const ChannelNamePairs& channel_name_pairs) {
|
| + ASSERT(network_thread()->IsCurrent());
|
| + std::unique_ptr<SessionStats> session_stats(new SessionStats());
|
| + if (channel_name_pairs.voice) {
|
| + cricket::TransportStats voice_transport_stats;
|
| + if (!transport_controller_->GetStats_n(
|
| + channel_name_pairs.voice->transport_name, &voice_transport_stats)) {
|
| + return nullptr;
|
| + }
|
| + session_stats->proxy_to_transport[channel_name_pairs.voice->content_name] =
|
| + channel_name_pairs.voice->transport_name;
|
| + session_stats->transport_stats[channel_name_pairs.voice->transport_name] =
|
| + std::move(voice_transport_stats);
|
| + }
|
| + if (channel_name_pairs.video) {
|
| + cricket::TransportStats video_transport_stats;
|
| + if (!transport_controller_->GetStats_n(
|
| + channel_name_pairs.video->transport_name, &video_transport_stats)) {
|
| + return nullptr;
|
| + }
|
| + session_stats->proxy_to_transport[channel_name_pairs.video->content_name] =
|
| + channel_name_pairs.video->transport_name;
|
| + session_stats->transport_stats[channel_name_pairs.video->transport_name] =
|
| + std::move(video_transport_stats);
|
| + }
|
| + if (channel_name_pairs.data) {
|
| + cricket::TransportStats data_transport_stats;
|
| + if (!transport_controller_->GetStats_n(
|
| + channel_name_pairs.data->transport_name, &data_transport_stats)) {
|
| + return nullptr;
|
| + }
|
| + session_stats->proxy_to_transport[channel_name_pairs.data->content_name] =
|
| + channel_name_pairs.data->transport_name;
|
| + session_stats->transport_stats[channel_name_pairs.data->transport_name] =
|
| + std::move(data_transport_stats);
|
| + }
|
| + return session_stats;
|
| +}
|
| +
|
| bool WebRtcSession::GetLocalCertificate(
|
| const std::string& transport_name,
|
| rtc::scoped_refptr<rtc::RTCCertificate>* certificate) {
|
| @@ -1047,12 +1105,26 @@ bool WebRtcSession::GetLocalCertificate(
|
| certificate);
|
| }
|
|
|
| +bool WebRtcSession::GetLocalCertificate_n(
|
| + const std::string& transport_name,
|
| + rtc::scoped_refptr<rtc::RTCCertificate>* certificate) {
|
| + ASSERT(network_thread()->IsCurrent());
|
| + return transport_controller_->GetLocalCertificate_n(transport_name,
|
| + certificate);
|
| +}
|
| +
|
| std::unique_ptr<rtc::SSLCertificate> WebRtcSession::GetRemoteSSLCertificate(
|
| const std::string& transport_name) {
|
| ASSERT(signaling_thread()->IsCurrent());
|
| return transport_controller_->GetRemoteSSLCertificate(transport_name);
|
| }
|
|
|
| +std::unique_ptr<rtc::SSLCertificate> WebRtcSession::GetRemoteSSLCertificate_n(
|
| + const std::string& transport_name) {
|
| + ASSERT(network_thread()->IsCurrent());
|
| + return transport_controller_->GetRemoteSSLCertificate_n(transport_name);
|
| +}
|
| +
|
| bool WebRtcSession::EnableBundle(const cricket::ContentGroup& bundle) {
|
| const std::string* first_content_name = bundle.FirstContentName();
|
| if (!first_content_name) {
|
|
|