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