| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/browser/streams/stream_registry.h" | 5 #include "content/browser/streams/stream_registry.h" |
| 6 | 6 |
| 7 #include "content/browser/streams/stream.h" | 7 #include "content/browser/streams/stream.h" |
| 8 | 8 |
| 9 namespace content { | 9 namespace content { |
| 10 | 10 |
| 11 namespace { | 11 namespace { |
| 12 // The maximum size of memory each StreamRegistry instance is allowed to use | 12 // The maximum size of memory each StreamRegistry instance is allowed to use |
| 13 // for its Stream instances. | 13 // for its Stream instances. |
| 14 const size_t kDefaultMaxMemoryUsage = 1024 * 1024 * 1024U; // 1GiB | 14 const size_t kDefaultMaxMemoryUsage = 1024 * 1024 * 1024U; // 1GiB |
| 15 } | 15 } |
| 16 | 16 |
| 17 StreamRegistry::StreamRegistry() | 17 StreamRegistry::StreamRegistry() |
| 18 : total_memory_usage_(0), | 18 : total_memory_usage_(0), |
| 19 max_memory_usage_(kDefaultMaxMemoryUsage) { | 19 max_memory_usage_(kDefaultMaxMemoryUsage) { |
| 20 } | 20 } |
| 21 | 21 |
| 22 StreamRegistry::~StreamRegistry() { | 22 StreamRegistry::~StreamRegistry() { |
| 23 DCHECK(register_observers_.empty()); | 23 DCHECK(register_observers_.empty()); |
| 24 } | 24 } |
| 25 | 25 |
| 26 void StreamRegistry::RegisterStream(scoped_refptr<Stream> stream) { | 26 void StreamRegistry::RegisterStream(Stream* stream) { |
| 27 DCHECK(CalledOnValidThread()); | 27 DCHECK(CalledOnValidThread()); |
| 28 DCHECK(stream.get()); | 28 DCHECK(stream); |
| 29 DCHECK(!stream->url().is_empty()); | 29 DCHECK(!stream->url().is_empty()); |
| 30 |
| 31 auto aborted_url_itr = reader_aborted_urls_.find(stream->url()); |
| 32 if (aborted_url_itr != reader_aborted_urls_.end()) { |
| 33 reader_aborted_urls_.erase(aborted_url_itr); |
| 34 return; |
| 35 } |
| 30 streams_[stream->url()] = stream; | 36 streams_[stream->url()] = stream; |
| 31 | 37 |
| 32 auto itr = register_observers_.find(stream->url()); | 38 auto itr = register_observers_.find(stream->url()); |
| 33 if (itr != register_observers_.end()) | 39 if (itr != register_observers_.end()) |
| 34 itr->second->OnStreamRegistered(stream.get()); | 40 itr->second->OnStreamRegistered(stream); |
| 35 } | 41 } |
| 36 | 42 |
| 37 scoped_refptr<Stream> StreamRegistry::GetStream(const GURL& url) { | 43 scoped_refptr<Stream> StreamRegistry::GetStream(const GURL& url) { |
| 38 DCHECK(CalledOnValidThread()); | 44 DCHECK(CalledOnValidThread()); |
| 39 StreamMap::const_iterator stream = streams_.find(url); | 45 StreamMap::const_iterator stream = streams_.find(url); |
| 40 if (stream != streams_.end()) | 46 if (stream != streams_.end()) |
| 41 return stream->second; | 47 return stream->second; |
| 42 | 48 |
| 43 return NULL; | 49 return NULL; |
| 44 } | 50 } |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 DCHECK(CalledOnValidThread()); | 106 DCHECK(CalledOnValidThread()); |
| 101 DCHECK(register_observers_.find(url) == register_observers_.end()); | 107 DCHECK(register_observers_.find(url) == register_observers_.end()); |
| 102 register_observers_[url] = observer; | 108 register_observers_[url] = observer; |
| 103 } | 109 } |
| 104 | 110 |
| 105 void StreamRegistry::RemoveRegisterObserver(const GURL& url) { | 111 void StreamRegistry::RemoveRegisterObserver(const GURL& url) { |
| 106 DCHECK(CalledOnValidThread()); | 112 DCHECK(CalledOnValidThread()); |
| 107 register_observers_.erase(url); | 113 register_observers_.erase(url); |
| 108 } | 114 } |
| 109 | 115 |
| 116 void StreamRegistry::NotifyReaderAbortedBeforeRegistration(const GURL& url) { |
| 117 DCHECK(CalledOnValidThread()); |
| 118 reader_aborted_urls_.insert(url); |
| 119 } |
| 110 | 120 |
| 111 } // namespace content | 121 } // namespace content |
| OLD | NEW |