OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef NET_LOG_NET_LOG_UTIL_H_ | 5 #ifndef NET_LOG_NET_LOG_UTIL_H_ |
6 #define NET_LOG_NET_LOG_UTIL_H_ | 6 #define NET_LOG_NET_LOG_UTIL_H_ |
7 | 7 |
| 8 #include <memory> |
8 #include <set> | 9 #include <set> |
9 | 10 |
10 #include "base/memory/scoped_ptr.h" | |
11 #include "net/base/net_export.h" | 11 #include "net/base/net_export.h" |
12 #include "net/log/net_log.h" | 12 #include "net/log/net_log.h" |
13 | 13 |
14 namespace base { | 14 namespace base { |
15 class DictionaryValue; | 15 class DictionaryValue; |
16 class Value; | 16 class Value; |
17 } | 17 } |
18 | 18 |
19 namespace net { | 19 namespace net { |
20 | 20 |
21 class URLRequestContext; | 21 class URLRequestContext; |
22 | 22 |
23 // A set of flags that can be OR'd together to request specific information | 23 // A set of flags that can be OR'd together to request specific information |
24 // about the current state of the URLRequestContext. See GetNetInfo, below. | 24 // about the current state of the URLRequestContext. See GetNetInfo, below. |
25 enum NetInfoSource { | 25 enum NetInfoSource { |
26 #define NET_INFO_SOURCE(label, string, value) NET_INFO_##label = value, | 26 #define NET_INFO_SOURCE(label, string, value) NET_INFO_##label = value, |
27 #include "net/base/net_info_source_list.h" | 27 #include "net/base/net_info_source_list.h" |
28 #undef NET_INFO_SOURCE | 28 #undef NET_INFO_SOURCE |
29 NET_INFO_ALL_SOURCES = -1, | 29 NET_INFO_ALL_SOURCES = -1, |
30 }; | 30 }; |
31 | 31 |
32 // Utility methods for creating NetLog dumps. | 32 // Utility methods for creating NetLog dumps. |
33 | 33 |
34 // Create a dictionary containing a legend for net/ constants. | 34 // Create a dictionary containing a legend for net/ constants. |
35 NET_EXPORT scoped_ptr<base::DictionaryValue> GetNetConstants(); | 35 NET_EXPORT std::unique_ptr<base::DictionaryValue> GetNetConstants(); |
36 | 36 |
37 // Retrieves a dictionary containing information about the current state of | 37 // Retrieves a dictionary containing information about the current state of |
38 // |context|. |info_sources| is a set of NetInfoSources OR'd together, | 38 // |context|. |info_sources| is a set of NetInfoSources OR'd together, |
39 // indicating just what information is being requested. Each NetInfoSource adds | 39 // indicating just what information is being requested. Each NetInfoSource adds |
40 // one top-level entry to the returned dictionary. | 40 // one top-level entry to the returned dictionary. |
41 // | 41 // |
42 // May only be called on |context|'s thread. | 42 // May only be called on |context|'s thread. |
43 NET_EXPORT scoped_ptr<base::DictionaryValue> GetNetInfo( | 43 NET_EXPORT std::unique_ptr<base::DictionaryValue> GetNetInfo( |
44 URLRequestContext* context, | 44 URLRequestContext* context, |
45 int info_sources); | 45 int info_sources); |
46 | 46 |
47 // Takes in a set of contexts and a NetLog::Observer, and passes in | 47 // Takes in a set of contexts and a NetLog::Observer, and passes in |
48 // NetLog::Entries to the observer for certain NetLog::Sources with pending | 48 // NetLog::Entries to the observer for certain NetLog::Sources with pending |
49 // events. This allows requests that were ongoing when logging was started to | 49 // events. This allows requests that were ongoing when logging was started to |
50 // have an initial event that has some information. This is particularly useful | 50 // have an initial event that has some information. This is particularly useful |
51 // for hung requests. Note that these calls are not protected by the NetLog's | 51 // for hung requests. Note that these calls are not protected by the NetLog's |
52 // lock, so this should generally be invoked before the observer starts watching | 52 // lock, so this should generally be invoked before the observer starts watching |
53 // the NetLog. | 53 // the NetLog. |
54 // | 54 // |
55 // All members of |contexts| must be using the same NetLog, and live on the | 55 // All members of |contexts| must be using the same NetLog, and live on the |
56 // current thread. | 56 // current thread. |
57 // | 57 // |
58 // Currently only creates events for URLRequests. | 58 // Currently only creates events for URLRequests. |
59 // | 59 // |
60 // The reason for not returning a list of NetLog::Entries is that entries don't | 60 // The reason for not returning a list of NetLog::Entries is that entries don't |
61 // own most of their data, so it's simplest just to pass them in to the observer | 61 // own most of their data, so it's simplest just to pass them in to the observer |
62 // directly while their data is on the stack. | 62 // directly while their data is on the stack. |
63 NET_EXPORT void CreateNetLogEntriesForActiveObjects( | 63 NET_EXPORT void CreateNetLogEntriesForActiveObjects( |
64 const std::set<URLRequestContext*>& contexts, | 64 const std::set<URLRequestContext*>& contexts, |
65 NetLog::ThreadSafeObserver* observer); | 65 NetLog::ThreadSafeObserver* observer); |
66 | 66 |
67 } // namespace net | 67 } // namespace net |
68 | 68 |
69 #endif // NET_LOG_NET_LOG_UTIL_H_ | 69 #endif // NET_LOG_NET_LOG_UTIL_H_ |
OLD | NEW |