Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(42)

Side by Side Diff: net/proxy/proxy_resolver.h

Issue 848006: Generalize the net module's LoadLog facility from a passive container, to an event stream (NetLog). (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Split up RequestTracker into ConnectJobTracker+RequestTracker+RequestTrackerBase, address comments Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/proxy/mock_proxy_resolver.h ('k') | net/proxy/proxy_resolver_js_bindings.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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_PROXY_PROXY_RESOLVER_H_ 5 #ifndef NET_PROXY_PROXY_RESOLVER_H_
6 #define NET_PROXY_PROXY_RESOLVER_H_ 6 #define NET_PROXY_PROXY_RESOLVER_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "googleurl/src/gurl.h" 11 #include "googleurl/src/gurl.h"
12 #include "net/base/completion_callback.h" 12 #include "net/base/completion_callback.h"
13 13
14 namespace net { 14 namespace net {
15 15
16 class LoadLog; 16 class BoundNetLog;
17 class ProxyInfo; 17 class ProxyInfo;
18 18
19 // Interface for "proxy resolvers". A ProxyResolver fills in a list of proxies 19 // Interface for "proxy resolvers". A ProxyResolver fills in a list of proxies
20 // to use for a particular URL. Generally the backend for a ProxyResolver is 20 // to use for a particular URL. Generally the backend for a ProxyResolver is
21 // a PAC script, but it doesn't need to be. ProxyResolver can service multiple 21 // a PAC script, but it doesn't need to be. ProxyResolver can service multiple
22 // requests at a time. 22 // requests at a time.
23 class ProxyResolver { 23 class ProxyResolver {
24 public: 24 public:
25 // Opaque pointer type, to return a handle to cancel outstanding requests. 25 // Opaque pointer type, to return a handle to cancel outstanding requests.
26 typedef void* RequestHandle; 26 typedef void* RequestHandle;
27 27
28 // See |expects_pac_bytes()| for the meaning of |expects_pac_bytes|. 28 // See |expects_pac_bytes()| for the meaning of |expects_pac_bytes|.
29 explicit ProxyResolver(bool expects_pac_bytes) 29 explicit ProxyResolver(bool expects_pac_bytes)
30 : expects_pac_bytes_(expects_pac_bytes) {} 30 : expects_pac_bytes_(expects_pac_bytes) {}
31 31
32 virtual ~ProxyResolver() {} 32 virtual ~ProxyResolver() {}
33 33
34 // Gets a list of proxy servers to use for |url|. If the request will 34 // Gets a list of proxy servers to use for |url|. If the request will
35 // complete asynchronously returns ERR_IO_PENDING and notifies the result 35 // complete asynchronously returns ERR_IO_PENDING and notifies the result
36 // by running |callback|. If the result code is OK then 36 // by running |callback|. If the result code is OK then
37 // the request was successful and |results| contains the proxy 37 // the request was successful and |results| contains the proxy
38 // resolution information. In the case of asynchronous completion 38 // resolution information. In the case of asynchronous completion
39 // |*request| is written to, and can be passed to CancelRequest(). 39 // |*request| is written to, and can be passed to CancelRequest().
40 virtual int GetProxyForURL(const GURL& url, 40 virtual int GetProxyForURL(const GURL& url,
41 ProxyInfo* results, 41 ProxyInfo* results,
42 CompletionCallback* callback, 42 CompletionCallback* callback,
43 RequestHandle* request, 43 RequestHandle* request,
44 LoadLog* load_log) = 0; 44 const BoundNetLog& net_log) = 0;
45 45
46 // Cancels |request|. 46 // Cancels |request|.
47 virtual void CancelRequest(RequestHandle request) = 0; 47 virtual void CancelRequest(RequestHandle request) = 0;
48 48
49 // The PAC script backend can be specified to the ProxyResolver either via 49 // The PAC script backend can be specified to the ProxyResolver either via
50 // URL, or via the javascript text itself. If |expects_pac_bytes| is true, 50 // URL, or via the javascript text itself. If |expects_pac_bytes| is true,
51 // then PAC scripts should be specified using SetPacScriptByData(). Otherwise 51 // then PAC scripts should be specified using SetPacScriptByData(). Otherwise
52 // they should be specified using SetPacScriptByUrl(). 52 // they should be specified using SetPacScriptByUrl().
53 bool expects_pac_bytes() const { return expects_pac_bytes_; } 53 bool expects_pac_bytes() const { return expects_pac_bytes_; }
54 54
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 CompletionCallback* callback) = 0; 86 CompletionCallback* callback) = 0;
87 87
88 const bool expects_pac_bytes_; 88 const bool expects_pac_bytes_;
89 89
90 DISALLOW_COPY_AND_ASSIGN(ProxyResolver); 90 DISALLOW_COPY_AND_ASSIGN(ProxyResolver);
91 }; 91 };
92 92
93 } // namespace net 93 } // namespace net
94 94
95 #endif // NET_PROXY_PROXY_RESOLVER_H_ 95 #endif // NET_PROXY_PROXY_RESOLVER_H_
OLDNEW
« no previous file with comments | « net/proxy/mock_proxy_resolver.h ('k') | net/proxy/proxy_resolver_js_bindings.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698