Merge autoland to mozilla-central. a=merge
[gecko.git] / netwerk / ipc / ProxyConfigLookup.h
blobedef151964ce3939eb21efe91107bcf6823e94c2
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #ifndef mozilla_net_ProxyConfigLookup_h
8 #define mozilla_net_ProxyConfigLookup_h
10 #include <functional>
11 #include "nsIProtocolProxyCallback.h"
12 #include "nsCOMPtr.h"
14 class nsIURI;
16 namespace mozilla {
17 namespace net {
19 class ProxyConfigLookup final : public nsIProtocolProxyCallback {
20 public:
21 NS_DECL_ISUPPORTS
22 NS_DECL_NSIPROTOCOLPROXYCALLBACK
24 static nsresult Create(
25 std::function<void(nsIProxyInfo*, nsresult)>&& aCallback, nsIURI* aURI,
26 uint32_t aProxyResolveFlags,
27 nsICancelable** aLookupCancellable = nullptr);
29 private:
30 explicit ProxyConfigLookup(
31 std::function<void(nsIProxyInfo*, nsresult)>&& aCallback, nsIURI* aURI,
32 uint32_t aProxyResolveFlags);
33 virtual ~ProxyConfigLookup();
34 nsresult DoProxyResolve(nsICancelable** aLookupCancellable);
36 std::function<void(nsIProxyInfo*, nsresult)> mCallback;
37 nsCOMPtr<nsIURI> mURI;
38 uint32_t mProxyResolveFlags;
41 } // namespace net
42 } // namespace mozilla
44 #endif // mozilla_net_ProxyConfigLookup_h