builder = builder.setBody(entityBytes); } else { final FeedableBodyGenerator bodyGenerator = new FeedableBodyGenerator(); final Integer chunkSize = requestContext.resolveProperty( ClientProperties.CHUNKED_ENCODING_SIZE, ClientProperties.DEFAULT_CHUNK_SIZE); bodyGenerator.setMaxPendingBytes(chunkSize); final FeedableBodyGenerator.Feeder feeder = new FeedableBodyGenerator.SimpleFeeder(bodyGenerator) { @Override bodyGenerator.setFeeder(feeder); builder.setBody(bodyGenerator);
generator.setFeeder(new FeedableBodyGenerator.BaseFeeder(generator) { @Override public void flush() throws IOException { generator.initializeAsynchronousTransfer(ctx, requestPacket); return false;
private void feederFlush(final Connection c) { if (isServiceThread()) { c.getTransport().getWorkerThreadPool().execute(new Runnable() { @Override public void run() { feederFlush0(c); } }); } else { feederFlush0(c); } }
synchronized void initializeAsynchronousTransfer(final FilterChainContext context, final HttpRequestPacket requestPacket) throws IOException { if (asyncTransferInitiated) { throw new IllegalStateException("Async transfer has already been initiated."); } if (feeder == null) { throw new IllegalStateException("No feeder available to perform the transfer."); } assert (context != null); assert (requestPacket != null); this.requestPacket = requestPacket; this.contentBuilder = HttpContent.builder(requestPacket); final Connection c = context.getConnection(); origMaxPendingBytes = c.getMaxAsyncWriteQueueSize(); if (configuredMaxPendingBytes != DEFAULT) { c.setMaxAsyncWriteQueueSize(configuredMaxPendingBytes); } this.context = context; asyncTransferInitiated = true; if (requestPacket.isSecure() && (getSSLEngine(context.getConnection()) == null)) { flushOnSSLHandshakeComplete(); } else { feederFlush(context.getConnection()); } }
@Override public void flush() throws IOException { final Body bodyLocal = feedableBodyGenerator.createBody(); try { final MemoryManager mm = ctx.getMemoryManager();
((FeedableBodyGenerator) generator).initializeAsynchronousTransfer(ctx, requestPacket); return false; } else {
if (isServiceThread()) { c.getTransport().getWorkerThreadPool().execute(r); } else {
synchronized void initializeAsynchronousTransfer(final FilterChainContext context, final HttpRequestPacket requestPacket) throws IOException { if (asyncTransferInitiated) { throw new IllegalStateException("Async transfer has already been initiated."); } if (feeder == null) { throw new IllegalStateException("No feeder available to perform the transfer."); } assert (context != null); assert (requestPacket != null); this.requestPacket = requestPacket; this.contentBuilder = HttpContent.builder(requestPacket); final Connection c = context.getConnection(); origMaxPendingBytes = c.getMaxAsyncWriteQueueSize(); if (configuredMaxPendingBytes != DEFAULT) { c.setMaxAsyncWriteQueueSize(configuredMaxPendingBytes); } this.context = context; asyncTransferInitiated = true; if (requestPacket.isSecure() && (getSSLEngine(context.getConnection()) == null)) { flushOnSSLHandshakeComplete(); } else { feederFlush(context.getConnection()); } }
@Override public void flush() throws IOException { final Body bodyLocal = feedableBodyGenerator.createBody(); try { final MemoryManager mm = ctx.getMemoryManager();
((FeedableBodyGenerator) generator).initializeAsynchronousTransfer(ctx, requestPacket); return false; } else {
@Override public void run() { FeedableBodyGenerator generator = new FeedableBodyGenerator(); FeedableBodyGenerator.SimpleFeeder simpleFeeder = new FeedableBodyGenerator.SimpleFeeder(generator) { @Override generator.setFeeder(simpleFeeder); generator.setMaxPendingBytes(10000);
generator.setFeeder(new FeedableBodyGenerator.BaseFeeder(generator) { @Override public void flush() throws IOException { generator.initializeAsynchronousTransfer(ctx, requestPacket); return false;
private void feederFlush(final Connection c) { if (isServiceThread()) { c.getTransport().getWorkerThreadPool().execute(new Runnable() { @Override public void run() { feederFlush0(c); } }); } else { feederFlush0(c); } }
synchronized void initializeAsynchronousTransfer(final FilterChainContext context, final HttpRequestPacket requestPacket) throws IOException { if (asyncTransferInitiated) { throw new IllegalStateException("Async transfer has already been initiated."); } if (feeder == null) { throw new IllegalStateException("No feeder available to perform the transfer."); } assert (context != null); assert (requestPacket != null); this.requestPacket = requestPacket; this.contentBuilder = HttpContent.builder(requestPacket); final Connection c = context.getConnection(); origMaxPendingBytes = c.getMaxAsyncWriteQueueSize(); if (configuredMaxPendingBytes != DEFAULT) { c.setMaxAsyncWriteQueueSize(configuredMaxPendingBytes); } this.context = context; asyncTransferInitiated = true; if (requestPacket.isSecure() && (getSSLEngine(context.getConnection()) == null)) { flushOnSSLHandshakeComplete(); } else { feederFlush(context.getConnection()); } }
@Override public void flush() throws IOException { final Body bodyLocal = feedableBodyGenerator.createBody(); try { final MemoryManager mm = ctx.getMemoryManager();
((FeedableBodyGenerator) generator).initializeAsynchronousTransfer(ctx, requestPacket); return false; } else {
builder = builder.setBody(entityBytes); } else { final FeedableBodyGenerator bodyGenerator = new FeedableBodyGenerator(); final Integer chunkSize = requestContext.resolveProperty( ClientProperties.CHUNKED_ENCODING_SIZE, ClientProperties.DEFAULT_CHUNK_SIZE); bodyGenerator.setMaxPendingBytes(chunkSize); final FeedableBodyGenerator.Feeder feeder = new FeedableBodyGenerator.SimpleFeeder(bodyGenerator) { @Override bodyGenerator.setFeeder(feeder); builder.setBody(bodyGenerator);
generator.setFeeder(new FeedableBodyGenerator.BaseFeeder(generator) { @Override public void flush() throws IOException { generator.initializeAsynchronousTransfer(ctx, requestPacket); return false;
private void feederFlush(final Connection c) { if (isServiceThread()) { c.getTransport().getWorkerThreadPool().execute(new Runnable() { @Override public void run() { feederFlush0(c); } }); } else { feederFlush0(c); } }
@Override public void flush() throws IOException { final Body bodyLocal = feedableBodyGenerator.createBody(); try { final MemoryManager mm = ctx.getMemoryManager();