Package org.apache.mina.util

Examples of org.apache.mina.util.Queue


        newBuf.flip();
        bufferQueue.push(newBuf);
    }

    public WriteFuture flush() {
        Queue bufferQueue = this.bufferQueue;
        WriteFuture future = null;
        if (bufferQueue.isEmpty()) {
            return null;
        } else {
            for (;;) {
                ByteBuffer buf = (ByteBuffer) bufferQueue.pop();
                if (buf == null) {
                    break;
                }

                // Flush only when the buffer has remaining.
View Full Code Here


    public void filterWrite(NextFilter nextFilter, IoSession session,
            WriteRequest writeRequest) throws Exception {
        // If we're already processing a stream we need to queue the WriteRequest.
        if (session.getAttribute(CURRENT_STREAM) != null) {
            Queue queue = (Queue) session.getAttribute(WRITE_REQUEST_QUEUE);
            if (queue == null) {
                queue = new Queue();
                session.setAttribute(WRITE_REQUEST_QUEUE, queue);
            }
            queue.push(writeRequest);
            return;
        }

        Object message = writeRequest.getMessage();
View Full Code Here

                session.removeAttribute(CURRENT_STREAM);
                WriteFuture writeFuture = (WriteFuture) session
                        .removeAttribute(INITIAL_WRITE_FUTURE);

                // Write queued WriteRequests.
                Queue queue = (Queue) session
                        .removeAttribute(WRITE_REQUEST_QUEUE);
                if (queue != null) {
                    WriteRequest wr = (WriteRequest) queue.pop();
                    while (wr != null) {
                        filterWrite(nextFilter, session, wr);
                        wr = (WriteRequest) queue.pop();
                    }
                }

                writeFuture.setWritten(true);
                nextFilter.messageSent(session, inputStream);
View Full Code Here

        this.lock = new ReentrantLock();
        this.localAddress = localAddress;
        this.remoteAddress = this.serviceAddress = remoteEntry.getAddress();
        this.handler = handler;
        this.filterChain = new VmPipeFilterChain(this);
        this.pendingDataQueue = new Queue();

        remoteSession = new VmPipeSessionImpl(this, remoteEntry);
    }
View Full Code Here

        this.localAddress = this.serviceAddress = remoteSession.remoteAddress;
        this.remoteAddress = remoteSession.localAddress;
        this.handler = entry.getHandler();
        this.filterChain = new VmPipeFilterChain(this);
        this.remoteSession = remoteSession;
        this.pendingDataQueue = new Queue();
    }
View Full Code Here

        this.lock = lock;
        this.localAddress = localAddress;
        this.remoteAddress = this.serviceAddress = remoteEntry.getAddress();
        this.handler = handler;
        this.filterChain = new VmPipeFilterChain( this );
        this.pendingDataQueue = new Queue();

        this.managedSessions = remoteEntry.getManagedClientSessions();
       
        remoteSession = new VmPipeSessionImpl( manager, this, remoteEntry );
       
View Full Code Here

        this.localAddress = this.serviceAddress = remoteSession.remoteAddress;
        this.remoteAddress = remoteSession.localAddress;
        this.handler = entry.getHandler();
        this.filterChain = new VmPipeFilterChain( this );
        this.remoteSession = remoteSession;
        this.pendingDataQueue = new Queue();
        this.managedSessions = entry.getManagedServerSessions();
    }
View Full Code Here

                            WriteRequest writeRequest ) throws Exception
    {
        // If we're already processing a stream we need to queue the WriteRequest.
        if( session.getAttribute( CURRENT_STREAM ) != null )
        {
            Queue queue = ( Queue ) session.getAttribute( WRITE_REQUEST_QUEUE );
            if( queue == null )
            {
                queue = new Queue();
                session.setAttribute( WRITE_REQUEST_QUEUE, queue );
            }
            queue.push( writeRequest );
            return;
        }
       
        Object message = writeRequest.getMessage();
       
View Full Code Here

                // End of stream reached.
                session.removeAttribute( CURRENT_STREAM );
                WriteFuture writeFuture = ( WriteFuture ) session.removeAttribute( INITIAL_WRITE_FUTURE );
               
                // Write queued WriteRequests.
                Queue queue = ( Queue ) session.removeAttribute( WRITE_REQUEST_QUEUE );
                if( queue != null )
                {
                    WriteRequest wr = ( WriteRequest ) queue.pop();
                    while( wr != null )
                    {
                        filterWrite( nextFilter, session, wr );
                        wr = ( WriteRequest ) queue.pop();
                    }
                }
               
                writeFuture.setWritten( true );
                nextFilter.messageSent( session, inputStream );
View Full Code Here

        }
    }

    private void releaseWriteBuffers( SocketSessionImpl session )
    {
        Queue writeRequestQueue = session.getWriteRequestQueue();
        WriteRequest req;

        while( ( req = ( WriteRequest ) writeRequestQueue.pop() ) != null )
        {
            try
            {
                ( ( ByteBuffer ) req.getMessage() ).release();
            }
View Full Code Here

TOP

Related Classes of org.apache.mina.util.Queue

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.