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
{
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
;
27 class ResolutionImpl
: public PrivetHTTPResolution
{
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
;
40 void ResolveComplete(bool success
,
41 const net::IPAddressNumber
& address_ipv4
,
42 const net::IPAddressNumber
& address_ipv6
);
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_