1// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef NET_SOCKET_CLIENT_SOCKET_POOL_HISTOGRAMS_H_ 6#define NET_SOCKET_CLIENT_SOCKET_POOL_HISTOGRAMS_H_ 7#pragma once 8 9#include <string> 10 11#include "base/memory/ref_counted.h" 12#include "base/time.h" 13 14namespace base { 15class Histogram; 16} 17 18namespace net { 19 20class ClientSocketPoolHistograms { 21 public: 22 ClientSocketPoolHistograms(const std::string& pool_name); 23 ~ClientSocketPoolHistograms(); 24 25 void AddSocketType(int socket_reuse_type) const; 26 void AddRequestTime(base::TimeDelta time) const; 27 void AddUnusedIdleTime(base::TimeDelta time) const; 28 void AddReusedIdleTime(base::TimeDelta time) const; 29 30 private: 31 base::Histogram* socket_type_; 32 base::Histogram* request_time_; 33 base::Histogram* unused_idle_time_; 34 base::Histogram* reused_idle_time_; 35 36 bool is_http_proxy_connection_; 37 bool is_socks_connection_; 38 39 DISALLOW_COPY_AND_ASSIGN(ClientSocketPoolHistograms); 40}; 41 42} // namespace net 43 44#endif // NET_SOCKET_CLIENT_SOCKET_POOL_HISTOGRAMS_H_ 45