| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // | 4 // |
| 5 // Collect metrics of SocketStream usage. | 5 // Collect metrics of SocketStream usage. |
| 6 // TODO(ukai): collect WebSocket specific metrics (e.g. handshake time, etc). | 6 // TODO(ukai): collect WebSocket specific metrics (e.g. handshake time, etc). |
| 7 | 7 |
| 8 #ifndef NET_SOCKET_STREAM_SOCKET_STREAM_METRICS_H_ | 8 #ifndef NET_SOCKET_STREAM_SOCKET_STREAM_METRICS_H_ |
| 9 #define NET_SOCKET_STREAM_SOCKET_STREAM_METRICS_H_ | 9 #define NET_SOCKET_STREAM_SOCKET_STREAM_METRICS_H_ |
| 10 #pragma once | 10 #pragma once |
| 11 | 11 |
| 12 #include "base/basictypes.h" | 12 #include "base/basictypes.h" |
| 13 #include "base/time.h" | 13 #include "base/time.h" |
| 14 | 14 |
| 15 class GURL; | 15 class GURL; |
| 16 | 16 |
| 17 namespace net { | 17 namespace net { |
| 18 | 18 |
| 19 class SocketStreamMetrics { | 19 class SocketStreamMetrics { |
| 20 public: | 20 public: |
| 21 explicit SocketStreamMetrics(const GURL& url); | |
| 22 ~SocketStreamMetrics(); | |
| 23 | |
| 24 void OnWaitConnection(); | |
| 25 void OnStartConnection(); | |
| 26 void OnTunnelProxy(); | |
| 27 void OnSOCKSProxy(); | |
| 28 void OnSSLConnection(); | |
| 29 void OnConnected(); | |
| 30 void OnRead(int len); | |
| 31 void OnWrite(int len); | |
| 32 void OnClose(); | |
| 33 | |
| 34 enum ProtocolType { | 21 enum ProtocolType { |
| 35 PROTOCOL_UNKNOWN, | 22 PROTOCOL_UNKNOWN, |
| 36 PROTOCOL_WEBSOCKET, | 23 PROTOCOL_WEBSOCKET, |
| 37 PROTOCOL_WEBSOCKET_SECURE, | 24 PROTOCOL_WEBSOCKET_SECURE, |
| 38 NUM_PROTOCOL_TYPES, | 25 NUM_PROTOCOL_TYPES, |
| 39 }; | 26 }; |
| 27 |
| 40 enum ConnectionType { | 28 enum ConnectionType { |
| 41 CONNECTION_NONE, | 29 CONNECTION_NONE, |
| 42 ALL_CONNECTIONS, | 30 ALL_CONNECTIONS, |
| 43 TUNNEL_CONNECTION, | 31 TUNNEL_CONNECTION, |
| 44 SOCKS_CONNECTION, | 32 SOCKS_CONNECTION, |
| 45 SSL_CONNECTION, | 33 SSL_CONNECTION, |
| 46 NUM_CONNECTION_TYPES, | 34 NUM_CONNECTION_TYPES, |
| 47 }; | 35 }; |
| 48 | 36 |
| 37 explicit SocketStreamMetrics(const GURL& url); |
| 38 ~SocketStreamMetrics(); |
| 39 |
| 40 void OnWaitConnection(); |
| 41 void OnStartConnection(); |
| 42 void OnTunnelProxy(); |
| 43 void OnSOCKSProxy(); |
| 44 void OnSSLConnection(); |
| 45 void OnConnected(); |
| 46 void OnRead(int len); |
| 47 void OnWrite(int len); |
| 48 void OnClose(); |
| 49 |
| 49 private: | 50 private: |
| 50 void CountProtocolType(ProtocolType protocol_type); | 51 void CountProtocolType(ProtocolType protocol_type); |
| 51 void CountConnectionType(ConnectionType connection_type); | 52 void CountConnectionType(ConnectionType connection_type); |
| 52 | 53 |
| 53 base::TimeTicks wait_start_time_; | 54 base::TimeTicks wait_start_time_; |
| 54 base::TimeTicks connect_start_time_; | 55 base::TimeTicks connect_start_time_; |
| 55 base::TimeTicks connect_establish_time_; | 56 base::TimeTicks connect_establish_time_; |
| 56 int received_bytes_; | 57 int received_bytes_; |
| 57 int received_counts_; | 58 int received_counts_; |
| 58 int sent_bytes_; | 59 int sent_bytes_; |
| 59 int sent_counts_; | 60 int sent_counts_; |
| 60 | 61 |
| 61 DISALLOW_COPY_AND_ASSIGN(SocketStreamMetrics); | 62 DISALLOW_COPY_AND_ASSIGN(SocketStreamMetrics); |
| 62 }; | 63 }; |
| 63 | 64 |
| 64 } // namespace net | 65 } // namespace net |
| 65 | 66 |
| 66 #endif // NET_SOCKET_STREAM_SOCKET_STREAM_METRICS_H_ | 67 #endif // NET_SOCKET_STREAM_SOCKET_STREAM_METRICS_H_ |
| OLD | NEW |