Componentize AccountReconcilor.
[chromium-blink-merge.git] / chrome / browser / local_discovery / privet_http_asynchronous_factory_impl.h
blob880ce019f755912811d58e3b795a99f1928b57bb
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.
5 #ifndef CHROME_BROWSER_LOCAL_DISCOVERY_PRIVET_HTTP_ASYNCHRONOUS_FACTORY_IMPL_H_
6 #define CHROME_BROWSER_LOCAL_DISCOVERY_PRIVET_HTTP_ASYNCHRONOUS_FACTORY_IMPL_H_
8 #include "chrome/browser/local_discovery/privet_http.h"
9 #include "chrome/browser/local_discovery/privet_http_asynchronous_factory.h"
10 #include "chrome/common/local_discovery/service_discovery_client.h"
12 namespace local_discovery {
14 class PrivetHTTPAsynchronousFactoryImpl : public PrivetHTTPAsynchronousFactory {
15 public:
16 PrivetHTTPAsynchronousFactoryImpl(
17 ServiceDiscoveryClient* service_discovery_client,
18 net::URLRequestContextGetter* request_context);
19 virtual ~PrivetHTTPAsynchronousFactoryImpl();
21 virtual scoped_ptr<PrivetHTTPResolution> CreatePrivetHTTP(
22 const std::string& name,
23 const net::HostPortPair& address,
24 const ResultCallback& callback) OVERRIDE;
26 private:
27 class ResolutionImpl : public PrivetHTTPResolution {
28 public:
29 ResolutionImpl(const std::string& name,
30 const net::HostPortPair& address,
31 const ResultCallback& callback,
32 ServiceDiscoveryClient* service_discovery_client,
33 net::URLRequestContextGetter* request_context);
34 virtual ~ResolutionImpl();
36 virtual void Start() OVERRIDE;
37 virtual const std::string& GetName() OVERRIDE;
39 private:
40 void ResolveComplete(bool success,
41 const net::IPAddressNumber& address_ipv4,
42 const net::IPAddressNumber& address_ipv6);
44 std::string name_;
45 scoped_ptr<LocalDomainResolver> resolver_;
46 net::HostPortPair hostport_;
47 ResultCallback callback_;
48 scoped_refptr<net::URLRequestContextGetter> request_context_;
51 ServiceDiscoveryClient* service_discovery_client_;
52 scoped_refptr<net::URLRequestContextGetter> request_context_;
55 } // namespace local_discovery
57 #endif // CHROME_BROWSER_LOCAL_DISCOVERY_PRIVET_HTTP_ASYNCHRONOUS_FACTORY_IMPL_H_