Author: astitcher
Date: Mon Jun  8 14:34:45 2009
New Revision: 782649

URL: http://svn.apache.org/viewvc?rev=782649&view=rev
Log:
Plumbed in an a connection abort operation to the OutputHandler

Modified:
    qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Connection.cpp
    qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Connection.h
    qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h
    qpid/trunk/qpid/cpp/src/qpid/sys/AggregateOutput.cpp
    qpid/trunk/qpid/cpp/src/qpid/sys/AggregateOutput.h
    qpid/trunk/qpid/cpp/src/qpid/sys/AsynchIOHandler.cpp
    qpid/trunk/qpid/cpp/src/qpid/sys/AsynchIOHandler.h
    qpid/trunk/qpid/cpp/src/qpid/sys/ConnectionOutputHandlerPtr.h
    qpid/trunk/qpid/cpp/src/qpid/sys/OutputControl.h
    qpid/trunk/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp
    qpid/trunk/qpid/cpp/src/qpid/sys/ssl/SslHandler.cpp
    qpid/trunk/qpid/cpp/src/qpid/sys/ssl/SslHandler.h

Modified: qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Connection.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Connection.cpp?rev=782649&r1=782648&r2=782649&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Connection.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Connection.cpp Mon Jun  8 14:34:45 
2009
@@ -7,9 +7,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -72,7 +72,7 @@
     {   // Swap frameQueue data into workQueue to avoid holding lock while we 
encode.
         Mutex::ScopedLock l(frameQueueLock);
         assert(workQueue.empty());
-        workQueue.swap(frameQueue); 
+        workQueue.swap(frameQueue);
     }
     framing::Buffer out(const_cast<char*>(buffer), size);
     if (!isClient && !initialized) {
@@ -88,7 +88,7 @@
         QPID_LOG(trace, "SENT [" << identifier << "]: " << workQueue.front());
         workQueue.pop_front();
         encoded += frameSize;
-        if (workQueue.empty() && out.available() > 0) connection->doOutput(); 
+        if (workQueue.empty() && out.available() > 0) connection->doOutput();
     }
     assert(workQueue.empty() || workQueue.front().encodedSize() <= size);
     if (!workQueue.empty() && workQueue.front().encodedSize() > size)
@@ -103,7 +103,8 @@
     return out.getPosition();
 }
 
-void  Connection::activateOutput() { output.activateOutput(); }
+void Connection::abort() { output.abort(); }
+void Connection::activateOutput() { output.activateOutput(); }
 void Connection::giveReadCredit(int32_t credit) { 
output.giveReadCredit(credit); }
 
 void  Connection::close() {
@@ -130,7 +131,7 @@
     return framing::ProtocolVersion(0,10);
 }
 
-size_t Connection::getBuffered() const { 
+size_t Connection::getBuffered() const {
     Mutex::ScopedLock l(frameQueueLock);
     return buffered;
 }

Modified: qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Connection.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Connection.h?rev=782649&r1=782648&r2=782649&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Connection.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/amqp_0_10/Connection.h Mon Jun  8 14:34:45 2009
@@ -10,9 +10,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -63,6 +63,7 @@
     size_t encode(const char* buffer, size_t size);
     bool isClosed() const;
     bool canEncode();
+    void abort();
     void activateOutput();
     void giveReadCredit(int32_t);
     void closed();              // connection closed by peer.

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp?rev=782649&r1=782648&r2=782649&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp Mon Jun  8 14:34:45 
2009
@@ -134,6 +134,11 @@
     }
 }
 
+void SessionState::abort() {
+    if (isAttached())
+        getConnection().outputTasks.abort();
+}
+
 void SessionState::activateOutput() {
     if (isAttached())
         getConnection().outputTasks.activateOutput();
@@ -213,7 +218,7 @@
             
sessionState.getConnection().requestIOProcessing(boost::bind(&ScheduledCreditTask::sendCredit,
 this));
         }
     }
