Package org.apache.mina.common.IoFilter

Examples of org.apache.mina.common.IoFilter.WriteRequest


            for (int i = 0; i < data.length; i++) {
                if (data[i] instanceof WriteRequest) {
                    // TODO Optimize unefficient data transfer.
                    // Data will be returned to pendingDataQueue
                    // if getTraffic().isWritable() is false.
                    WriteRequest wr = (WriteRequest) data[i];
                    filterChain.doWrite(this, wr);
                } else {
                    // TODO Optimize unefficient data transfer.
                    // Data will be returned to pendingDataQueue
                    // if getTraffic().isReadable() is false.
View Full Code Here


           
            for( int i = 0; i < data.length; i++ )
            {
                if( data[ i ] instanceof WriteRequest )
                {
                    WriteRequest wr = ( WriteRequest ) data[ i ];
                    filterChain.doWrite( this, wr );
                }
                else
                {
                    filterChain.messageReceived( this, data[ i ] );
View Full Code Here

    private void run( String expectedResult )
    {
        chain.sessionCreated( session );
        chain.sessionOpened( session );
        chain.messageReceived( session, new Object() );
        chain.filterWrite( session, new WriteRequest( new Object() ) );
        chain.sessionIdle( session, IdleStatus.READER_IDLE );
        chain.exceptionCaught( session, new Exception() );
        chain.sessionClosed( session );
       
        result = formatResult( result );
View Full Code Here

    public void testCompression() throws Exception
    {
        // prepare the input data
        ByteBuffer buf = ByteBuffer.wrap( strCompress.getBytes( "UTF8" ) );
        ByteBuffer actualOutput = actualDeflater.deflate( buf );
        WriteRequest writeRequest = new WriteRequest( buf );

        // record all the mock calls
        ioFilterChain.contains( CompressionFilter.class );
        mockIoFilterChain.setReturnValue( false );

        ioFilterChain.getSession();
        mockIoFilterChain.setReturnValue( session );

        session.setAttribute( CompressionFilter.class.getName() + ".Deflater", deflater );
        mockSession.setDefaultMatcher( new DataMatcher() );
        mockSession.setReturnValue( null, MockControl.ONE );

        session.setAttribute( CompressionFilter.class.getName() + ".Inflater", inflater );
        mockSession.setReturnValue( null, MockControl.ONE );

        session.containsAttribute( CompressionFilter.DISABLE_COMPRESSION_ONCE );
        mockSession.setReturnValue( false );

        session.getAttribute( CompressionFilter.class.getName() + ".Deflater" );
        mockSession.setReturnValue( deflater );

        nextFilter.filterWrite( session, new WriteRequest( actualOutput ) );

        // switch to playback mode
        mockSession.replay();
        mockIoFilterChain.replay();
        mockNextFilter.replay();
View Full Code Here

        protected boolean argumentMatches( Object arg0, Object arg1 )
        {
            // we need to only verify the ByteBuffer output
            if( arg0 instanceof WriteRequest )
            {
                WriteRequest expected = (WriteRequest) arg0;
                WriteRequest actual = (WriteRequest) arg1;
                ByteBuffer bExpected = (ByteBuffer) expected.getMessage();
                ByteBuffer bActual = (ByteBuffer) actual.getMessage();
                return bExpected.equals( bActual );
            }
            return true;
        }
View Full Code Here

                return DefaultWriteFuture.newNotWrittenFuture( this );
            }
        }

        WriteFuture future = new DefaultWriteFuture( this );
        write0( new WriteRequest( message, future, remoteAddress ) );
       
        return future;
    }
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();
            }
            catch( IllegalStateException e )
            {
                ( ( SocketFilterChain ) session.getFilterChain() ).exceptionCaught( session, e );
            }
View Full Code Here

        SocketChannel ch = session.getChannel();
        Queue writeRequestQueue = session.getWriteRequestQueue();

        for( ; ; )
        {
            WriteRequest req;

            synchronized( writeRequestQueue )
            {
                req = ( WriteRequest ) writeRequestQueue.first();
            }

            if( req == null )
                break;

            ByteBuffer buf = ( ByteBuffer ) req.getMessage();
            if( buf.remaining() == 0 )
            {
                synchronized( writeRequestQueue )
                {
                    writeRequestQueue.pop();
View Full Code Here

    {
        DatagramChannel ch = session.getChannel();

        Queue writeRequestQueue = session.getWriteRequestQueue();

        WriteRequest req;
        for( ;; )
        {
            synchronized( writeRequestQueue )
            {
                req = ( WriteRequest ) writeRequestQueue.first();
            }

            if( req == null )
                break;

            ByteBuffer buf = ( ByteBuffer ) req.getMessage();
            if( buf.remaining() == 0 )
            {
                // pop and fire event
                synchronized( writeRequestQueue )
                {
View Full Code Here

    private void flush(DatagramSessionImpl session) throws IOException {
        DatagramChannel ch = session.getChannel();

        Queue writeRequestQueue = session.getWriteRequestQueue();

        WriteRequest req;
        for (;;) {
            synchronized (writeRequestQueue) {
                req = (WriteRequest) writeRequestQueue.first();
            }

            if (req == null)
                break;

            ByteBuffer buf = (ByteBuffer) req.getMessage();
            if (buf.remaining() == 0) {
                // pop and fire event
                synchronized (writeRequestQueue) {
                    writeRequestQueue.pop();
                }

                session.increaseWrittenMessages();
                buf.reset();
                ((DatagramFilterChain) session.getFilterChain())
                        .fireMessageSent(session, req);
                continue;
            }

            SelectionKey key = session.getSelectionKey();
            if (key == null) {
                scheduleFlush(session);
                break;
            }
            if (!key.isValid()) {
                continue;
            }

            SocketAddress destination = req.getDestination();
            if (destination == null) {
                destination = session.getRemoteAddress();
            }

            int writtenBytes = ch.send(buf.buf(), destination);
View Full Code Here

TOP

Related Classes of org.apache.mina.common.IoFilter.WriteRequest

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.