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

Unified Diff: net/curvecp/client_packetizer.cc

Issue 8801004: base::Bind: Convert StreamSocket::Connect. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Build fixes. Created 9 years 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
Index: net/curvecp/client_packetizer.cc
diff --git a/net/curvecp/client_packetizer.cc b/net/curvecp/client_packetizer.cc
index 72bf4a0e8b4e625d53fa7bd1dcab786448f5e1a5..77ddfda984de73c237d9376d18193146af1f292f 100644
--- a/net/curvecp/client_packetizer.cc
+++ b/net/curvecp/client_packetizer.cc
@@ -33,7 +33,7 @@ ClientPacketizer::ClientPacketizer()
: Packetizer(),
next_state_(NONE),
listener_(NULL),
- user_callback_(NULL),
+ old_user_callback_(NULL),
current_address_(NULL),
hello_attempts_(0),
initiate_sent_(false),
@@ -52,7 +52,23 @@ ClientPacketizer::~ClientPacketizer() {
int ClientPacketizer::Connect(const AddressList& server,
Packetizer::Listener* listener,
OldCompletionCallback* callback) {
- DCHECK(!user_callback_);
+ DCHECK(!old_user_callback_);
+ DCHECK(!socket_.get());
+ DCHECK(!listener_);
+
+ listener_ = listener;
+
+ addresses_ = server;
+
+ old_user_callback_ = callback;
+ next_state_ = LOOKUP_COOKIE;
+
+ return DoLoop(OK);
+}
+int ClientPacketizer::Connect(const AddressList& server,
+ Packetizer::Listener* listener,
+ const net::CompletionCallback& callback) {
+ DCHECK(user_callback_.is_null());
DCHECK(!socket_.get());
DCHECK(!listener_);
@@ -279,11 +295,17 @@ int ClientPacketizer::DoConnected(int rv) {
void ClientPacketizer::DoCallback(int result) {
DCHECK_NE(result, ERR_IO_PENDING);
- DCHECK(user_callback_);
-
- OldCompletionCallback* callback = user_callback_;
- user_callback_ = NULL;
- callback->Run(result);
+ DCHECK(old_user_callback_ || !user_callback_.is_null());
+
+ if (old_user_callback_) {
+ OldCompletionCallback* callback = old_user_callback_;
+ old_user_callback_ = NULL;
+ callback->Run(result);
+ } else {
+ CompletionCallback callback = user_callback_;
+ user_callback_.Reset();
+ callback.Run(result);
+ }
}
int ClientPacketizer::ConnectNextAddress() {

Powered by Google App Engine
This is Rietveld 408576698