Package org.glassfish.grizzly.memory

Examples of org.glassfish.grizzly.memory.BufferArray


            final Buffer message = record.getMessage();
            final int pos = message.position();
           
            final int messageRemaining = message.remaining();

            final BufferArray bufferArray =
                    (totalRemaining >= messageRemaining) ?
                    message.toBufferArray() :
                    message.toBufferArray(pos, pos + totalRemaining);

            savedBufferStates.add(bufferArray);
View Full Code Here


    private int update(final CompositeQueueRecord queueRecord,
            int written) {
       
        // Restore buffer state
        for (int i = 0; i < queueRecord.savedBufferStates.size(); i++) {
            final BufferArray savedState = queueRecord.savedBufferStates.get(i);
            if (savedState != null) {
                savedState.restore();
                savedState.recycle();
            }
        }
       
        queueRecord.savedBufferStates.clear();
       
View Full Code Here

        buffer.limit(oldPos + bufferSize);
       
        final SocketChannel socketChannel = (SocketChannel) connection.getChannel();
       
        final DirectByteBufferRecord ioRecord = DirectByteBufferRecord.get();
        final BufferArray bufferArray = buffer.toBufferArray();
        int written = 0;
       
        fill(bufferArray, bufferSize, ioRecord);
        ioRecord.finishBufferSlice();
       
        final int arraySize = ioRecord.getArraySize();
       
        try {
            written = arraySize != 1
                    ? flushByteBuffers(socketChannel, ioRecord.getArray(), 0, arraySize)
                    : flushByteBuffer(socketChannel, ioRecord.getArray()[0]);

            if (LOGGER.isLoggable(Level.FINE)) {
                LOGGER.log(Level.FINE, "TCPNIOConnection ({0}) (composite) write {1} bytes", new Object[]{
                            connection, written
                        });
            }
        } finally {
            bufferArray.restore();
            bufferArray.recycle();
            ioRecord.release();
        }
       
        Buffers.setPositionLimit(buffer, oldPos + written, oldLim);
        return written;
View Full Code Here

                if (!buffer.isComposite()) {
                    len = inputStream.read(buffer.array(),
                            buffer.position() + buffer.arrayOffset(),
                            chunkSize);
                } else {
                    final BufferArray bufferArray = buffer.toBufferArray();
                    final int size = bufferArray.size();
                    final Buffer[] buffers = bufferArray.getArray();

                    int lenCounter = 0;
                    for (int i = 0; i < size; i++) {
                        final Buffer subBuffer = buffers[i];
                        final int subBufferLen = subBuffer.remaining();
                        final int justReadLen = inputStream.read(subBuffer.array(),
                                subBuffer.position() + subBuffer.arrayOffset(),
                                subBufferLen);
                       
                        if (justReadLen > 0) {
                            lenCounter += justReadLen;
                        }
                       
                        if (justReadLen < subBufferLen) {
                            break;
                        }
                    }
                   
                    bufferArray.restore();
                    bufferArray.recycle();
                   
                    len = lenCounter > 0 ? lenCounter : -1;
                }
                   
                if (len > 0) {
View Full Code Here

                if (!buffer.isComposite()) {
                    len = inputStream.read(buffer.array(),
                            buffer.position() + buffer.arrayOffset(),
                            chunkSize);
                } else {
                    final BufferArray bufferArray = buffer.toBufferArray();
                    final int size = bufferArray.size();
                    final Buffer[] buffers = bufferArray.getArray();

                    int lenCounter = 0;
                    for (int i = 0; i < size; i++) {
                        final Buffer subBuffer = buffers[i];
                        final int subBufferLen = subBuffer.remaining();
                        final int justReadLen = inputStream.read(subBuffer.array(),
                                subBuffer.position() + subBuffer.arrayOffset(),
                                subBufferLen);
                       
                        if (justReadLen > 0) {
                            lenCounter += justReadLen;
                        }
                       
                        if (justReadLen < subBufferLen) {
                            break;
                        }
                    }
                   
                    bufferArray.restore();
                    bufferArray.recycle();
                   
                    len = lenCounter > 0 ? lenCounter : -1;
                }
                   
                if (len > 0) {
View Full Code Here

            final Buffer buffer = (Buffer) message;
            final int oldPos = buffer.position();

            try {
                if (buffer.isComposite()) {
                    final BufferArray array = buffer.toBufferArray();

                    written = writeGathered(connection, array);

                    if (LOGGER.isLoggable(Level.FINE)) {
                        LOGGER.log(Level.FINE, "TCPNIOConnection ({0}) (composite) write {1} bytes",
                                new Object[]{connection, written});
                    }

                    array.restore();
                    array.recycle();
                } else {
                    written = writeSimple(connection, buffer);
                    if (LOGGER.isLoggable(Level.FINE)) {
                        LOGGER.log(Level.FINE, "TCPNIOConnection ({0}) (plain) write {1} bytes",
                                new Object[]{connection, written});
View Full Code Here

TOP

Related Classes of org.glassfish.grizzly.memory.BufferArray

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.