#ifndef EXTENSIONS_BROWSER_UPDATER_REQUEST_QUEUE_IMPL_H_
#define EXTENSIONS_BROWSER_UPDATER_REQUEST_QUEUE_IMPL_H_
#include <stddef.h>
#include <algorithm>
#include <memory>
#include <utility>
#include "base/compiler_specific.h"
#include "base/functional/bind.h"
#include "extensions/browser/updater/request_queue.h"
namespace extensions {
template <typename T>
RequestQueue<T>::RequestQueue(
net::BackoffEntry::Policy backoff_policy,
const base::RepeatingClosure& start_request_callback)
: … { … }
template <typename T>
RequestQueue<T>::~RequestQueue() = default;
template <typename T>
T* RequestQueue<T>::active_request() { … }
template <typename T>
int RequestQueue<T>::active_request_failure_count() { … }
template <typename T>
typename RequestQueue<T>::Request RequestQueue<T>::reset_active_request() { … }
template <typename T>
void RequestQueue<T>::ScheduleRequest(std::unique_ptr<T> request) { … }
template <typename T>
void RequestQueue<T>::ScheduleRetriedRequest(
Request request,
const base::TimeDelta& min_backoff_delay) { … }
template <typename T>
void RequestQueue<T>::PushImpl(Request request) { … }
template <typename T>
bool RequestQueue<T>::empty() const { … }
template <typename T>
size_t RequestQueue<T>::size() const { … }
template <typename T>
base::TimeTicks RequestQueue<T>::NextReleaseTime() const { … }
template <typename T>
void RequestQueue<T>::StartNextRequest() { … }
template <typename T>
void RequestQueue<T>::RetryRequest(const base::TimeDelta& min_backoff_delay) { … }
template <typename T>
typename RequestQueue<T>::iterator RequestQueue<T>::begin() { … }
template <typename T>
typename RequestQueue<T>::iterator RequestQueue<T>::end() { … }
template <typename T>
std::vector<std::unique_ptr<T>> RequestQueue<T>::erase_if(
base::RepeatingCallback<bool(const T&)> condition) { … }
template <typename T>
void RequestQueue<T>::set_backoff_policy(
const net::BackoffEntry::Policy backoff_policy) { … }
template <typename T>
bool RequestQueue<T>::CompareRequests(const Request& a, const Request& b) { … }
}
#endif