| Index: net/socket/client_socket_pool_base.h
|
| diff --git a/net/socket/client_socket_pool_base.h b/net/socket/client_socket_pool_base.h
|
| index 74e65235d43cfec1177786b6c07d9b5a70f16ef3..79f18886bda017f198ce24f0f89bc9bde0e0c935 100644
|
| --- a/net/socket/client_socket_pool_base.h
|
| +++ b/net/socket/client_socket_pool_base.h
|
| @@ -188,6 +188,7 @@ class NET_EXPORT_PRIVATE ClientSocketPoolBaseHelper
|
| ClientSocketHandle* handle() const { return handle_; }
|
| const CompletionCallback& callback() const { return callback_; }
|
| RequestPriority priority() const { return priority_; }
|
| + void set_priority(RequestPriority priority) { priority_ = priority; }
|
| ClientSocketPool::RespectLimits respect_limits() const {
|
| return respect_limits_;
|
| }
|
| @@ -206,8 +207,7 @@ class NET_EXPORT_PRIVATE ClientSocketPoolBaseHelper
|
|
|
| ClientSocketHandle* const handle_;
|
| const CompletionCallback callback_;
|
| - // TODO(akalin): Support reprioritization.
|
| - const RequestPriority priority_;
|
| + RequestPriority priority_;
|
| const ClientSocketPool::RespectLimits respect_limits_;
|
| const Flags flags_;
|
| const BoundNetLog net_log_;
|
| @@ -258,13 +258,18 @@ class NET_EXPORT_PRIVATE ClientSocketPoolBaseHelper
|
|
|
| // See ClientSocketPool::RequestSocket for documentation on this function.
|
| int RequestSocket(const std::string& group_name,
|
| - std::unique_ptr<const Request> request);
|
| + std::unique_ptr<Request> request);
|
|
|
| - // See ClientSocketPool::RequestSocket for documentation on this function.
|
| + // See ClientSocketPool::RequestSockets for documentation on this function.
|
| void RequestSockets(const std::string& group_name,
|
| const Request& request,
|
| int num_sockets);
|
|
|
| + // See ClientSocketPool::SetPriority for documentation on this function.
|
| + void SetPriority(const std::string& group_name,
|
| + ClientSocketHandle* handle,
|
| + RequestPriority priority);
|
| +
|
| // See ClientSocketPool::CancelRequest for documentation on this function.
|
| void CancelRequest(const std::string& group_name,
|
| ClientSocketHandle* handle);
|
| @@ -380,8 +385,8 @@ class NET_EXPORT_PRIVATE ClientSocketPoolBaseHelper
|
| base::TimeTicks start_time;
|
| };
|
|
|
| - typedef PriorityQueue<const Request*> RequestQueue;
|
| - typedef std::map<const ClientSocketHandle*, const Request*> RequestMap;
|
| + typedef PriorityQueue<Request*> RequestQueue;
|
| + typedef std::map<const ClientSocketHandle*, Request*> RequestMap;
|
|
|
| // A Group is allocated per group_name when there are idle sockets or pending
|
| // requests. Otherwise, the Group object is removed from the map.
|
| @@ -457,15 +462,15 @@ class NET_EXPORT_PRIVATE ClientSocketPoolBaseHelper
|
| // Inserts the request into the queue based on priority
|
| // order. Older requests are prioritized over requests of equal
|
| // priority.
|
| - void InsertPendingRequest(std::unique_ptr<const Request> request);
|
| + void InsertPendingRequest(std::unique_ptr<Request> request);
|
|
|
| // Gets and removes the next pending request. Returns NULL if
|
| // there are no pending requests.
|
| - std::unique_ptr<const Request> PopNextPendingRequest();
|
| + std::unique_ptr<Request> PopNextPendingRequest();
|
|
|
| // Finds the pending request for |handle| and removes it. Returns
|
| // the removed pending request, or NULL if there was none.
|
| - std::unique_ptr<const Request> FindAndRemovePendingRequest(
|
| + std::unique_ptr<Request> FindAndRemovePendingRequest(
|
| ClientSocketHandle* handle);
|
|
|
| void IncrementActiveSocketCount() { active_socket_count_++; }
|
| @@ -480,7 +485,7 @@ class NET_EXPORT_PRIVATE ClientSocketPoolBaseHelper
|
| private:
|
| // Returns the iterator's pending request after removing it from
|
| // the queue.
|
| - std::unique_ptr<const Request> RemovePendingRequest(
|
| + std::unique_ptr<Request> RemovePendingRequest(
|
| const RequestQueue::Pointer& pointer);
|
|
|
| // Called when the backup socket timer fires.
|
| @@ -766,7 +771,7 @@ class ClientSocketPoolBase {
|
| ClientSocketHandle* handle,
|
| const CompletionCallback& callback,
|
| const BoundNetLog& net_log) {
|
| - std::unique_ptr<const Request> request(new Request(
|
| + std::unique_ptr<Request> request(new Request(
|
| handle, callback, priority, respect_limits,
|
| internal::ClientSocketPoolBaseHelper::NORMAL, params, net_log));
|
| return helper_.RequestSocket(group_name, std::move(request));
|
| @@ -786,6 +791,12 @@ class ClientSocketPoolBase {
|
| helper_.RequestSockets(group_name, request, num_sockets);
|
| }
|
|
|
| + void SetPriority(const std::string& group_name,
|
| + ClientSocketHandle* handle,
|
| + RequestPriority priority) {
|
| + return helper_.SetPriority(group_name, handle, priority);
|
| + }
|
| +
|
| void CancelRequest(const std::string& group_name,
|
| ClientSocketHandle* handle) {
|
| return helper_.CancelRequest(group_name, handle);
|
|
|