Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(239)

Side by Side Diff: content/renderer/media/webrtc/media_stream_track_metrics.cc

Issue 2705073003: Remove ScopedVector from content/renderer/. (Closed)
Patch Set: Rebase only Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/webrtc/media_stream_track_metrics.h" 5 #include "content/renderer/media/webrtc/media_stream_track_metrics.h"
6 6
7 #include <inttypes.h> 7 #include <inttypes.h>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 10
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 base::ThreadChecker thread_checker_; 145 base::ThreadChecker thread_checker_;
146 }; 146 };
147 147
148 namespace { 148 namespace {
149 149
150 // Used with std::find_if. 150 // Used with std::find_if.
151 struct ObserverFinder { 151 struct ObserverFinder {
152 ObserverFinder(MediaStreamTrackMetrics::StreamType stream_type, 152 ObserverFinder(MediaStreamTrackMetrics::StreamType stream_type,
153 MediaStreamInterface* stream) 153 MediaStreamInterface* stream)
154 : stream_type(stream_type), stream_(stream) {} 154 : stream_type(stream_type), stream_(stream) {}
155 bool operator()(MediaStreamTrackMetricsObserver* observer) { 155 bool operator()(
156 const std::unique_ptr<MediaStreamTrackMetricsObserver>& observer) {
156 return stream_ == observer->stream() && 157 return stream_ == observer->stream() &&
157 stream_type == observer->stream_type(); 158 stream_type == observer->stream_type();
158 } 159 }
159 MediaStreamTrackMetrics::StreamType stream_type; 160 MediaStreamTrackMetrics::StreamType stream_type;
160 MediaStreamInterface* stream_; 161 MediaStreamInterface* stream_;
161 }; 162 };
162 163
163 } // namespace 164 } // namespace
164 165
165 MediaStreamTrackMetricsObserver::MediaStreamTrackMetricsObserver( 166 MediaStreamTrackMetricsObserver::MediaStreamTrackMetricsObserver(
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 DCHECK(thread_checker_.CalledOnValidThread()); 262 DCHECK(thread_checker_.CalledOnValidThread());
262 for (IdSet::const_iterator it = ids.begin(); it != ids.end(); ++it) { 263 for (IdSet::const_iterator it = ids.begin(); it != ids.end(); ++it) {
263 owner_->SendLifetimeMessage(*it, track_type, event, stream_type_); 264 owner_->SendLifetimeMessage(*it, track_type, event, stream_type_);
264 } 265 }
265 } 266 }
266 267
267 MediaStreamTrackMetrics::MediaStreamTrackMetrics() 268 MediaStreamTrackMetrics::MediaStreamTrackMetrics()
268 : ice_state_(webrtc::PeerConnectionInterface::kIceConnectionNew) {} 269 : ice_state_(webrtc::PeerConnectionInterface::kIceConnectionNew) {}
269 270
270 MediaStreamTrackMetrics::~MediaStreamTrackMetrics() { 271 MediaStreamTrackMetrics::~MediaStreamTrackMetrics() {
271 for (ObserverVector::iterator it = observers_.begin(); it != observers_.end(); 272 for (const auto& observer : observers_) {
272 ++it) { 273 observer->SendLifetimeMessages(DISCONNECTED);
273 (*it)->SendLifetimeMessages(DISCONNECTED);
274 } 274 }
275 } 275 }
276 276
277 void MediaStreamTrackMetrics::AddStream(StreamType type, 277 void MediaStreamTrackMetrics::AddStream(StreamType type,
278 MediaStreamInterface* stream) { 278 MediaStreamInterface* stream) {
279 DCHECK(CalledOnValidThread()); 279 DCHECK(CalledOnValidThread());
280 MediaStreamTrackMetricsObserver* observer = 280 observers_.push_back(
281 new MediaStreamTrackMetricsObserver(type, stream, this); 281 base::MakeUnique<MediaStreamTrackMetricsObserver>(type, stream, this));
282 observers_.insert(observers_.end(), observer); 282 SendLifeTimeMessageDependingOnIceState(observers_.back().get());
283 SendLifeTimeMessageDependingOnIceState(observer);
284 } 283 }
285 284
286 void MediaStreamTrackMetrics::RemoveStream(StreamType type, 285 void MediaStreamTrackMetrics::RemoveStream(StreamType type,
287 MediaStreamInterface* stream) { 286 MediaStreamInterface* stream) {
288 DCHECK(CalledOnValidThread()); 287 DCHECK(CalledOnValidThread());
289 ObserverVector::iterator it = std::find_if( 288 auto it = std::find_if(observers_.begin(), observers_.end(),
290 observers_.begin(), observers_.end(), ObserverFinder(type, stream)); 289 ObserverFinder(type, stream));
291 if (it == observers_.end()) { 290 if (it == observers_.end()) {
292 // Since external apps could call removeStream with a stream they 291 // Since external apps could call removeStream with a stream they
293 // never added, this can happen without it being an error. 292 // never added, this can happen without it being an error.
294 return; 293 return;
295 } 294 }
296 295
297 observers_.erase(it); 296 observers_.erase(it);
298 } 297 }
299 298
300 void MediaStreamTrackMetrics::IceConnectionChange( 299 void MediaStreamTrackMetrics::IceConnectionChange(
301 PeerConnectionInterface::IceConnectionState new_state) { 300 PeerConnectionInterface::IceConnectionState new_state) {
302 DCHECK(CalledOnValidThread()); 301 DCHECK(CalledOnValidThread());
303 ice_state_ = new_state; 302 ice_state_ = new_state;
304 for (ObserverVector::iterator it = observers_.begin(); it != observers_.end(); 303 for (const auto& observer : observers_) {
305 ++it) { 304 SendLifeTimeMessageDependingOnIceState(observer.get());
306 SendLifeTimeMessageDependingOnIceState(*it);
307 } 305 }
308 } 306 }
309 void MediaStreamTrackMetrics::SendLifeTimeMessageDependingOnIceState( 307 void MediaStreamTrackMetrics::SendLifeTimeMessageDependingOnIceState(
310 MediaStreamTrackMetricsObserver* observer) { 308 MediaStreamTrackMetricsObserver* observer) {
311 // There is a state transition diagram for these states at 309 // There is a state transition diagram for these states at
312 // http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCIceConnectionSt ate 310 // http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCIceConnectionSt ate
313 switch (ice_state_) { 311 switch (ice_state_) {
314 case PeerConnectionInterface::kIceConnectionConnected: 312 case PeerConnectionInterface::kIceConnectionConnected:
315 case PeerConnectionInterface::kIceConnectionCompleted: 313 case PeerConnectionInterface::kIceConnectionCompleted:
316 observer->SendLifetimeMessages(CONNECTED); 314 observer->SendLifetimeMessages(CONNECTED);
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 } 392 }
395 393
396 uint64_t MediaStreamTrackMetrics::MakeUniqueId(const std::string& track_id, 394 uint64_t MediaStreamTrackMetrics::MakeUniqueId(const std::string& track_id,
397 StreamType stream_type) { 395 StreamType stream_type) {
398 return MakeUniqueIdImpl( 396 return MakeUniqueIdImpl(
399 reinterpret_cast<uint64_t>(reinterpret_cast<void*>(this)), track_id, 397 reinterpret_cast<uint64_t>(reinterpret_cast<void*>(this)), track_id,
400 stream_type); 398 stream_type);
401 } 399 }
402 400
403 } // namespace content 401 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/webrtc/media_stream_track_metrics.h ('k') | content/renderer/mojo_context_state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698