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 14 namespace base { 15 class HistogramBase; 16 } 17 18 namespace net { 19 20 class 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