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 8#include <string> 9 10#include "base/memory/ref_counted.h" 11#include "base/time/time.h" 12#include "net/base/net_export.h" 13 14namespace base { 15class HistogramBase; 16} 17 18namespace net { 19 20class NET_EXPORT_PRIVATE 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 void AddErrorCode(int error_code) const; 30 31 private: 32 base::HistogramBase* socket_type_; 33 base::HistogramBase* request_time_; 34 base::HistogramBase* unused_idle_time_; 35 base::HistogramBase* reused_idle_time_; 36 base::HistogramBase* error_code_; 37 38 bool is_http_proxy_connection_; 39 bool is_socks_connection_; 40 41 DISALLOW_COPY_AND_ASSIGN(ClientSocketPoolHistograms); 42}; 43 44} // namespace net 45 46#endif // NET_SOCKET_CLIENT_SOCKET_POOL_HISTOGRAMS_H_ 47