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

Unified Diff: net/dns/mdns_client_impl.h

Issue 87693002: Refactored to make MDnsSocketFactory return array of sockets. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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_client.cc ('k') | net/dns/mdns_client_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/dns/mdns_client_impl.h
diff --git a/net/dns/mdns_client_impl.h b/net/dns/mdns_client_impl.h
index b69677bb74739416c9d0f4673f78b260e299dce6..f75598560ab43c0634f656c109630daee1b6e2b4 100644
--- a/net/dns/mdns_client_impl.h
+++ b/net/dns/mdns_client_impl.h
@@ -23,19 +23,22 @@
namespace net {
-// A connection to the network for multicast DNS clients. It reads data into
-// DnsResponse objects and alerts the delegate that a packet has been received.
-class NET_EXPORT_PRIVATE MDnsConnection {
+class MDnsSocketFactoryImpl : public MDnsSocketFactory {
public:
- class SocketFactory {
- public:
- virtual ~SocketFactory() {}
+ MDnsSocketFactoryImpl() {};
+ virtual ~MDnsSocketFactoryImpl() {};
- virtual scoped_ptr<DatagramServerSocket> CreateSocket() = 0;
+ virtual void CreateSockets(
+ ScopedVector<DatagramServerSocket>* sockets) OVERRIDE;
- static scoped_ptr<SocketFactory> CreateDefault();
- };
+ private:
+ DISALLOW_COPY_AND_ASSIGN(MDnsSocketFactoryImpl);
+};
+// A connection to the network for multicast DNS clients. It reads data into
+// DnsResponse objects and alerts the delegate that a packet has been received.
+class NET_EXPORT_PRIVATE MDnsConnection {
+ public:
class Delegate {
public:
// Handle an mDNS packet buffered in |response| with a size of |bytes_read|.
@@ -45,23 +48,20 @@ class NET_EXPORT_PRIVATE MDnsConnection {
};
explicit MDnsConnection(MDnsConnection::Delegate* delegate);
-
virtual ~MDnsConnection();
// Both methods return true if at least one of the socket handlers succeeded.
- bool Init(MDnsConnection::SocketFactory* socket_factory);
+ bool Init(MDnsSocketFactory* socket_factory);
bool Send(IOBuffer* buffer, unsigned size);
private:
class SocketHandler {
public:
- SocketHandler(MDnsConnection* connection,
- const IPEndPoint& multicast_addr,
- SocketFactory* socket_factory);
+ SocketHandler(scoped_ptr<DatagramServerSocket> socket,
+ MDnsConnection* connection);
~SocketHandler();
- int Bind();
- int Start();
+ int Start();
int Send(IOBuffer* buffer, unsigned size);
private:
@@ -72,11 +72,12 @@ class NET_EXPORT_PRIVATE MDnsConnection {
void SendDone(int rv);
scoped_ptr<DatagramServerSocket> socket_;
-
MDnsConnection* connection_;
IPEndPoint recv_addr_;
- scoped_ptr<DnsResponse> response_;
+ DnsResponse response_;
IPEndPoint multicast_addr_;
+
+ DISALLOW_COPY_AND_ASSIGN(SocketHandler);
};
// Callback for handling a datagram being received on either ipv4 or ipv6.
@@ -108,7 +109,7 @@ class NET_EXPORT_PRIVATE MDnsClientImpl : public MDnsClient {
virtual ~Core();
// Initialize the core. Returns true on success.
- bool Init(MDnsConnection::SocketFactory* socket_factory);
+ bool Init(MDnsSocketFactory* socket_factory);
// Send a query with a specific rrtype and name. Returns true on success.
bool SendQuery(uint16 rrtype, std::string name);
@@ -163,8 +164,7 @@ class NET_EXPORT_PRIVATE MDnsClientImpl : public MDnsClient {
DISALLOW_COPY_AND_ASSIGN(Core);
};
- explicit MDnsClientImpl(
- scoped_ptr<MDnsConnection::SocketFactory> socket_factory_);
+ MDnsClientImpl();
virtual ~MDnsClientImpl();
// MDnsClient implementation:
@@ -179,7 +179,7 @@ class NET_EXPORT_PRIVATE MDnsClientImpl : public MDnsClient {
int flags,
const MDnsTransaction::ResultCallback& callback) OVERRIDE;
- virtual bool StartListening() OVERRIDE;
+ virtual bool StartListening(MDnsSocketFactory* socket_factory) OVERRIDE;
virtual void StopListening() OVERRIDE;
virtual bool IsListening() const OVERRIDE;
@@ -188,8 +188,6 @@ class NET_EXPORT_PRIVATE MDnsClientImpl : public MDnsClient {
private:
scoped_ptr<Core> core_;
- scoped_ptr<MDnsConnection::SocketFactory> socket_factory_;
-
DISALLOW_COPY_AND_ASSIGN(MDnsClientImpl);
};
« no previous file with comments | « net/dns/mdns_client.cc ('k') | net/dns/mdns_client_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698