Delete AsyncSocketAdapter::Attach, make socket construction time const

Bug: webrtc:6424
Change-Id: I7001c4ac52ddd267dcd55f751f3f38976eab820f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227032
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34722}
diff --git a/rtc_base/async_socket.cc b/rtc_base/async_socket.cc
index 90e2c2a..e80514d 100644
--- a/rtc_base/async_socket.cc
+++ b/rtc_base/async_socket.cc
@@ -10,6 +10,7 @@
 
 #include "rtc_base/async_socket.h"
 
+#include "absl/memory/memory.h"
 #include "rtc_base/checks.h"
 
 namespace rtc {
@@ -18,24 +19,14 @@
 
 AsyncSocket::~AsyncSocket() {}
 
-AsyncSocketAdapter::AsyncSocketAdapter(AsyncSocket* socket) : socket_(nullptr) {
-  Attach(socket);
-}
-
-AsyncSocketAdapter::~AsyncSocketAdapter() {
-  delete socket_;
-}
-
-void AsyncSocketAdapter::Attach(AsyncSocket* socket) {
-  RTC_DCHECK(!socket_);
-  socket_ = socket;
-  if (socket_) {
-    socket_->SignalConnectEvent.connect(this,
-                                        &AsyncSocketAdapter::OnConnectEvent);
-    socket_->SignalReadEvent.connect(this, &AsyncSocketAdapter::OnReadEvent);
-    socket_->SignalWriteEvent.connect(this, &AsyncSocketAdapter::OnWriteEvent);
-    socket_->SignalCloseEvent.connect(this, &AsyncSocketAdapter::OnCloseEvent);
-  }
+AsyncSocketAdapter::AsyncSocketAdapter(AsyncSocket* socket)
+    : socket_(absl::WrapUnique(socket)) {
+  RTC_DCHECK(socket_);
+  socket_->SignalConnectEvent.connect(this,
+                                      &AsyncSocketAdapter::OnConnectEvent);
+  socket_->SignalReadEvent.connect(this, &AsyncSocketAdapter::OnReadEvent);
+  socket_->SignalWriteEvent.connect(this, &AsyncSocketAdapter::OnWriteEvent);
+  socket_->SignalCloseEvent.connect(this, &AsyncSocketAdapter::OnCloseEvent);
 }
 
 SocketAddress AsyncSocketAdapter::GetLocalAddress() const {