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. 4 5 #ifndef CHROME_BROWSER_LOCAL_DISCOVERY_PRIVET_HTTP_ASYNCHRONOUS_FACTORY_H_ 6 #define CHROME_BROWSER_LOCAL_DISCOVERY_PRIVET_HTTP_ASYNCHRONOUS_FACTORY_H_ 7 8 #include <string> 9 10 #include "base/callback.h" 11 #include "base/memory/scoped_ptr.h" 12 13 namespace net { 14 class HostPortPair; 15 class URLRequestContextGetter; 16 } 17 18 namespace local_discovery { 19 20 class PrivetHTTPClient; 21 class ServiceDiscoveryClient; 22 23 class PrivetHTTPResolution { 24 public: 25 virtual ~PrivetHTTPResolution() {} 26 virtual void Start() = 0; 27 virtual const std::string& GetName() = 0; 28 }; 29 30 class PrivetHTTPAsynchronousFactory { 31 public: 32 typedef base::Callback<void(scoped_ptr<PrivetHTTPClient>)> ResultCallback; 33 34 virtual ~PrivetHTTPAsynchronousFactory() {} 35 36 static scoped_ptr<PrivetHTTPAsynchronousFactory> CreateInstance( 37 ServiceDiscoveryClient* service_discovery_client, 38 net::URLRequestContextGetter* request_context); 39 40 virtual scoped_ptr<PrivetHTTPResolution> CreatePrivetHTTP( 41 const std::string& name, 42 const net::HostPortPair& address, 43 const ResultCallback& callback) = 0; 44 }; 45 46 } // namespace local_discovery 47 48 #endif // CHROME_BROWSER_LOCAL_DISCOVERY_PRIVET_HTTP_ASYNCHRONOUS_FACTORY_H_ 49