Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(345)

Unified Diff: chrome/utility/local_discovery/service_discovery_client_impl.h

Issue 256923003: Move service_discovery_client_impl.* into chrome/common. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sun 04/27/2014 11:39:04.49 Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/utility/local_discovery/service_discovery_client_impl.h
diff --git a/chrome/utility/local_discovery/service_discovery_client_impl.h b/chrome/utility/local_discovery/service_discovery_client_impl.h
deleted file mode 100644
index bb6128ced0040eab5ea31d06ca38d825752c9c14..0000000000000000000000000000000000000000
--- a/chrome/utility/local_discovery/service_discovery_client_impl.h
+++ /dev/null
@@ -1,273 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_UTILITY_LOCAL_DISCOVERY_SERVICE_DISCOVERY_CLIENT_IMPL_H_
-#define CHROME_UTILITY_LOCAL_DISCOVERY_SERVICE_DISCOVERY_CLIENT_IMPL_H_
-
-#include <map>
-#include <string>
-#include <vector>
-
-#include "base/callback.h"
-#include "base/cancelable_callback.h"
-#include "base/memory/linked_ptr.h"
-#include "base/memory/weak_ptr.h"
-#include "base/message_loop/message_loop.h"
-#include "chrome/common/local_discovery/service_discovery_client.h"
-#include "net/dns/mdns_client.h"
-
-namespace local_discovery {
-
-class ServiceDiscoveryClientImpl : public ServiceDiscoveryClient {
- public:
- // |mdns_client| must outlive the Service Discovery Client.
- explicit ServiceDiscoveryClientImpl(net::MDnsClient* mdns_client);
- virtual ~ServiceDiscoveryClientImpl();
-
- // ServiceDiscoveryClient implementation:
- virtual scoped_ptr<ServiceWatcher> CreateServiceWatcher(
- const std::string& service_type,
- const ServiceWatcher::UpdatedCallback& callback) OVERRIDE;
-
- virtual scoped_ptr<ServiceResolver> CreateServiceResolver(
- const std::string& service_name,
- const ServiceResolver::ResolveCompleteCallback& callback) OVERRIDE;
-
- virtual scoped_ptr<LocalDomainResolver> CreateLocalDomainResolver(
- const std::string& domain,
- net::AddressFamily address_family,
- const LocalDomainResolver::IPAddressCallback& callback) OVERRIDE;
-
- private:
- net::MDnsClient* mdns_client_;
-
- DISALLOW_COPY_AND_ASSIGN(ServiceDiscoveryClientImpl);
-};
-
-class ServiceWatcherImpl : public ServiceWatcher,
- public net::MDnsListener::Delegate,
- public base::SupportsWeakPtr<ServiceWatcherImpl> {
- public:
- ServiceWatcherImpl(const std::string& service_type,
- const ServiceWatcher::UpdatedCallback& callback,
- net::MDnsClient* mdns_client);
- // Listening will automatically stop when the destructor is called.
- virtual ~ServiceWatcherImpl();
-
- // ServiceWatcher implementation:
- virtual void Start() OVERRIDE;
-
- virtual void DiscoverNewServices(bool force_update) OVERRIDE;
-
- virtual void SetActivelyRefreshServices(
- bool actively_refresh_services) OVERRIDE;
-
- virtual std::string GetServiceType() const OVERRIDE;
-
- virtual void OnRecordUpdate(net::MDnsListener::UpdateType update,
- const net::RecordParsed* record) OVERRIDE;
-
- virtual void OnNsecRecord(const std::string& name, unsigned rrtype) OVERRIDE;
-
- virtual void OnCachePurged() OVERRIDE;
-
- virtual void OnTransactionResponse(
- scoped_ptr<net::MDnsTransaction>* transaction,
- net::MDnsTransaction::Result result,
- const net::RecordParsed* record);
-
- private:
- struct ServiceListeners {
- ServiceListeners(const std::string& service_name,
- ServiceWatcherImpl* watcher,
- net::MDnsClient* mdns_client);
- ~ServiceListeners();
- bool Start();
- void SetActiveRefresh(bool auto_update);
-
- void set_update_pending(bool update_pending) {
- update_pending_ = update_pending;
- }
-
- bool update_pending() { return update_pending_; }
-
- void set_has_ptr(bool has_ptr) {
- has_ptr_ = has_ptr;
- }
-
- void set_has_srv(bool has_srv);
-
- bool has_ptr_or_srv() { return has_ptr_ || has_srv_; }
-
- private:
- void OnSRVRecord(net::MDnsTransaction::Result result,
- const net::RecordParsed* record);
-
- void DoQuerySRV();
-
- scoped_ptr<net::MDnsListener> srv_listener_;
- scoped_ptr<net::MDnsListener> txt_listener_;
- scoped_ptr<net::MDnsTransaction> srv_transaction_;
-
- std::string service_name_;
- net::MDnsClient* mdns_client_;
- bool update_pending_;
-
- bool has_ptr_;
- bool has_srv_;
- };
-
- typedef std::map<std::string, linked_ptr<ServiceListeners> >
- ServiceListenersMap;
-
- void ReadCachedServices();
- void AddService(const std::string& service);
- void RemovePTR(const std::string& service);
- void RemoveSRV(const std::string& service);
- void AddSRV(const std::string& service);
- bool CreateTransaction(bool active, bool alert_existing_services,
- bool force_refresh,
- scoped_ptr<net::MDnsTransaction>* transaction);
-
- void DeferUpdate(ServiceWatcher::UpdateType update_type,
- const std::string& service_name);
- void DeliverDeferredUpdate(ServiceWatcher::UpdateType update_type,
- const std::string& service_name);
-
- void ScheduleQuery(int timeout_seconds);
-
- void SendQuery(int next_timeout_seconds, bool force_update);
-
- std::string service_type_;
- ServiceListenersMap services_;
- scoped_ptr<net::MDnsTransaction> transaction_network_;
- scoped_ptr<net::MDnsTransaction> transaction_cache_;
- scoped_ptr<net::MDnsListener> listener_;
-
- ServiceWatcher::UpdatedCallback callback_;
- bool started_;
- bool actively_refresh_services_;
-
- net::MDnsClient* mdns_client_;
-
- DISALLOW_COPY_AND_ASSIGN(ServiceWatcherImpl);
-};
-
-class ServiceResolverImpl
- : public ServiceResolver,
- public base::SupportsWeakPtr<ServiceResolverImpl> {
- public:
- ServiceResolverImpl(const std::string& service_name,
- const ServiceResolver::ResolveCompleteCallback& callback,
- net::MDnsClient* mdns_client);
-
- virtual ~ServiceResolverImpl();
-
- // ServiceResolver implementation:
- virtual void StartResolving() OVERRIDE;
-
- virtual std::string GetName() const OVERRIDE;
-
- private:
- // Respond to transaction finishing for SRV records.
- void SrvRecordTransactionResponse(net::MDnsTransaction::Result status,
- const net::RecordParsed* record);
-
- // Respond to transaction finishing for TXT records.
- void TxtRecordTransactionResponse(net::MDnsTransaction::Result status,
- const net::RecordParsed* record);
-
- // Respond to transaction finishing for A records.
- void ARecordTransactionResponse(net::MDnsTransaction::Result status,
- const net::RecordParsed* record);
-
- void AlertCallbackIfReady();
-
- void ServiceNotFound(RequestStatus status);
-
- // Convert a TXT record to a vector of strings (metadata).
- const std::vector<std::string>& RecordToMetadata(
- const net::RecordParsed* record) const;
-
- // Convert an SRV record to a host and port pair.
- net::HostPortPair RecordToAddress(
- const net::RecordParsed* record) const;
-
- // Convert an A record to an IP address.
- const net::IPAddressNumber& RecordToIPAddress(
- const net::RecordParsed* record) const;
-
- // Convert an MDns status to a service discovery status.
- RequestStatus MDnsStatusToRequestStatus(
- net::MDnsTransaction::Result status) const;
-
- bool CreateTxtTransaction();
- bool CreateSrvTransaction();
- void CreateATransaction();
-
- std::string service_name_;
- ResolveCompleteCallback callback_;
-
- bool has_resolved_;
-
- bool metadata_resolved_;
- bool address_resolved_;
-
- scoped_ptr<net::MDnsTransaction> txt_transaction_;
- scoped_ptr<net::MDnsTransaction> srv_transaction_;
- scoped_ptr<net::MDnsTransaction> a_transaction_;
-
- ServiceDescription service_staging_;
-
- net::MDnsClient* mdns_client_;
-
- DISALLOW_COPY_AND_ASSIGN(ServiceResolverImpl);
-};
-
-class LocalDomainResolverImpl : public LocalDomainResolver {
- public:
- LocalDomainResolverImpl(const std::string& domain,
- net::AddressFamily address_family,
- const IPAddressCallback& callback,
- net::MDnsClient* mdns_client);
- virtual ~LocalDomainResolverImpl();
-
- virtual void Start() OVERRIDE;
-
- const std::string& domain() { return domain_; }
-
- private:
- void OnTransactionComplete(
- net::MDnsTransaction::Result result,
- const net::RecordParsed* record);
-
- scoped_ptr<net::MDnsTransaction> CreateTransaction(uint16 type);
-
- bool IsSuccess();
-
- void SendResolvedAddresses();
-
- std::string domain_;
- net::AddressFamily address_family_;
- IPAddressCallback callback_;
-
- scoped_ptr<net::MDnsTransaction> transaction_a_;
- scoped_ptr<net::MDnsTransaction> transaction_aaaa_;
-
- int transactions_finished_;
-
- net::MDnsClient* mdns_client_;
-
- net::IPAddressNumber address_ipv4_;
- net::IPAddressNumber address_ipv6_;
-
- base::CancelableCallback<void()> timeout_callback_;
-
- DISALLOW_COPY_AND_ASSIGN(LocalDomainResolverImpl);
-};
-
-
-} // namespace local_discovery
-
-#endif // CHROME_UTILITY_LOCAL_DISCOVERY_SERVICE_DISCOVERY_CLIENT_IMPL_H_

Powered by Google App Engine
This is Rietveld 408576698