| OLD | NEW | 
|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef CHROME_BROWSER_LOCAL_DISCOVERY_SERVICE_DISCOVERY_CLIENT_H_ | 5 #ifndef CHROME_BROWSER_LOCAL_DISCOVERY_SERVICE_DISCOVERY_CLIENT_H_ | 
| 6 #define CHROME_BROWSER_LOCAL_DISCOVERY_SERVICE_DISCOVERY_CLIENT_H_ | 6 #define CHROME_BROWSER_LOCAL_DISCOVERY_SERVICE_DISCOVERY_CLIENT_H_ | 
| 7 | 7 | 
| 8 #include <string> | 8 #include <string> | 
| 9 #include <vector> | 9 #include <vector> | 
| 10 | 10 | 
| 11 #include "base/callback.h" | 11 #include "base/callback.h" | 
| 12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" | 
| 13 #include "base/time/time.h" | 13 #include "base/time/time.h" | 
| 14 #include "net/base/address_family.h" | 14 #include "net/base/address_family.h" | 
| 15 #include "net/base/host_port_pair.h" | 15 #include "net/base/host_port_pair.h" | 
| 16 #include "net/base/ip_address.h" | 16 #include "net/base/ip_address_number.h" | 
| 17 | 17 | 
| 18 namespace net { | 18 namespace net { | 
| 19 class MDnsClient; | 19 class MDnsClient; | 
| 20 } | 20 } | 
| 21 | 21 | 
| 22 namespace local_discovery { | 22 namespace local_discovery { | 
| 23 | 23 | 
| 24 struct ServiceDescription { | 24 struct ServiceDescription { | 
| 25  public: | 25  public: | 
| 26   ServiceDescription(); | 26   ServiceDescription(); | 
| 27   ~ServiceDescription(); | 27   ~ServiceDescription(); | 
| 28 | 28 | 
| 29   // Convenience function to get useful parts of the service name. A service | 29   // Convenience function to get useful parts of the service name. A service | 
| 30   // name follows the format <instance_name>.<service_type>. | 30   // name follows the format <instance_name>.<service_type>. | 
| 31   std::string instance_name() const; | 31   std::string instance_name() const; | 
| 32   std::string service_type() const; | 32   std::string service_type() const; | 
| 33 | 33 | 
| 34   // The name of the service. | 34   // The name of the service. | 
| 35   std::string service_name; | 35   std::string service_name; | 
| 36   // The address (in host/port format) for the service (from SRV record). | 36   // The address (in host/port format) for the service (from SRV record). | 
| 37   net::HostPortPair address; | 37   net::HostPortPair address; | 
| 38   // The metadata (from TXT record) of the service. | 38   // The metadata (from TXT record) of the service. | 
| 39   std::vector<std::string> metadata; | 39   std::vector<std::string> metadata; | 
| 40   // IP address of the service, if available from cache. May be empty. | 40   // IP address of the service, if available from cache. May be empty. | 
| 41   net::IPAddress ip_address; | 41   net::IPAddressNumber ip_address; | 
| 42   // Last time the service was seen. | 42   // Last time the service was seen. | 
| 43   base::Time last_seen; | 43   base::Time last_seen; | 
| 44 }; | 44 }; | 
| 45 | 45 | 
| 46 // Lets users browse the network for services of interest or listen for changes | 46 // Lets users browse the network for services of interest or listen for changes | 
| 47 // in the services they are interested in. See | 47 // in the services they are interested in. See | 
| 48 // |ServiceDiscoveryClient::CreateServiceWatcher|. | 48 // |ServiceDiscoveryClient::CreateServiceWatcher|. | 
| 49 class ServiceWatcher { | 49 class ServiceWatcher { | 
| 50  public: | 50  public: | 
| 51   enum UpdateType { | 51   enum UpdateType { | 
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 93 | 93 | 
| 94   // Start the service reader. | 94   // Start the service reader. | 
| 95   virtual void StartResolving() = 0; | 95   virtual void StartResolving() = 0; | 
| 96 | 96 | 
| 97   virtual std::string GetName() const = 0; | 97   virtual std::string GetName() const = 0; | 
| 98 }; | 98 }; | 
| 99 | 99 | 
| 100 class LocalDomainResolver { | 100 class LocalDomainResolver { | 
| 101  public: | 101  public: | 
| 102   typedef base::Callback<void(bool /*success*/, | 102   typedef base::Callback<void(bool /*success*/, | 
| 103                               const net::IPAddress& /*address_ipv4*/, | 103                               const net::IPAddressNumber& /*address_ipv4*/, | 
| 104                               const net::IPAddress& /*address_ipv6*/)> | 104                               const net::IPAddressNumber& /*address_ipv6*/)> | 
| 105       IPAddressCallback; | 105       IPAddressCallback; | 
| 106 | 106 | 
| 107   virtual ~LocalDomainResolver() {} | 107   virtual ~LocalDomainResolver() {} | 
| 108 | 108 | 
| 109   virtual void Start() = 0; | 109   virtual void Start() = 0; | 
| 110 }; | 110 }; | 
| 111 | 111 | 
| 112 class ServiceDiscoveryClient { | 112 class ServiceDiscoveryClient { | 
| 113  public: | 113  public: | 
| 114   virtual ~ServiceDiscoveryClient() {} | 114   virtual ~ServiceDiscoveryClient() {} | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
| 128   // Create a resolver for local domain, both ipv4 or ipv6. | 128   // Create a resolver for local domain, both ipv4 or ipv6. | 
| 129   virtual scoped_ptr<LocalDomainResolver> CreateLocalDomainResolver( | 129   virtual scoped_ptr<LocalDomainResolver> CreateLocalDomainResolver( | 
| 130       const std::string& domain, | 130       const std::string& domain, | 
| 131       net::AddressFamily address_family, | 131       net::AddressFamily address_family, | 
| 132       const LocalDomainResolver::IPAddressCallback& callback) = 0; | 132       const LocalDomainResolver::IPAddressCallback& callback) = 0; | 
| 133 }; | 133 }; | 
| 134 | 134 | 
| 135 }  // namespace local_discovery | 135 }  // namespace local_discovery | 
| 136 | 136 | 
| 137 #endif  // CHROME_BROWSER_LOCAL_DISCOVERY_SERVICE_DISCOVERY_CLIENT_H_ | 137 #endif  // CHROME_BROWSER_LOCAL_DISCOVERY_SERVICE_DISCOVERY_CLIENT_H_ | 
| OLD | NEW | 
|---|