Index: net/base/network_throttle_manager.cc |
diff --git a/net/base/network_throttle_manager.cc b/net/base/network_throttle_manager.cc |
deleted file mode 100644 |
index e416ed068e9545d6ec37c13fd86626b5a76dd5bc..0000000000000000000000000000000000000000 |
--- a/net/base/network_throttle_manager.cc |
+++ /dev/null |
@@ -1,144 +0,0 @@ |
-// Copyright 2016 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "net/base/network_throttle_manager.h" |
- |
-#include "base/logging.h" |
-#include "net/base/priority_queue.h" |
- |
-namespace net { |
- |
-namespace { |
- |
-class NetworkThrottleManagerImpl : public NetworkThrottleManager { |
- public: |
- class ThrottleImpl : public NetworkThrottleManager::Throttle { |
- public: |
- using QueuePointer = PriorityQueue<ThrottleImpl*>::Pointer; |
- |
- // Caller must arrange that |*delegate| and |*throttler| outlive |
- // the ThrottleImpl class. |
- ThrottleImpl(bool throttled, |
- RequestPriority priority, |
- ThrottleDelegate* delegate, |
- NetworkThrottleManagerImpl* throttler); |
- |
- ~ThrottleImpl() override; |
- |
- // Throttle |
- bool IsThrottled() const override; |
- void SetPriority(RequestPriority priority) override; |
- |
- QueuePointer queue_pointer() const { return queue_pointer_; } |
- void set_queue_pointer(const QueuePointer& pointer) { |
- queue_pointer_ = pointer; |
- } |
- |
- // Note that this call calls the delegate, and hence |
- // may result in re-entrant calls into the throttler or |
- // ThrottleImpl. The throttler should not rely on |
- // any state other than its own existence being persistent |
- // across this call. |
- void NotifyUnthrottled(); |
- |
- private: |
- bool throttled_; |
- ThrottleDelegate* const delegate_; |
- PriorityQueue<ThrottleImpl*>::Pointer queue_pointer_; |
- |
- NetworkThrottleManagerImpl* const throttler_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ThrottleImpl); |
- }; |
- |
- NetworkThrottleManagerImpl(); |
- ~NetworkThrottleManagerImpl() override; |
- |
- std::unique_ptr<Throttle> CreateThrottle(ThrottleDelegate* delegate, |
- RequestPriority priority, |
- bool ignore_limits) override; |
- |
- private: |
- void OnStreamPriorityChanged(ThrottleImpl* throttle, |
- RequestPriority new_priority); |
- void OnStreamDestroyed(ThrottleImpl* throttle); |
- |
- PriorityQueue<ThrottleImpl*> priority_queue_; |
- |
- DISALLOW_COPY_AND_ASSIGN(NetworkThrottleManagerImpl); |
-}; |
- |
-// Currently this is a null implementation that does no throttling; |
-// all entries are created in the unthrottled state, and no throttle state |
-// change notifications are transmitted. |
- |
-NetworkThrottleManagerImpl::ThrottleImpl::ThrottleImpl( |
- bool throttled, |
- RequestPriority priority, |
- NetworkThrottleManager::ThrottleDelegate* delegate, |
- NetworkThrottleManagerImpl* throttler) |
- : throttled_(throttled), delegate_(delegate), throttler_(throttler) { |
- DCHECK(delegate); |
-} |
- |
-NetworkThrottleManagerImpl::ThrottleImpl::~ThrottleImpl() { |
- throttler_->OnStreamDestroyed(this); |
-} |
- |
-void NetworkThrottleManagerImpl::ThrottleImpl::SetPriority( |
- RequestPriority priority) { |
- throttler_->OnStreamPriorityChanged(this, priority); |
-} |
- |
-bool NetworkThrottleManagerImpl::ThrottleImpl::IsThrottled() const { |
- return throttled_; |
-} |
- |
-void NetworkThrottleManagerImpl::ThrottleImpl::NotifyUnthrottled() { |
- // This methods should only be called once, and only if the |
- // current state is throttled. |
- DCHECK(throttled_); |
- throttled_ = false; |
- delegate_->OnThrottleStateChanged(); |
-} |
- |
-NetworkThrottleManagerImpl::NetworkThrottleManagerImpl() |
- : priority_queue_(MAXIMUM_PRIORITY + 1) {} |
- |
-NetworkThrottleManagerImpl::~NetworkThrottleManagerImpl() {} |
- |
-std::unique_ptr<NetworkThrottleManager::Throttle> |
-NetworkThrottleManagerImpl::CreateThrottle( |
- NetworkThrottleManager::ThrottleDelegate* delegate, |
- RequestPriority priority, |
- bool ignore_limits) { |
- std::unique_ptr<NetworkThrottleManagerImpl::ThrottleImpl> stream( |
- new ThrottleImpl(false, priority, delegate, this)); |
- |
- stream->set_queue_pointer(priority_queue_.Insert(stream.get(), priority)); |
- |
- return std::move(stream); |
-} |
- |
-void NetworkThrottleManagerImpl::OnStreamPriorityChanged( |
- NetworkThrottleManagerImpl::ThrottleImpl* stream, |
- RequestPriority new_priority) { |
- priority_queue_.Erase(stream->queue_pointer()); |
- stream->set_queue_pointer(priority_queue_.Insert(stream, new_priority)); |
-} |
- |
-void NetworkThrottleManagerImpl::OnStreamDestroyed(ThrottleImpl* stream) { |
- priority_queue_.Erase(stream->queue_pointer()); |
-} |
- |
-} // namespace |
- |
-// static |
-std::unique_ptr<NetworkThrottleManager> |
-NetworkThrottleManager::CreateThrottler() { |
- return std::unique_ptr<NetworkThrottleManager>( |
- new NetworkThrottleManagerImpl); |
-} |
- |
-} // namespace net |