Author: robbie
Date: Fri Jun 27 10:08:06 2014
New Revision: 1606011

URL: http://svn.apache.org/r1606011
Log:
PROTON-597: remove use of the scratch buffer which will always be 512bytes due 
to minMaxFrameSize, and instead write bytes straight to the output buffer

Modified:
    
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportOutputAdaptor.java

Modified: 
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportOutputAdaptor.java
URL: 
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportOutputAdaptor.java?rev=1606011&r1=1606010&r2=1606011&view=diff
==============================================================================
--- 
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportOutputAdaptor.java
 (original)
+++ 
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportOutputAdaptor.java
 Fri Jun 27 10:08:06 2014
@@ -30,7 +30,6 @@ class TransportOutputAdaptor implements 
 
     private final TransportOutputWriter _transportOutputWriter;
     private final int _maxFrameSize;
-    private final ByteBuffer _scratchBuffer;
 
     private ByteBuffer _outputBuffer = null;
     private ByteBuffer _head = null;
@@ -41,7 +40,6 @@ class TransportOutputAdaptor implements 
     {
         _transportOutputWriter = transportOutputWriter;
         _maxFrameSize = maxFrameSize > 0 ? maxFrameSize : 4*1024;
-        _scratchBuffer = newWriteableBuffer(Math.min(512, _maxFrameSize));
     }
 
     @Override
@@ -51,9 +49,16 @@ class TransportOutputAdaptor implements 
             return Transport.END_OF_STREAM;
         }
 
-        try_fill_buffer();
+        if(_outputBuffer == null)
+        {
+            init_buffers();
+        }
 
-        if (_outputBuffer != null && _outputBuffer.position() == 0) {
+        _output_done = _transportOutputWriter.writeInto(_outputBuffer);
+        _head.limit(_outputBuffer.position());
+
+        if (_outputBuffer.position() == 0)
+        {
             release_buffers();
         }
 
@@ -108,32 +113,4 @@ class TransportOutputAdaptor implements 
         _head = null;
         _outputBuffer = null;
     }
-
-    private void try_fill_buffer() {
-        boolean done = false;
-        while (!done) {
-            reset_scratch_buffer();
-            _output_done |= _transportOutputWriter.writeInto(_scratchBuffer);
-            done = _scratchBuffer.position() < _scratchBuffer.capacity();
-            if (_scratchBuffer.position() > 0) {
-                copy_scratch_to_output();
-            }
-        }
-    }
-
-    private void reset_scratch_buffer() {
-        _scratchBuffer.clear();
-        if (_outputBuffer != null) {
-            _scratchBuffer.limit(Math.min(_scratchBuffer.capacity(), 
_outputBuffer.capacity() - _outputBuffer.position()));
-        }
-    }
-
-    private void copy_scratch_to_output() {
-        if (_outputBuffer == null) {
-            init_buffers();
-        }
-        _scratchBuffer.flip();
-        _outputBuffer.put(_scratchBuffer);
-        _head.limit(_outputBuffer.position());
-    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to