Refine search
@Override public NextAction handleWrite(FilterChainContext context) throws IOException { Connection<?> connection = context.getConnection(); GrizzlyChannel channel = GrizzlyChannel.getOrAddChannel(connection, url, handler); try { ChannelBuffer channelBuffer = ChannelBuffers.dynamicBuffer(1024); // Do not need to close Object msg = context.getMessage(); codec.encode(channel, channelBuffer, msg); GrizzlyChannel.removeChannelIfDisconnected(connection); Buffer buffer = connection.getTransport().getMemoryManager().allocate(channelBuffer.readableBytes()); buffer.put(channelBuffer.toByteBuffer()); buffer.flip(); buffer.allowBufferDispose(true); context.setMessage(buffer); } finally { GrizzlyChannel.removeChannelIfDisconnected(connection); } return context.getInvokeAction(); }
private void feederFlush(final Connection c) { if (isServiceThread()) { c.getTransport().getWorkerThreadPool().execute(new Runnable() { @Override public void run() { feederFlush0(c); } }); } else { feederFlush0(c); } }
private void submit(final Connection c, final Runnable runnable) { if (threadPool != null) { threadPool.submit(runnable); } else { final Transport t = c.getTransport(); final ExecutorService workerThreadPool = t.getWorkerThreadPool(); if (workerThreadPool != null) { workerThreadPool.submit(runnable); } else { t.getKernelThreadPool().submit(runnable); } } }
/** * @return {@link Executor}, which will be used for notifying user * registered {@link WriteHandler}. */ protected Executor getThreadPool() { if (!Threads.isService()) { return null; } final ExecutorService es = connection.getTransport().getWorkerThreadPool(); return es != null && !es.isShutdown() ? es : null; }
protected static void fireIOEvent(final Connection connection, final IOEvent ioEvent, final IOEventLifeCycleListener listener, final Logger logger) { try { connection.getTransport().fireIOEvent(ioEvent, connection, listener); } catch (Exception e) { logger.log(Level.WARNING, LogMessages.WARNING_GRIZZLY_IOSTRATEGY_UNCAUGHT_EXCEPTION(), e); connection.closeSilently(); } }
@Override public Executor getExecutor(final Request request) { if (!Threads.isService()) { return null; // Execute in the current thread } return request.getContext().getConnection().getTransport().getWorkerThreadPool(); } }
public ResponseStreamingCompletionHandler(final FilterChainContext ctx, final HttpRequestPacket request, final HttpResponse httpResponse, ResponseStatusCallback responseStatusCallback) { Preconditions.checkArgument((httpResponse.getEntity() instanceof InputStreamHttpEntity), "http response must have an input stream entity"); this.ctx = ctx; httpResponsePacket = buildHttpResponsePacket(request, httpResponse); inputStream = ((InputStreamHttpEntity) httpResponse.getEntity()).getInputStream(); memoryManager = ctx.getConnection().getTransport().getMemoryManager(); this.responseStatusCallback = responseStatusCallback; }
@Override public void write(Connection connection, Object dstAddress, Object message, CompletionHandler completionHandler, MessageCloner messageCloner) { final Transport transport = connection.getTransport(); transport.getWriter(connection).write(connection, dstAddress, (Buffer) message, completionHandler, messageCloner); }
private void sendEndResponse(final FilterChainContext ctx) throws IOException { final Connection connection = ctx.getConnection(); final MemoryManager mm = connection.getTransport().getMemoryManager(); final Buffer buffer = mm.allocate(6); buffer.put((byte) 'A'); buffer.put((byte) 'B'); buffer.putShort((short) 2); buffer.put(AjpConstants.JK_AJP13_END_RESPONSE); buffer.put((byte) 1); buffer.flip(); buffer.allowBufferDispose(true); ctx.write(buffer); }
@Override public void read(Connection connection, CompletionHandler completionHandler) { final Transport transport = connection.getTransport(); transport.getReader(connection).read(connection, null, completionHandler); }
@SuppressWarnings("unchecked") protected void sendRaw(byte[] rawData) { final Connection connection = protocolHandler.getConnection(); final MemoryManager mm = connection.getTransport().getMemoryManager(); final Buffer buffer = Buffers.wrap(mm, rawData); buffer.allowBufferDispose(false); connection.write(buffer); }
protected Buffer acquireBuffer(Connection connection) { Transport connectionTransport = connection.getTransport(); return connectionTransport.getMemoryManager(). allocate(DEFAULT_BUFFER_SIZE); }
public AbstractSocketConnectorHandler(Transport transport) { this.transport = transport; this.processor = transport.getProcessor(); this.processorSelector = transport.getProcessorSelector(); }
@Override public void connect(final SocketAddress remoteAddress, final SocketAddress localAddress, final CompletionHandler<Connection> completionHandler) { if (!transport.isBlocking()) { connectAsync(remoteAddress, localAddress, completionHandler, false); } else { connectSync(remoteAddress, localAddress, completionHandler); } }
private void submit(final Connection c, final Runnable runnable) { if (threadPool != null) { threadPool.submit(runnable); } else { final Transport t = c.getTransport(); final ExecutorService workerThreadPool = t.getWorkerThreadPool(); if (workerThreadPool != null) { workerThreadPool.submit(runnable); } else { t.getKernelThreadPool().submit(runnable); } } }
/** * @return {@link Executor}, which will be used for notifying user * registered {@link ReadHandler}. */ protected Executor getThreadPool() { if (!Threads.isService()) { return null; } final ExecutorService es = connection.getTransport().getWorkerThreadPool(); return es != null && !es.isShutdown() ? es : null; }
protected static void fireIOEvent(final Connection connection, final IOEvent ioEvent, final IOEventLifeCycleListener listener, final Logger logger) { try { connection.getTransport().fireIOEvent(ioEvent, connection, listener); } catch (Exception e) { logger.log(Level.WARNING, LogMessages.WARNING_GRIZZLY_IOSTRATEGY_UNCAUGHT_EXCEPTION(), e); connection.closeSilently(); } }
@Override public Executor getExecutor(final Request request) { if (!Threads.isService()) { return null; // Execute in the current thread } return request.getContext().getConnection().getTransport().getWorkerThreadPool(); } }
public ResponseStreamingCompletionHandler(final FilterChainContext ctx, final HttpRequestPacket request, final HttpResponse httpResponse, ResponseStatusCallback responseStatusCallback) { checkArgument((httpResponse.getEntity().isStreaming()), "HTTP response entity must be stream based"); this.ctx = ctx; httpResponsePacket = buildHttpResponsePacket(request, httpResponse); inputStream = httpResponse.getEntity().getContent(); memoryManager = ctx.getConnection().getTransport().getMemoryManager(); bufferSize = calculateBufferSize(ctx); this.responseStatusCallback = responseStatusCallback; }
@Override public void write(Connection connection, Object dstAddress, Object message, CompletionHandler completionHandler, MessageCloner messageCloner) { final Transport transport = connection.getTransport(); transport.getWriter(connection).write(connection, dstAddress, (Buffer) message, completionHandler, messageCloner); }