1 // Copyright 2013 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_H_
6 #define CHROME_BROWSER_LOCAL_DISCOVERY_PRIVET_HTTP_ASYNCHRONOUS_FACTORY_H_
10 #include "base/callback.h"
11 #include "base/memory/scoped_ptr.h"
15 class URLRequestContextGetter
;
18 namespace local_discovery
{
20 class PrivetHTTPClient
;
21 class ServiceDiscoveryClient
;
23 class PrivetHTTPResolution
{
25 virtual ~PrivetHTTPResolution() {}
26 virtual void Start() = 0;
27 virtual const std::string
& GetName() = 0;
30 class PrivetHTTPAsynchronousFactory
{
32 typedef base::Callback
<void(scoped_ptr
<PrivetHTTPClient
>)> ResultCallback
;
34 virtual ~PrivetHTTPAsynchronousFactory() {}
36 static scoped_ptr
<PrivetHTTPAsynchronousFactory
> CreateInstance(
37 ServiceDiscoveryClient
* service_discovery_client
,
38 net::URLRequestContextGetter
* request_context
);
40 virtual scoped_ptr
<PrivetHTTPResolution
> CreatePrivetHTTP(
41 const std::string
& name
,
42 const net::HostPortPair
& address
,
43 const ResultCallback
& callback
) = 0;
46 } // namespace local_discovery
48 #endif // CHROME_BROWSER_LOCAL_DISCOVERY_PRIVET_HTTP_ASYNCHRONOUS_FACTORY_H_