Index: net/udp/udp_socket_libevent.cc |
diff --git a/net/udp/udp_socket_libevent.cc b/net/udp/udp_socket_libevent.cc |
index a669c378063ffe639273e865a2c32f4ceb9b39fb..f8ef7e3c69309e8242d8b0e6f0f57bdd70aafb72 100644 |
--- a/net/udp/udp_socket_libevent.cc |
+++ b/net/udp/udp_socket_libevent.cc |
@@ -47,8 +47,6 @@ UDPSocketLibevent::UDPSocketLibevent( |
read_buf_len_(0), |
recv_from_address_(NULL), |
write_buf_len_(0), |
- old_read_callback_(NULL), |
- write_callback_(NULL), |
net_log_(BoundNetLog::Make(net_log, NetLog::SOURCE_UDP_SOCKET)) { |
scoped_refptr<NetLog::EventParameters> params; |
if (source.is_valid()) |
@@ -72,12 +70,11 @@ void UDPSocketLibevent::Close() { |
// Zero out any pending read/write callback state. |
read_buf_ = NULL; |
read_buf_len_ = 0; |
- old_read_callback_ = NULL; |
read_callback_.Reset(); |
recv_from_address_ = NULL; |
write_buf_ = NULL; |
write_buf_len_ = 0; |
- write_callback_ = NULL; |
+ write_callback_.Reset(); |
send_to_address_.reset(); |
bool ok = read_socket_watcher_.StopWatchingFileDescriptor(); |
@@ -137,11 +134,6 @@ int UDPSocketLibevent::GetLocalAddress(IPEndPoint* address) const { |
int UDPSocketLibevent::Read(IOBuffer* buf, |
int buf_len, |
- OldCompletionCallback* callback) { |
- return RecvFrom(buf, buf_len, NULL, callback); |
-} |
-int UDPSocketLibevent::Read(IOBuffer* buf, |
- int buf_len, |
const CompletionCallback& callback) { |
return RecvFrom(buf, buf_len, NULL, callback); |
} |
@@ -149,40 +141,10 @@ int UDPSocketLibevent::Read(IOBuffer* buf, |
int UDPSocketLibevent::RecvFrom(IOBuffer* buf, |
int buf_len, |
IPEndPoint* address, |
- OldCompletionCallback* callback) { |
- DCHECK(CalledOnValidThread()); |
- DCHECK_NE(kInvalidSocket, socket_); |
- DCHECK(!old_read_callback_ && read_callback_.is_null()); |
- DCHECK(!recv_from_address_); |
- DCHECK(callback); // Synchronous operation not supported |
- DCHECK_GT(buf_len, 0); |
- |
- int nread = InternalRecvFrom(buf, buf_len, address); |
- if (nread != ERR_IO_PENDING) |
- return nread; |
- |
- if (!MessageLoopForIO::current()->WatchFileDescriptor( |
- socket_, true, MessageLoopForIO::WATCH_READ, |
- &read_socket_watcher_, &read_watcher_)) { |
- PLOG(ERROR) << "WatchFileDescriptor failed on read"; |
- int result = MapSystemError(errno); |
- LogRead(result, NULL, 0, NULL); |
- return result; |
- } |
- |
- read_buf_ = buf; |
- read_buf_len_ = buf_len; |
- recv_from_address_ = address; |
- old_read_callback_ = callback; |
- return ERR_IO_PENDING; |
-} |
-int UDPSocketLibevent::RecvFrom(IOBuffer* buf, |
- int buf_len, |
- IPEndPoint* address, |
const CompletionCallback& callback) { |
DCHECK(CalledOnValidThread()); |
DCHECK_NE(kInvalidSocket, socket_); |
- DCHECK(!old_read_callback_ && read_callback_.is_null()); |
+ DCHECK(read_callback_.is_null()); |
DCHECK(!recv_from_address_); |
DCHECK(!callback.is_null()); // Synchronous operation not supported |
DCHECK_GT(buf_len, 0); |
@@ -209,25 +171,25 @@ int UDPSocketLibevent::RecvFrom(IOBuffer* buf, |
int UDPSocketLibevent::Write(IOBuffer* buf, |
int buf_len, |
- OldCompletionCallback* callback) { |
+ const CompletionCallback& callback) { |
return SendToOrWrite(buf, buf_len, NULL, callback); |
} |
int UDPSocketLibevent::SendTo(IOBuffer* buf, |
int buf_len, |
const IPEndPoint& address, |
- OldCompletionCallback* callback) { |
+ const CompletionCallback& callback) { |
return SendToOrWrite(buf, buf_len, &address, callback); |
} |
int UDPSocketLibevent::SendToOrWrite(IOBuffer* buf, |
int buf_len, |
const IPEndPoint* address, |
- OldCompletionCallback* callback) { |
+ const CompletionCallback& callback) { |
DCHECK(CalledOnValidThread()); |
DCHECK_NE(kInvalidSocket, socket_); |
- DCHECK(!write_callback_); |
- DCHECK(callback); // Synchronous operation not supported |
+ DCHECK(write_callback_.is_null()); |
+ DCHECK(!callback.is_null()); // Synchronous operation not supported |
DCHECK_GT(buf_len, 0); |
int result = InternalSendTo(buf, buf_len, address); |
@@ -323,28 +285,22 @@ bool UDPSocketLibevent::SetSendBufferSize(int32 size) { |
void UDPSocketLibevent::DoReadCallback(int rv) { |
DCHECK_NE(rv, ERR_IO_PENDING); |
- DCHECK(old_read_callback_ || !read_callback_.is_null()); |
+ DCHECK(!read_callback_.is_null()); |
- // Since Run may result in Read being called, clear read_callback_ up front. |
- if (old_read_callback_) { |
- OldCompletionCallback* c = old_read_callback_; |
- old_read_callback_ = NULL; |
- c->Run(rv); |
- } else { |
- CompletionCallback c = read_callback_; |
- read_callback_.Reset(); |
- c.Run(rv); |
- } |
+ // since Run may result in Read being called, clear read_callback_ up front. |
+ CompletionCallback c = read_callback_; |
+ read_callback_.Reset(); |
+ c.Run(rv); |
} |
void UDPSocketLibevent::DoWriteCallback(int rv) { |
DCHECK_NE(rv, ERR_IO_PENDING); |
- DCHECK(write_callback_); |
+ DCHECK(!write_callback_.is_null()); |
// since Run may result in Write being called, clear write_callback_ up front. |
- OldCompletionCallback* c = write_callback_; |
- write_callback_ = NULL; |
- c->Run(rv); |
+ CompletionCallback c = write_callback_; |
+ write_callback_.Reset(); |
+ c.Run(rv); |
} |
void UDPSocketLibevent::DidCompleteRead() { |