Index: net/udp/udp_socket_libevent.h |
diff --git a/net/udp/udp_socket_libevent.h b/net/udp/udp_socket_libevent.h |
index 1b823c76465d4c39f8e1574467fafc5284c8fc7a..6cef1c0273c3890bf2669a22515781e2ac964f5e 100644 |
--- a/net/udp/udp_socket_libevent.h |
+++ b/net/udp/udp_socket_libevent.h |
@@ -55,6 +55,7 @@ class UDPSocketLibevent : public base::NonThreadSafe { |
// Only usable from the client-side of a UDP socket, after the socket |
// has been connected. |
int Read(IOBuffer* buf, int buf_len, OldCompletionCallback* callback); |
+ int Read(IOBuffer* buf, int buf_len, const CompletionCallback& callback); |
// Write to the socket. |
// Only usable from the client-side of a UDP socket, after the socket |
@@ -78,6 +79,10 @@ class UDPSocketLibevent : public base::NonThreadSafe { |
int buf_len, |
IPEndPoint* address, |
OldCompletionCallback* callback); |
+ int RecvFrom(IOBuffer* buf, |
+ int buf_len, |
+ IPEndPoint* address, |
+ const CompletionCallback& callback); |
// Send to a socket with a particular destination. |
// |buf| is the buffer to send |
@@ -114,7 +119,7 @@ class UDPSocketLibevent : public base::NonThreadSafe { |
// MessageLoopForIO::Watcher methods |
virtual void OnFileCanReadWithoutBlocking(int /* fd */) OVERRIDE { |
- if (socket_->read_callback_) |
+ if (socket_->old_read_callback_ || !socket_->read_callback_.is_null()) |
socket_->DidCompleteRead(); |
} |
@@ -209,7 +214,8 @@ class UDPSocketLibevent : public base::NonThreadSafe { |
scoped_ptr<IPEndPoint> send_to_address_; |
// External callback; called when read is complete. |
- OldCompletionCallback* read_callback_; |
+ OldCompletionCallback* old_read_callback_; |
+ CompletionCallback read_callback_; |
// External callback; called when write is complete. |
OldCompletionCallback* write_callback_; |