@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(); }
@Override public NextAction handleWrite(final FilterChainContext ctx) throws IOException { final Object message = ctx.getMessage(); if (message instanceof HttpTransactionContext) { ctx.setMessage(null); if (!sendAsGrizzlyRequest((HttpTransactionContext) message, ctx)) { return ctx.getSuspendAction(); } else { return ctx.getStopAction(); } } return ctx.getInvokeAction(); }
/** * Checks if {@link Connection} has some stored data related to the processing * {@link Filter}. If yes - appends new context data to the stored one and * set the result as context message. * * @param ctx {@link FilterChainContext} * @param filtersState {@link FiltersState} associated with the Connection * @param filterIdx the current filter index */ @SuppressWarnings("unchecked") private void checkStoredMessage(final FilterChainContext ctx, final FiltersState filtersState, final int filterIdx) { if (filtersState != null) { ctx.setMessage(filtersState.append(ctx.getOperation(), filterIdx, ctx.getMessage())); } }
private static FilterChainContext obtainProtocolChainContext( final FilterChainContext ctx, final FilterChain completeProtocolFilterChain) { final FilterChainContext newFilterChainContext = completeProtocolFilterChain.obtainFilterChainContext( ctx.getConnection(), ctx.getStartIdx(), completeProtocolFilterChain.size(), ctx.getFilterIdx()); newFilterChainContext.setAddressHolder(ctx.getAddressHolder()); newFilterChainContext.setMessage(ctx.getMessage()); newFilterChainContext.getInternalContext().setIoEvent(IOEvent.READ); newFilterChainContext.getInternalContext().addLifeCycleListener( new InternalProcessingHandler(ctx)); return newFilterChainContext; }
@Override public NextAction handleRead(final FilterChainContext ctx) throws IOException { final Connection connection = ctx.getConnection(); final SSLConnectionContext sslCtx = getSslConnectionContext(connection); if (sslCtx != null && sslCtx.getSslEngine() != null) { ctx.setMessage(allowDispose(allocateInputBuffer(sslCtx))); } return wrappedFilter.handleRead(ctx); } }
@Override public NextAction handleRead(final FilterChainContext ctx) throws IOException { // If this method is called as part of natural PU filterchain processing - // just pass process to the next filter if (!isFilterChainRead(ctx)) { return ctx.getInvokeAction(); } // if this is filterchain read - delegate read to the underlying filterchain final FilterChainContext suspendedParentContext = puFilter.suspendedContextAttribute.get(ctx); assert suspendedParentContext != null; final ReadResult readResult = suspendedParentContext.read(); ctx.setMessage(readResult.getMessage()); ctx.setAddressHolder(readResult.getSrcAddressHolder()); readResult.recycle(); return ctx.getInvokeAction(); }
@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 static FilterChainContext obtainProtocolChainContext( final FilterChainContext ctx, final FilterChain completeProtocolFilterChain) { final FilterChainContext newFilterChainContext = completeProtocolFilterChain.obtainFilterChainContext( ctx.getConnection(), ctx.getStartIdx(), completeProtocolFilterChain.size(), ctx.getFilterIdx()); newFilterChainContext.setAddressHolder(ctx.getAddressHolder()); newFilterChainContext.setMessage(ctx.getMessage()); newFilterChainContext.getInternalContext().setIoEvent(IOEvent.READ); newFilterChainContext.getInternalContext().addLifeCycleListener( new InternalProcessingHandler(ctx)); return newFilterChainContext; }
/** * Checks if {@link Connection} has some stored data related to the processing * {@link Filter}. If yes - appends new context data to the stored one and * set the result as context message. * * @param ctx {@link FilterChainContext} * @param filtersState {@link FiltersState} associated with the Connection * @param filterIdx the current filter index */ @SuppressWarnings("unchecked") private void checkStoredMessage(final FilterChainContext ctx, final FiltersState filtersState, final int filterIdx) { if (filtersState != null) { ctx.setMessage(filtersState.append(ctx.getOperation(), filterIdx, ctx.getMessage())); } }
@Override public NextAction handleRead(final FilterChainContext ctx) throws IOException { final Connection connection = ctx.getConnection(); final SSLConnectionContext sslCtx = getSslConnectionContext(connection); if (sslCtx != null && sslCtx.getSslEngine() != null) { ctx.setMessage(allowDispose(allocateInputBuffer(sslCtx))); } return wrappedFilter.handleRead(ctx); } }
@Override public NextAction handleWrite(final FilterChainContext ctx) throws IOException { final Object input = ctx.getMessage(); if (!(input instanceof List)) { return ctx.getInvokeAction(); } final List<String> inputStringList = ctx.getMessage(); final Buffer output = encode(ctx.getMemoryManager(), inputStringList); ctx.setMessage(output); return ctx.getInvokeAction(); }
@Override public NextAction handleRead(final FilterChainContext ctx) throws IOException { // If this method is called as part of natural PU filterchain processing - // just pass process to the next filter if (!isFilterChainRead(ctx)) { return ctx.getInvokeAction(); } // if this is filterchain read - delegate read to the underlying filterchain final FilterChainContext suspendedParentContext = puFilter.suspendedContextAttribute.get(ctx); assert suspendedParentContext != null; final ReadResult readResult = suspendedParentContext.read(); ctx.setMessage(readResult.getMessage()); ctx.setAddressHolder(readResult.getSrcAddressHolder()); readResult.recycle(); return ctx.getInvokeAction(); }
@Override public NextAction handleRead(FilterChainContext context) throws IOException { Object message = context.getMessage(); Connection<?> connection = context.getConnection(); Channel channel = GrizzlyChannel.getOrAddChannel(connection, url, handler); try { context.setMessage(msg); return context.getInvokeAction(); } else { return context.getInvokeAction(); return context.getInvokeAction();
private static FilterChainContext obtainProtocolChainContext( final FilterChainContext ctx, final FilterChain completeProtocolFilterChain) { final FilterChainContext newFilterChainContext = completeProtocolFilterChain.obtainFilterChainContext( ctx.getConnection(), ctx.getStartIdx(), completeProtocolFilterChain.size(), ctx.getFilterIdx()); newFilterChainContext.setAddressHolder(ctx.getAddressHolder()); newFilterChainContext.setMessage(ctx.getMessage()); newFilterChainContext.getInternalContext().setIoEvent(IOEvent.READ); newFilterChainContext.getInternalContext().addLifeCycleListener( new InternalProcessingHandler(ctx)); return newFilterChainContext; }
boolean checkIfHttp2StreamChain(final FilterChainContext ctx) throws IOException { final Object message = ctx.getMessage(); if (message == null) { // If message == null - it means it's initiated by blocking ctx.read() call // we have to check Http2Stream associated input queue if there are any data we can return // otherwise block until input data is available final Http2Stream http2Stream = (Http2Stream) HttpContext.get(ctx).getContextStorage(); ctx.setMessage(http2Stream.pollInputData()); return true; } final HttpContent httpContent = (HttpContent) message; final HttpHeader httpHeader = httpContent.getHttpHeader(); // if the stream is assigned - it means we process HTTP/2.0 request // in the upstream (HTTP2 stream chain) return Http2Stream.getStreamFor(httpHeader) != null; }
@Override public NextAction handleRead(final FilterChainContext ctx) throws IOException { final Connection connection = ctx.getConnection(); final SSLConnectionContext sslCtx = sslBaseFilter.obtainSslConnectionContext(connection); if (sslCtx.getSslEngine() == null) { final SSLEngine sslEngine = sslBaseFilter.serverSSLEngineConfigurator.createSSLEngine(); sslEngine.beginHandshake(); sslCtx.configure(sslEngine); sslBaseFilter.notifyHandshakeStart(connection); } ctx.setMessage(allowDispose(allocateInputBuffer(sslCtx))); return wrappedFilter.handleRead(ctx); }
@Override public NextAction handleWrite(final FilterChainContext ctx) throws IOException { final Object message = ctx.getMessage(); if (message instanceof HttpTransactionContext) { ctx.setMessage(null); if (!sendAsGrizzlyRequest((HttpTransactionContext) message, ctx)) { return ctx.getSuspendAction(); } else { return ctx.getStopAction(); } } return ctx.getInvokeAction(); }
@Override public NextAction handleRead(final FilterChainContext ctx) throws IOException { // If this method is called as part of natural PU filterchain processing - // just pass process to the next filter if (!isFilterChainRead(ctx)) { return ctx.getInvokeAction(); } // if this is filterchain read - delegate read to the underlying filterchain final FilterChainContext suspendedParentContext = puFilter.suspendedContextAttribute.get(ctx); assert suspendedParentContext != null; final ReadResult readResult = suspendedParentContext.read(); ctx.setMessage(readResult.getMessage()); ctx.setAddressHolder(readResult.getSrcAddressHolder()); readResult.recycle(); return ctx.getInvokeAction(); }
@Override public NextAction handleRead(FilterChainContext context) throws IOException { Object message = context.getMessage(); Connection<?> connection = context.getConnection(); Channel channel = GrizzlyChannel.getOrAddChannel(connection, url, handler); try { context.setMessage(msg); return context.getInvokeAction(); } else { return context.getInvokeAction(); return context.getInvokeAction();
private static FilterChainContext obtainProtocolChainContext( final FilterChainContext ctx, final FilterChain completeProtocolFilterChain) { final FilterChainContext newFilterChainContext = completeProtocolFilterChain.obtainFilterChainContext( ctx.getConnection(), ctx.getStartIdx(), completeProtocolFilterChain.size(), ctx.getFilterIdx()); newFilterChainContext.setAddressHolder(ctx.getAddressHolder()); newFilterChainContext.setMessage(ctx.getMessage()); newFilterChainContext.getInternalContext().setIoEvent(IOEvent.READ); newFilterChainContext.getInternalContext().addLifeCycleListener( new InternalProcessingHandler(ctx)); return newFilterChainContext; }