You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ta...@apache.org on 2015/01/28 00:11:42 UTC
qpid-jms git commit: Delegate the send buffer allocation to the
Transport so it can use the configured Netty allocator.
Repository: qpid-jms
Updated Branches:
refs/heads/master a9f17a890 -> 05fb16ec8
Delegate the send buffer allocation to the Transport so it can use the
configured Netty allocator.
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/05fb16ec
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/05fb16ec
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/05fb16ec
Branch: refs/heads/master
Commit: 05fb16ec8a03c5d4aa614df9f5abc4c7144cf435
Parents: a9f17a8
Author: Timothy Bish <ta...@gmail.com>
Authored: Tue Jan 27 18:11:35 2015 -0500
Committer: Timothy Bish <ta...@gmail.com>
Committed: Tue Jan 27 18:11:35 2015 -0500
----------------------------------------------------------------------
.../apache/qpid/jms/provider/amqp/AmqpProvider.java | 10 ++++------
.../java/org/apache/qpid/jms/transports/Transport.java | 13 +++++++++++++
.../qpid/jms/transports/netty/NettyTcpTransport.java | 6 ++++++
3 files changed, 23 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/05fb16ec/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
index cd068ef..05637cc 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
@@ -18,7 +18,6 @@ package org.apache.qpid.jms.provider.amqp;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufUtil;
-import io.netty.buffer.Unpooled;
import io.netty.util.ReferenceCountUtil;
import java.io.IOException;
@@ -784,15 +783,14 @@ public class AmqpProvider implements Provider, TransportListener {
while (!done) {
ByteBuffer toWrite = protonTransport.getOutputBuffer();
if (toWrite != null && toWrite.hasRemaining()) {
- byte[] bytes = new byte[toWrite.remaining()];
- toWrite.get(bytes);
- ByteBuf copy = Unpooled.wrappedBuffer(bytes);
+ ByteBuf outbound = transport.allocateSendBuffer(toWrite.remaining());
+ outbound.writeBytes(toWrite);
if (isTraceBytes()) {
- TRACE_BYTES.info("Sending: {}", ByteBufUtil.hexDump(copy));
+ TRACE_BYTES.info("Sending: {}", ByteBufUtil.hexDump(outbound));
}
- transport.send(copy);
+ transport.send(outbound);
protonTransport.outputConsumed();
} else {
done = true;
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/05fb16ec/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/Transport.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/Transport.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/Transport.java
index 6a723b7..99b3470 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/Transport.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/Transport.java
@@ -47,6 +47,19 @@ public interface Transport {
void close() throws IOException;
/**
+ * Request that the Transport provide an output buffer sized for the given
+ * value.
+ *
+ * @param size
+ * the size necessary to hold the outgoing bytes.
+ *
+ * @return a new ByteBuf allocated for sends operations.
+ *
+ * @throws IOException if an error occurs while allocating the send buffer.
+ */
+ ByteBuf allocateSendBuffer(int size) throws IOException;
+
+ /**
* Sends a chunk of data over the Transport connection.
*
* @param output
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/05fb16ec/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/netty/NettyTcpTransport.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/netty/NettyTcpTransport.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/netty/NettyTcpTransport.java
index 89355d6..75b0f75 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/netty/NettyTcpTransport.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/netty/NettyTcpTransport.java
@@ -162,6 +162,12 @@ public class NettyTcpTransport implements Transport {
}
@Override
+ public ByteBuf allocateSendBuffer(int size) throws IOException {
+ checkConnected();
+ return channel.alloc().ioBuffer(size, size);
+ }
+
+ @Override
public void send(ByteBuf output) throws IOException {
checkConnected();
int length = output.readableBytes();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org