Package org.jboss.netty.buffer

Examples of org.jboss.netty.buffer.ChannelBuffer


                asyncWriter = config.supportChunking() ?
                        new ChunkedWriter(ctx.getChannel(), isLast, ka, channelBufferPool) :
                        new StreamWriter(ctx.getChannel(), isLast, ka);
                method = request.getMethod();
                ChannelBuffer internalBuffer = HttpChunk.class.cast(messageEvent.getMessage()).getContent();

                if (!aggregateBodyInMemory && internalBuffer.hasArray()) {
                    request.body(internalBuffer.array());
                } else {
                    logger.trace("Unable to read in memory the request's bytes. Using stream");
                    request.body(new ChannelBufferInputStream(internalBuffer));
                }
View Full Code Here


        this.channelBufferPool = channelBufferPool;
    }

    private ChannelBuffer writeHeaders(AtmosphereResponse response) throws UnsupportedEncodingException {
        if (writeHeader && !headerWritten.getAndSet(true) && response != null) {
            ChannelBuffer writeBuffer = channelBufferPool.poll();
            return ChannelBuffers.wrappedBuffer(writeBuffer, ChannelBuffers.wrappedBuffer(constructStatusAndHeaders(response, -1).getBytes("UTF-8")));
        }
        return ChannelBuffers.EMPTY_BUFFER;
    }
View Full Code Here

    @Override
    public void close(final AtmosphereResponse response) throws IOException {
        if (!channel.isOpen() || doneProcessing.get()) return;

        ChannelBuffer writeBuffer = writeHeaders(response);
        if (writeBuffer.readableBytes() > 0 && response != null) {
            final AtomicReference<ChannelBuffer> recycle = new AtomicReference<ChannelBuffer>(writeBuffer);
            try {
                lock.writeLock().lock();
                channel.write(writeBuffer).addListener(new ChannelFutureListener() {
                    @Override
View Full Code Here

        _close(response);
    }

    void _close(AtmosphereResponse response) throws UnsupportedEncodingException {
        if (!doneProcessing.getAndSet(true) && channel.isOpen()) {
            ChannelBuffer writeBuffer = writeHeaders(response);

            writeBuffer = ChannelBuffers.wrappedBuffer(writeBuffer, END);
            channel.write(writeBuffer).addListener(new ChannelFutureListener() {
                @Override
                public void operationComplete(ChannelFuture future) throws Exception {
View Full Code Here

            if (length == 0) {
                logger.trace("Data is empty {} => {}", data, length);
                return this;
            }

            ChannelBuffer writeBuffer = writeHeaders(response);
            if (headerWritten.get()) {
                writeBuffer = ChannelBuffers.wrappedBuffer(writeBuffer, ChannelBuffers.wrappedBuffer(Integer.toHexString(length - offset).getBytes("UTF-8")));
                writeBuffer = ChannelBuffers.wrappedBuffer(writeBuffer, DELIMITER);
            }
View Full Code Here

    public void close(AtmosphereResponse response) throws IOException {
        // Once we initiate the flush, we discard anything coming after for whatever reason.
        if (!doneProcessing.getAndSet(true) && channel.isOpen()) {
            logger.trace("About to flush to {} for {}", channel, response.uuid());

            ChannelBuffer statusAndHeadersBuffer = writeHeader ?
                    ChannelBuffers.wrappedBuffer(constructStatusAndHeaders(response, chainedBodyBuffer.readableBytes()).getBytes("UTF-8")) : ChannelBuffers.EMPTY_BUFFER;
            ChannelBuffer drain = ChannelBuffers.wrappedBuffer(statusAndHeadersBuffer, chainedBodyBuffer);
            channel.write(drain).addListener(new ChannelFutureListener() {
                @Override
                public void operationComplete(ChannelFuture channelFuture) throws Exception {
                    chainedBodyBuffer = null;
                    if (!keepAlive) {
View Full Code Here

            });
        }
    }

    public ChannelBuffer poll() {
        ChannelBuffer channelBuffer;
        if ((channelBuffer = pool.poll()) == null) {
            channelBuffer = createObject();
        }

        return channelBuffer;
View Full Code Here

    @Override
    protected Object decode(
            ChannelHandlerContext ctx, Channel channel,
            ChannelBuffer buffer, VoidEnum state) {

        ChannelBuffer data = buffer.readBytes(requestBuffer.readableBytes());
        if (data.equals(requestBuffer)) {
            return data;
        }
        channel.close();
        return null;
    }
View Full Code Here

                _readTimeoutHandler.start(ctx.getPipeline().getContext(_readTimeoutHandler));
              }
            }
            else
            {
                ChannelBuffer content = request.getContent();
              handleRequestContentChunk(content);
                writeResponse(ctx, e);
            }
        }
        else if (e.getMessage() instanceof HttpChunk)
        {
            HttpChunk chunk = (HttpChunk) e.getMessage();
            if (chunk.isLast()) {
                readingChunks = false;
                LOG.trace("END OF CONTENT");

                HttpChunkTrailer trailer = (HttpChunkTrailer) chunk;
                for (Map.Entry<String, String> h: trailer.getHeaders())
                {
                  handleHttpHeader(h);
                }

                writeResponse(ctx, e);
            } else {
              ChannelBuffer content = chunk.getContent();
              handleRequestContentChunk(content);
            }
        }

        ctx.sendUpstream(e);
View Full Code Here

  {
    if (null != _statsCollector)
    {
      if (e.getMessage() instanceof ChannelBuffer)
      {
        ChannelBuffer bufferMessage = (ChannelBuffer)e.getMessage();
        if (null == _connStatsCollector)
        {
          _statsCollector.addInboundResponseSize(bufferMessage.readableBytes());
        }
        else
        {
          _connStatsCollector.addInboundResponseSize(bufferMessage.readableBytes());

          if (_unmergedEventsNum >= MAX_UNMERGED_EVENTS_NUM)
          {
            mergeConnStats();
          }
View Full Code Here

TOP

Related Classes of org.jboss.netty.buffer.ChannelBuffer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.