Author: astitcher
Date: Thu Jan 21 06:15:40 2010
New Revision: 901548

URL: http://svn.apache.org/viewvc?rev=901548&view=rev
Log:
Small refactor of AsynchConnector to have a more regular structure

Modified:
    qpid/trunk/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp?rev=901548&r1=901547&r2=901548&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp Thu Jan 21 06:15:40 2010
@@ -144,7 +144,7 @@
 
 private:
     void connComplete(DispatchHandle& handle);
-    void failure(int, const std::string&);
+    void syncFailure();
 
 private:
     ConnectedCallback connCallback;
@@ -189,27 +189,26 @@
     startWatch(poller);
     // If we previously detected an error insert failure callback now
     if ( !errMsg.empty() ) {
-        DispatchHandle::call(boost::bind(&AsynchConnector::failure, this, -1, 
errMsg));
+        DispatchHandle::call(boost::bind(&AsynchConnector::syncFailure, this));
     }
 }
 
 void AsynchConnector::connComplete(DispatchHandle& h)
 {
-    int errCode = socket.getError();
-
     h.stopWatch();
+    int errCode = socket.getError();
     if (errCode == 0) {
         connCallback(socket);
-        DispatchHandle::doDelete();
     } else {
-        failure(errCode, strError(errCode));
+        failCallback(socket, errCode, strError(errCode));
     }
+    DispatchHandle::doDelete();
 }
 
-void AsynchConnector::failure(int errCode, const std::string& message)
+void AsynchConnector::syncFailure()
 {
-    failCallback(socket, errCode, message);
-
+    DispatchHandle::stopWatch();
+    failCallback(socket, -1, errMsg);
     DispatchHandle::doDelete();
 }
 



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to