Chromium Code Reviews| Index: chrome/browser/local_discovery/service_discovery_client_mdns.h |
| diff --git a/chrome/browser/local_discovery/service_discovery_client_utility.h b/chrome/browser/local_discovery/service_discovery_client_mdns.h |
| similarity index 60% |
| copy from chrome/browser/local_discovery/service_discovery_client_utility.h |
| copy to chrome/browser/local_discovery/service_discovery_client_mdns.h |
| index 75def15d89d9faf106fef8353afdfcb726be9edc..5662a1f183843f7f6161dcbb64b116823abadc16 100644 |
| --- a/chrome/browser/local_discovery/service_discovery_client_utility.h |
| +++ b/chrome/browser/local_discovery/service_discovery_client_mdns.h |
| @@ -2,8 +2,8 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#ifndef CHROME_BROWSER_LOCAL_DISCOVERY_SERVICE_DISCOVERY_CLIENT_UTILITY_H_ |
| -#define CHROME_BROWSER_LOCAL_DISCOVERY_SERVICE_DISCOVERY_CLIENT_UTILITY_H_ |
| +#ifndef CHROME_BROWSER_LOCAL_DISCOVERY_SERVICE_DISCOVERY_CLIENT_MDNS_H_ |
| +#define CHROME_BROWSER_LOCAL_DISCOVERY_SERVICE_DISCOVERY_CLIENT_MDNS_H_ |
| #include <string> |
| @@ -11,18 +11,18 @@ |
| #include "chrome/browser/local_discovery/service_discovery_shared_client.h" |
| #include "chrome/common/local_discovery/service_discovery_client.h" |
| #include "net/base/network_change_notifier.h" |
| +#include "net/dns/mdns_client.h" |
| namespace local_discovery { |
| -class ServiceDiscoveryHostClient; |
| - |
| -// Wrapper for ServiceDiscoveryHostClient to hide restarting of utility process |
| -// from mdns users. |
| -class ServiceDiscoveryClientUtility |
| +// Implementation of ServiceDiscoverySharedClient with front-end of UI thread |
| +// and networking code on IO thread. |
| +class ServiceDiscoveryClientMdns |
| : public ServiceDiscoverySharedClient, |
| public net::NetworkChangeNotifier::NetworkChangeObserver { |
| public: |
| - ServiceDiscoveryClientUtility(); |
| + class Proxy; |
| + ServiceDiscoveryClientMdns(); |
| // ServiceDiscoveryClient implementation. |
| virtual scoped_ptr<ServiceWatcher> CreateServiceWatcher( |
| @@ -41,20 +41,41 @@ class ServiceDiscoveryClientUtility |
| net::NetworkChangeNotifier::ConnectionType type) OVERRIDE; |
| private: |
| - friend class base::RefCounted<ServiceDiscoveryClientUtility>; |
| + virtual ~ServiceDiscoveryClientMdns(); |
| - virtual ~ServiceDiscoveryClientUtility(); |
| void ScheduleStartNewClient(); |
| void StartNewClient(); |
| + void OnInterfaceListReady(const net::InterfaceIndexFamilyList& interfaces); |
| + void OnMdnsInitialized(bool success); |
| void ReportSuccess(); |
| + void InvalidateWeakPtrs(); |
| + void Reset(); |
| + |
| + bool PostToMdnsThread(const base::Closure& task); |
| + |
| + std::set<Proxy*> proxies_; |
| + |
| + scoped_refptr<base::SequencedTaskRunner> mdns_runner_; |
| + |
| + // Access only on |mdns_runner_| thread. |
| + scoped_ptr<net::MDnsClient> mdns_; |
| + |
| + // Access only on |mdns_runner_| thread. |
| + scoped_ptr<ServiceDiscoveryClient> client_; |
|
Noam Samuel
2014/04/28 20:40:51
Should these have custom destructors so they are d
|
| + |
| + // If false delay tasks until initialization is posted to |mdns_runner_| |
| + // thread. |
| + bool need_dalay_mdns_tasks_; |
| + |
| + // Delayed |mdns_runner_| tasks. |
| + std::vector<base::Closure> delayed_tasks_; |
| - scoped_refptr<ServiceDiscoveryHostClient> host_client_; |
| int restart_attempts_; |
| - base::WeakPtrFactory<ServiceDiscoveryClientUtility> weak_ptr_factory_; |
| + base::WeakPtrFactory<ServiceDiscoveryClientMdns> weak_ptr_factory_; |
| - DISALLOW_COPY_AND_ASSIGN(ServiceDiscoveryClientUtility); |
| + DISALLOW_COPY_AND_ASSIGN(ServiceDiscoveryClientMdns); |
| }; |
| } // namespace local_discovery |
| -#endif // CHROME_BROWSER_LOCAL_DISCOVERY_SERVICE_DISCOVERY_CLIENT_UTILITY_H_ |
| +#endif // CHROME_BROWSER_LOCAL_DISCOVERY_SERVICE_DISCOVERY_CLIENT_MDNS_H_ |