-    
+
     void sendCredit() {
         if ( !sessionState.processSendCredit(0) ) {
             QPID_LOG(warning, sessionState.getId() << ": Reschedule sending 
credit");

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h?rev=782649&r1=782648&r2=782649&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h Mon Jun  8 14:34:45 2009
@@ -87,6 +87,7 @@
     Broker& getBroker();
 
     /** OutputControl **/
+    void abort();
     void activateOutput();
     void giveReadCredit(int32_t);
 
@@ -132,9 +133,9 @@
      * This proxy is for sending such commands. In a clustered broker it will 
take steps
      * to synchronize command order across the cluster. In a stand-alone broker
      * it is just a synonym for getProxy()
-     */  
+     */
     framing::AMQP_ClientProxy& getClusterOrderProxy();
-    
+
     Broker& broker;
     SessionHandler* handler;
     sys::AbsTime expiry;        // Used by SessionManager.

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/AggregateOutput.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/AggregateOutput.cpp?rev=782649&r1=782648&r2=782649&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/AggregateOutput.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/AggregateOutput.cpp Mon Jun  8 14:34:45 
2009
@@ -7,9 +7,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -25,13 +25,15 @@
 
 namespace qpid {
 namespace sys {
-    
+
+void AggregateOutput::abort() { control.abort(); }
+
 void AggregateOutput::activateOutput() { control.activateOutput(); }
 
 void AggregateOutput::giveReadCredit(int32_t credit) { 
control.giveReadCredit(credit); }
 
 bool AggregateOutput::hasOutput() {
-    for (TaskList::const_iterator i = tasks.begin(); i != tasks.end(); ++i) 
+    for (TaskList::const_iterator i = tasks.begin(); i != tasks.end(); ++i)
         if ((*i)->hasOutput()) return true;
     return false;
 }
@@ -41,7 +43,7 @@
     bool result = false;
     if (!tasks.empty()) {
         if (next >= tasks.size()) next = next % tasks.size();
-        
+
         size_t start = next;
         //loop until a task generated some output
         while (!result) {
@@ -58,7 +60,7 @@
 {
     tasks.push_back(t);
 }
-     
+
 void AggregateOutput::removeOutputTask(OutputTask* t)
 {
     TaskList::iterator i = std::find(tasks.begin(), tasks.end(), t);

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/AggregateOutput.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/AggregateOutput.h?rev=782649&r1=782648&r2=782649&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/AggregateOutput.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/AggregateOutput.h Mon Jun  8 14:34:45 2009
@@ -7,9 +7,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -43,9 +43,10 @@
     public:
         AggregateOutput(OutputControl& c) : next(0), control(c) {};
         //this may be called on any thread
+        QPID_COMMON_EXTERN void abort();
         QPID_COMMON_EXTERN void activateOutput();
         QPID_COMMON_EXTERN void giveReadCredit(int32_t);
-        
+
         //all the following will be called on the same thread
         QPID_COMMON_EXTERN bool doOutput();
         QPID_COMMON_EXTERN bool hasOutput();

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/AsynchIOHandler.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/AsynchIOHandler.cpp?rev=782649&r1=782648&r2=782649&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/AsynchIOHandler.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/AsynchIOHandler.cpp Mon Jun  8 14:34:45 
2009
@@ -7,9 +7,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -26,6 +26,8 @@
 #include "qpid/framing/ProtocolInitiation.h"
 #include "qpid/log/Statement.h"
 
+#include <boost/bind.hpp>
+
 namespace qpid {
 namespace sys {
 
@@ -75,6 +77,10 @@
     aio->queueWrite(buff);
 }
 
+void AsynchIOHandler::abort() {
+    aio->requestCallback(boost::bind(&AsynchIOHandler::eof, this, _1));
+}
+
 void AsynchIOHandler::activateOutput() {
     aio->notifyPendingWrite();
 }
@@ -120,7 +126,7 @@
                     //send valid version header & close connection.
                     
write(framing::ProtocolInitiation(framing::highestProtocolVersion));
                     readError = true;
-                    aio->queueWriteClose();                
+                    aio->queueWriteClose();
                 }
             } catch (const std::exception& e) {
                 QPID_LOG(error, e.what());
@@ -163,7 +169,7 @@
 }
 
 void AsynchIOHandler::closedSocket(AsynchIO&, const Socket& s) {
-    // If we closed with data still to send log a warning 
+    // If we closed with data still to send log a warning
     if (!aio->writeQueueEmpty()) {
         QPID_LOG(warning, "CLOSING [" << identifier << "] unsent data 
(probably due to client disconnect)");
     }
@@ -198,7 +204,7 @@
             aio->queueWrite(buff);
         }
         if (codec->isClosed())
-            aio->queueWriteClose();       
+            aio->queueWriteClose();
     } catch (const std::exception& e) {
         QPID_LOG(error, e.what());
         aio->queueWriteClose();

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/AsynchIOHandler.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/AsynchIOHandler.h?rev=782649&r1=782648&r2=782649&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/AsynchIOHandler.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/AsynchIOHandler.h Mon Jun  8 14:34:45 2009
@@ -9,9 +9,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -60,7 +60,7 @@
     QPID_COMMON_EXTERN void setClient() { isClient = true; }
 
     // Output side
-    QPID_COMMON_EXTERN void close();
+    QPID_COMMON_EXTERN void abort();
     QPID_COMMON_EXTERN void activateOutput();
     QPID_COMMON_EXTERN void giveReadCredit(int32_t credit);
 
@@ -68,7 +68,7 @@
     QPID_COMMON_EXTERN bool readbuff(AsynchIO& aio, AsynchIOBufferBase* buff);
     QPID_COMMON_EXTERN void eof(AsynchIO& aio);
     QPID_COMMON_EXTERN void disconnect(AsynchIO& aio);
-       
+
     // Notifications
     QPID_COMMON_EXTERN void nobuffs(AsynchIO& aio);
     QPID_COMMON_EXTERN void idle(AsynchIO& aio);

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/ConnectionOutputHandlerPtr.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/ConnectionOutputHandlerPtr.h?rev=782649&r1=782648&r2=782649&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/ConnectionOutputHandlerPtr.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/ConnectionOutputHandlerPtr.h Mon Jun  8 
14:34:45 2009
@@ -10,9 +10,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -43,6 +43,7 @@
 
     void close() { next->close(); }
     size_t getBuffered() const { return next->getBuffered(); }
+    void abort() { next->abort(); }
     void activateOutput() { next->activateOutput(); }
     void giveReadCredit(int32_t credit) { next->giveReadCredit(credit); }
     void send(framing::AMQFrame& f) { next->send(f); }

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/OutputControl.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/OutputControl.h?rev=782649&r1=782648&r2=782649&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/OutputControl.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/OutputControl.h Mon Jun  8 14:34:45 2009
@@ -7,9 +7,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -27,10 +27,11 @@
 namespace qpid {
 namespace sys {
 
-    class OutputControl 
+    class OutputControl
     {
     public:
         virtual ~OutputControl() {}
+        virtual void abort() = 0;
         virtual void activateOutput() = 0;
         virtual void giveReadCredit(int32_t credit) = 0;
     };

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp?rev=782649&r1=782648&r2=782649&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp Mon Jun  8 14:34:45 2009
@@ -7,9 +7,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -58,6 +58,7 @@
 
     // Output side
     void close();
+    void abort();
     void activateOutput();
     void giveReadCredit(int32_t credit);
     void initProtocolOut();
@@ -65,11 +66,11 @@
     // Input side
     void readbuff(Rdma::AsynchIO& aio, Rdma::Buffer* buff);
     void initProtocolIn(Rdma::Buffer* buff);
-    
+
     // Notifications
     void full(Rdma::AsynchIO& aio);
     void idle(Rdma::AsynchIO& aio);
-    void error(Rdma::AsynchIO& aio);    
+    void error(Rdma::AsynchIO& aio);
 };
 
 RdmaIOHandler::RdmaIOHandler(Rdma::Connection::intrusive_ptr& c, 
qpid::sys::ConnectionCodec::Factory* f) :
@@ -89,7 +90,7 @@
     if (codec)
         codec->closed();
     delete codec;
-    
+
     aio->deferDelete();
 }
 
@@ -107,6 +108,10 @@
     aio->queueWriteClose();
 }
 
+// TODO: Dummy implementation, need to fill this in for heartbeat timeout to 
work
+void RdmaIOHandler::abort() {
+}
+
 void RdmaIOHandler::activateOutput() {
     aio->notifyPendingWrite();
 }
@@ -145,7 +150,7 @@
     QPID_LOG(debug, "Rdma: buffer full [" << identifier << "]");
 }
 
-// TODO: Dummy implementation of read throttling 
+// TODO: Dummy implementation of read throttling
 void RdmaIOHandler::giveReadCredit(int32_t) {
 }
 
@@ -162,7 +167,7 @@
         if (codec) {
             decoded = codec->decode(buff->bytes+buff->dataStart, 
buff->dataCount);
         }else{
-            // Need to start protocol processing 
+            // Need to start protocol processing
             initProtocolIn(buff);
         }
     }catch(const std::exception& e){
@@ -181,13 +186,13 @@
         QPID_LOG(debug, "Rdma: RECV [" << identifier << "] INIT(" << 
protocolInit << ")");
 
         codec = factory->create(protocolInit.getVersion(), *this, identifier);
-        
+
         // If we failed to create the codec then we don't understand the 
offered protocol version
         if (!codec) {
             // send valid version header & close connection.
             
write(framing::ProtocolInitiation(framing::highestProtocolVersion));
             readError = true;
-            aio->queueWriteClose();                
+            aio->queueWriteClose();
         }
     }
 }
@@ -217,7 +222,7 @@
 static class RdmaIOPlugin : public Plugin {
     void earlyInitialize(Target&) {
     }
-    
+
     void initialize(Target& target) {
         // Check whether we actually have any rdma devices
         if ( Rdma::deviceCount() == 0 ) {
@@ -257,7 +262,7 @@
                 0, // boost::bind(&RdmaIOHandler::full, async, _1),
                 boost::bind(&RdmaIOHandler::error, async, _1));
         async->init(aio);
-    
+
         // Record aio so we can get it back from a connection
         ci->addContext(async);
         return true;
@@ -300,7 +305,7 @@
     sin.sin_addr.s_addr = INADDR_ANY;
 
     listener.reset(
-        new Rdma::Listener((const sockaddr&)(sin), 
+        new Rdma::Listener((const sockaddr&)(sin),
             Rdma::ConnectionParams(65536, Rdma::DEFAULT_WR_ENTRIES),
             boost::bind(&RdmaIOProtocolFactory::established, this, poller, _1),
             boost::bind(&RdmaIOProtocolFactory::connectionError, this, _1, _2),
@@ -323,7 +328,7 @@
     RdmaIOHandler* async =  ci->getContext<RdmaIOHandler>();
     async->initProtocolOut();
 }
- 
+
 void RdmaIOProtocolFactory::connect(
     Poller::shared_ptr poller,
     const std::string& host, int16_t p,

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/ssl/SslHandler.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/ssl/SslHandler.cpp?rev=782649&r1=782648&r2=782649&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/ssl/SslHandler.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/ssl/SslHandler.cpp Mon Jun  8 14:34:45 2009
@@ -7,9 +7,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -26,6 +26,8 @@
 #include "qpid/framing/ProtocolInitiation.h"
 #include "qpid/log/Statement.h"
 
+#include <boost/bind.hpp>
+
 namespace qpid {
 namespace sys {
 namespace ssl {
@@ -76,6 +78,10 @@
     aio->queueWrite(buff);
 }
 
+void SslHandler::abort() {
+    // TODO: can't implement currently as underlying functionality not 
implemented
+    // aio->requestCallback(boost::bind(&SslHandler::eof, this, _1));
+}
 void SslHandler::activateOutput() {
     aio->notifyPendingWrite();
 }
@@ -111,7 +117,7 @@
                     //send valid version header & close connection.
                     
write(framing::ProtocolInitiation(framing::highestProtocolVersion));
                     readError = true;
-                    aio->queueWriteClose();                
+                    aio->queueWriteClose();
                 }
             } catch (const std::exception& e) {
                 QPID_LOG(error, e.what());
@@ -140,7 +146,7 @@
 }
 
 void SslHandler::closedSocket(SslIO&, const SslSocket& s) {
-    // If we closed with data still to send log a warning 
+    // If we closed with data still to send log a warning
     if (!aio->writeQueueEmpty()) {
         QPID_LOG(warning, "CLOSING [" << identifier << "] unsent data 
(probably due to client disconnect)");
     }

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/ssl/SslHandler.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/ssl/SslHandler.h?rev=782649&r1=782648&r2=782649&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/ssl/SslHandler.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/ssl/SslHandler.h Mon Jun  8 14:34:45 2009
@@ -10,9 +10,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -56,7 +56,7 @@
     void setClient() { isClient = true; }
 
     // Output side
-    void close();
+    void abort();
     void activateOutput();
     void giveReadCredit(int32_t);
 
@@ -64,7 +64,7 @@
     void readbuff(SslIO& aio, SslIOBufferBase* buff);
     void eof(SslIO& aio);
     void disconnect(SslIO& aio);
-       
+
     // Notifications
     void nobuffs(SslIO& aio);
     void idle(SslIO& aio);



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org

Reply via email to