Index: net/socket/unix_domain_server_socket_posix.h |
diff --git a/net/socket/unix_domain_server_socket_posix.h b/net/socket/unix_domain_server_socket_posix.h |
index 85c743d2b8fcc6613afba713cec729687c13eb42..65b3fa132c3cada822fc1cd789350c5a561d3dbb 100644 |
--- a/net/socket/unix_domain_server_socket_posix.h |
+++ b/net/socket/unix_domain_server_socket_posix.h |
@@ -59,11 +59,23 @@ class NET_EXPORT UnixDomainServerSocket : public ServerSocket { |
virtual int Accept(scoped_ptr<StreamSocket>* socket, |
const CompletionCallback& callback) OVERRIDE; |
+ // Accepts an incoming connection on |listen_socket_|, but passes back |
+ // a raw SocketDescriptor instead of a StreamSocket. |
+ int AcceptSocketDescriptor(SocketDescriptor* socket_descriptor, |
+ const CompletionCallback& callback); |
byungchul
2014/09/03 00:13:54
Do we still prefer it to downcast in the callback?
|
+ |
private: |
- void AcceptCompleted(scoped_ptr<StreamSocket>* socket, |
+ // A callback to wrap the setting of the out-parameter to Accept(). |
+ // This allows the internal machinery of that call to be implemented in |
+ // a manner that's agnostic to the caller's desired output. |
+ typedef base::Callback<void(scoped_ptr<SocketLibevent>)> SetterCallback; |
+ |
+ int DoAccept(const SetterCallback& setter_callback, |
+ const CompletionCallback& callback); |
+ void AcceptCompleted(const SetterCallback& setter_callback, |
const CompletionCallback& callback, |
int rv); |
- bool AuthenticateAndGetStreamSocket(scoped_ptr<StreamSocket>* socket); |
+ bool AuthenticateAndGetStreamSocket(const SetterCallback& setter_callback); |
scoped_ptr<SocketLibevent> listen_socket_; |
const AuthCallback auth_callback_; |