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

Unified Diff: net/dns/mdns_client.h

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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
« no previous file with comments | « net/dns/mdns_cache_unittest.cc ('k') | net/dns/mdns_client.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/dns/mdns_client.h
diff --git a/net/dns/mdns_client.h b/net/dns/mdns_client.h
deleted file mode 100644
index 675f8de165696b39971c339f90e19ba59bca5838..0000000000000000000000000000000000000000
--- a/net/dns/mdns_client.h
+++ /dev/null
@@ -1,187 +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 NET_DNS_MDNS_CLIENT_H_
-#define NET_DNS_MDNS_CLIENT_H_
-
-#include <string>
-#include <vector>
-
-#include "base/callback.h"
-#include "net/base/ip_endpoint.h"
-#include "net/dns/dns_query.h"
-#include "net/dns/dns_response.h"
-#include "net/dns/record_parsed.h"
-
-namespace net {
-
-class DatagramServerSocket;
-class RecordParsed;
-
-// Represents a one-time record lookup. A transaction takes one
-// associated callback (see |MDnsClient::CreateTransaction|) and calls it
-// whenever a matching record has been found, either from the cache or
-// by querying the network (it may choose to query either or both based on its
-// creation flags, see MDnsTransactionFlags). Network-based transactions will
-// time out after a reasonable number of seconds.
-class NET_EXPORT MDnsTransaction {
- public:
- // Used to signify what type of result the transaction has received.
- enum Result {
- // Passed whenever a record is found.
- RESULT_RECORD,
- // The transaction is done. Applies to non-single-valued transactions. Is
- // called when the transaction has finished (this is the last call to the
- // callback).
- RESULT_DONE,
- // No results have been found. Applies to single-valued transactions. Is
- // called when the transaction has finished without finding any results.
- // For transactions that use the network, this happens when a timeout
- // occurs, for transactions that are cache-only, this happens when no
- // results are in the cache.
- RESULT_NO_RESULTS,
- // Called when an NSec record is read for this transaction's
- // query. This means there cannot possibly be a record of the type
- // and name for this transaction.
- RESULT_NSEC
- };
-
- // Used when creating an MDnsTransaction.
- enum Flags {
- // Transaction should return only one result, and stop listening after it.
- // Note that single result transactions will signal when their timeout is
- // reached, whereas multi-result transactions will not.
- SINGLE_RESULT = 1 << 0,
- // Query the cache or the network. May both be used. One must be present.
- QUERY_CACHE = 1 << 1,
- QUERY_NETWORK = 1 << 2,
- // TODO(noamsml): Add flag for flushing cache when feature is implemented
- // Mask of all possible flags on MDnsTransaction.
- FLAG_MASK = (1 << 3) - 1,
- };
-
- typedef base::Callback<void(Result, const RecordParsed*)>
- ResultCallback;
-
- // Destroying the transaction cancels it.
- virtual ~MDnsTransaction() {}
-
- // Start the transaction. Return true on success. Cache-based transactions
- // will execute the callback synchronously.
- virtual bool Start() = 0;
-
- // Get the host or service name for the transaction.
- virtual const std::string& GetName() const = 0;
-
- // Get the type for this transaction (SRV, TXT, A, AAA, etc)
- virtual uint16 GetType() const = 0;
-};
-
-// A listener listens for updates regarding a specific record or set of records.
-// Created by the MDnsClient (see |MDnsClient::CreateListener|) and used to keep
-// track of listeners.
-class NET_EXPORT MDnsListener {
- public:
- // Used in the MDnsListener delegate to signify what type of change has been
- // made to a record.
- enum UpdateType {
- RECORD_ADDED,
- RECORD_CHANGED,
- RECORD_REMOVED
- };
-
- class Delegate {
- public:
- virtual ~Delegate() {}
-
- // Called when a record is added, removed or updated.
- virtual void OnRecordUpdate(UpdateType update,
- const RecordParsed* record) = 0;
-
- // Called when a record is marked nonexistent by an NSEC record.
- virtual void OnNsecRecord(const std::string& name, unsigned type) = 0;
-
- // Called when the cache is purged (due, for example, ot the network
- // disconnecting).
- virtual void OnCachePurged() = 0;
- };
-
- // Destroying the listener stops listening.
- virtual ~MDnsListener() {}
-
- // Start the listener. Return true on success.
- virtual bool Start() = 0;
-
- // Actively refresh any received records.
- virtual void SetActiveRefresh(bool active_refresh) = 0;
-
- // Get the host or service name for this query.
- // Return an empty string for no name.
- virtual const std::string& GetName() const = 0;
-
- // Get the type for this query (SRV, TXT, A, AAA, etc)
- virtual uint16 GetType() const = 0;
-};
-
-// Creates bound datagram sockets ready to use by MDnsClient.
-class NET_EXPORT MDnsSocketFactory {
- public:
- virtual ~MDnsSocketFactory() {}
- virtual void CreateSockets(ScopedVector<DatagramServerSocket>* sockets) = 0;
-
- static scoped_ptr<MDnsSocketFactory> CreateDefault();
-};
-
-// Listens for Multicast DNS on the local network. You can access information
-// regarding multicast DNS either by creating an |MDnsListener| to be notified
-// of new records, or by creating an |MDnsTransaction| to look up the value of a
-// specific records. When all listeners and active transactions are destroyed,
-// the client stops listening on the network and destroys the cache.
-class NET_EXPORT MDnsClient {
- public:
- virtual ~MDnsClient() {}
-
- // Create listener object for RRType |rrtype| and name |name|.
- virtual scoped_ptr<MDnsListener> CreateListener(
- uint16 rrtype,
- const std::string& name,
- MDnsListener::Delegate* delegate) = 0;
-
- // Create a transaction that can be used to query either the MDns cache, the
- // network, or both for records of type |rrtype| and name |name|. |flags| is
- // defined by MDnsTransactionFlags.
- virtual scoped_ptr<MDnsTransaction> CreateTransaction(
- uint16 rrtype,
- const std::string& name,
- int flags,
- const MDnsTransaction::ResultCallback& callback) = 0;
-
- virtual bool StartListening(MDnsSocketFactory* factory) = 0;
-
- // Do not call this inside callbacks from related MDnsListener and
- // MDnsTransaction objects.
- virtual void StopListening() = 0;
- virtual bool IsListening() const = 0;
-
- // Create the default MDnsClient
- static scoped_ptr<MDnsClient> CreateDefault();
-};
-
-NET_EXPORT IPEndPoint GetMDnsIPEndPoint(AddressFamily address_family);
-
-typedef std::vector<std::pair<uint32, AddressFamily> > InterfaceIndexFamilyList;
-// Returns pairs of interface and address family to bind. Current
-// implementation returns unique list of all available interfaces.
-NET_EXPORT InterfaceIndexFamilyList GetMDnsInterfacesToBind();
-
-// Create sockets, binds socket to MDns endpoint, and sets multicast interface
-// and joins multicast group on for |interface_index|.
-// Returns NULL if failed.
-NET_EXPORT scoped_ptr<DatagramServerSocket> CreateAndBindMDnsSocket(
- AddressFamily address_family,
- uint32 interface_index);
-
-} // namespace net
-
-#endif // NET_DNS_MDNS_CLIENT_H_
« no previous file with comments | « net/dns/mdns_cache_unittest.cc ('k') | net/dns/mdns_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698