Add GCMChannelStatusSyncer to schedule requests and enable/disable GCM
[chromium-blink-merge.git] / chrome / browser / local_discovery / privet_http_asynchronous_factory.h
blob388208135d2e3555dd30aa4dfcaaf4d4c3879d7e
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_
8 #include <string>
10 #include "base/callback.h"
11 #include "base/memory/scoped_ptr.h"
13 namespace net {
14 class HostPortPair;
15 class URLRequestContextGetter;
18 namespace local_discovery {
20 class PrivetHTTPClient;
21 class ServiceDiscoveryClient;
23 class PrivetHTTPResolution {
24 public:
25 virtual ~PrivetHTTPResolution() {}
26 virtual void Start() = 0;
27 virtual const std::string& GetName() = 0;
30 class PrivetHTTPAsynchronousFactory {
31 public:
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_