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