Package org.apache.mina.common.IoFilter

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


                return DefaultWriteFuture.newNotWrittenFuture(this);
            }
        }

        WriteFuture future = new DefaultWriteFuture(this);
        write0(new WriteRequest(message, future, remoteAddress));

        return future;
    }
View Full Code Here


                SessionLog.debug(session, " session write: " + writeBuffer);
            }
            //debug("outNetBuffer (after copy): {0}", sslHandler.getOutNetBuffer());

            writeFuture = new DefaultWriteFuture(session);
            parent.filterWrite(nextFilter, session, new WriteRequest(
                    writeBuffer, writeFuture));

            // loop while more writes required to complete handshake
            while (needToCompleteHandshake()) {
                try {
                    handshake(nextFilter);
                } catch (SSLException ssle) {
                    SSLException newSSLE = new SSLHandshakeException(
                            "SSL handshake failed.");
                    newSSLE.initCause(ssle);
                    throw newSSLE;
                }
                if (getOutNetBuffer().hasRemaining()) {
                    if (SessionLog.isDebugEnabled(session)) {
                        SessionLog.debug(session, " write outNetBuffer2: "
                                + getOutNetBuffer());
                    }
                    org.apache.mina.common.ByteBuffer writeBuffer2 = copy(getOutNetBuffer());
                    writeFuture = new DefaultWriteFuture(session);
                    parent.filterWrite(nextFilter, session, new WriteRequest(
                            writeBuffer2, writeFuture));
                }
            }
        } finally {
            writingEncryptedData = false;
View Full Code Here

    public void testWriteEmptyStream() throws Exception
    {
        StreamWriteFilter filter = new StreamWriteFilter();

        InputStream stream = new ByteArrayInputStream( new byte[ 0 ] );
        WriteRequest writeRequest = new WriteRequest( stream, new DummyWriteFuture() );

        /*
         * Record expectations
         */
        nextFilter.messageSent( session, stream );

        /*
         * Replay.
         */
        mockNextFilter.replay();
        mockSession.replay();

        filter.filterWrite( nextFilter, session, writeRequest );

        /*
         * Verify.
         */
        mockNextFilter.verify();
        mockSession.verify();

        assertTrue( writeRequest.getFuture().isWritten() );
    }
View Full Code Here

    public void testWriteNonStreamMessage() throws Exception
    {
        StreamWriteFilter filter = new StreamWriteFilter();

        Object message = new Object();
        WriteRequest writeRequest = new WriteRequest( message, new DummyWriteFuture() );

        /*
         * Record expectations
         */
        nextFilter.filterWrite( session, writeRequest );
View Full Code Here

        StreamWriteFilter filter = new StreamWriteFilter();

        byte[] data = new byte[] { 1, 2, 3, 4 };

        InputStream stream = new ByteArrayInputStream( data );
        WriteRequest writeRequest = new WriteRequest( stream, new DummyWriteFuture() );

        /*
         * Record expectations
         */
        session.setAttribute( StreamWriteFilter.CURRENT_STREAM, stream );
        mockSession.setReturnValue(null);
        session.setAttribute( StreamWriteFilter.INITIAL_WRITE_FUTURE, writeRequest.getFuture() );
        mockSession.setReturnValue(null);
        nextFilter.filterWrite( session, new WriteRequest( ByteBuffer.wrap( data ) ) );
        mockNextFilter.setMatcher( new WriteRequestMatcher() );

        session.getAttribute( StreamWriteFilter.CURRENT_STREAM );
        mockSession.setReturnValue( stream );
        session.removeAttribute( StreamWriteFilter.CURRENT_STREAM );
        mockSession.setReturnValue( stream );
        session.removeAttribute( StreamWriteFilter.INITIAL_WRITE_FUTURE );
        mockSession.setReturnValue( writeRequest.getFuture() );
        session.removeAttribute( StreamWriteFilter.WRITE_REQUEST_QUEUE );
        mockSession.setReturnValue( null );
        nextFilter.messageSent( session, stream );

        /*
         * Replay.
         */
        mockNextFilter.replay();
        mockSession.replay();

        filter.filterWrite( nextFilter, session, writeRequest );
        filter.messageSent( nextFilter, session, data );

        /*
         * Verify.
         */
        mockNextFilter.verify();
        mockSession.verify();

        assertTrue( writeRequest.getFuture().isWritten() );
    }
View Full Code Here

        byte[] chunk1 = new byte[] { 1, 2, 3, 4 };
        byte[] chunk2 = new byte[] { 5, 6, 7, 8 };
        byte[] chunk3 = new byte[] { 9, 10 };

        InputStream stream = new ByteArrayInputStream( data );
        WriteRequest writeRequest = new WriteRequest( stream, new DummyWriteFuture() );

        /*
         * Record expectations
         */
        session.setAttribute( StreamWriteFilter.CURRENT_STREAM, stream );
        mockSession.setReturnValue(null);
        session.setAttribute( StreamWriteFilter.INITIAL_WRITE_FUTURE, writeRequest.getFuture() );
        mockSession.setReturnValue(null);
        nextFilter.filterWrite( session, new WriteRequest( ByteBuffer.wrap( chunk1 ) ) );
        mockNextFilter.setMatcher( new WriteRequestMatcher() );

        session.getAttribute( StreamWriteFilter.CURRENT_STREAM );
        mockSession.setReturnValue( stream );
        nextFilter.filterWrite( session, new WriteRequest( ByteBuffer.wrap( chunk2 ) ) );

        session.getAttribute( StreamWriteFilter.CURRENT_STREAM );
        mockSession.setReturnValue( stream );
        nextFilter.filterWrite( session, new WriteRequest( ByteBuffer.wrap( chunk3 ) ) );

        session.getAttribute( StreamWriteFilter.CURRENT_STREAM );
        mockSession.setReturnValue( stream );
        session.removeAttribute( StreamWriteFilter.CURRENT_STREAM );
        mockSession.setReturnValue( stream );
        session.removeAttribute( StreamWriteFilter.INITIAL_WRITE_FUTURE );
        mockSession.setReturnValue( writeRequest.getFuture() );
        session.removeAttribute( StreamWriteFilter.WRITE_REQUEST_QUEUE );
        mockSession.setReturnValue( null );
        nextFilter.messageSent( session, stream );

        /*
         * Replay.
         */
        mockNextFilter.replay();
        mockSession.replay();

        filter.filterWrite( nextFilter, session, writeRequest );
        filter.messageSent( nextFilter, session, chunk1 );
        filter.messageSent( nextFilter, session, chunk2 );
        filter.messageSent( nextFilter, session, chunk3 );

        /*
         * Verify.
         */
        mockNextFilter.verify();
        mockSession.verify();

        assertTrue( writeRequest.getFuture().isWritten() );
    }
View Full Code Here

         * Replay.
         */
        mockNextFilter.replay();
        mockSession.replay();

        WriteRequest wr = new WriteRequest( new Object(), new DummyWriteFuture() );
        filter.filterWrite( nextFilter, session, wr );
        assertEquals( 1, queue.size() );
        assertSame( wr, queue.poll() );

        /*
 
View Full Code Here

    public void testWritesWriteRequestQueueWhenFinished() throws Exception
    {
        StreamWriteFilter filter = new StreamWriteFilter();

        WriteRequest wrs[] = new WriteRequest[] {
                new WriteRequest( new Object(), new DummyWriteFuture() ),
                new WriteRequest( new Object(), new DummyWriteFuture() ),
                new WriteRequest( new Object(), new DummyWriteFuture() )
        };
        Queue<WriteRequest> queue = new LinkedList<WriteRequest>( );
        queue.add( wrs[ 0 ] );
        queue.add( wrs[ 1 ] );
        queue.add( wrs[ 2 ] );
View Full Code Here

        @Override
        protected boolean argumentMatches( Object expected, Object actual )
        {
            if( expected instanceof WriteRequest && actual instanceof WriteRequest )
            {
                WriteRequest w1 = ( WriteRequest ) expected;
                WriteRequest w2 = ( WriteRequest ) actual;

                return w1.getMessage().equals( w2.getMessage() )
                    && w1.getFuture().isWritten() == w2.getFuture().isWritten();
            }
            return super.argumentMatches( expected, actual );
        }
View Full Code Here

                SessionLog.debug( session, " session write: " + writeBuffer );
            }
            //debug("outNetBuffer (after copy): {0}", sslHandler.getOutNetBuffer());

            writeFuture = new DefaultWriteFuture( session );
            parent.filterWrite( nextFilter, session, new WriteRequest( writeBuffer, writeFuture ) );

            // loop while more writes required to complete handshake
            while( needToCompleteInitialHandshake() )
            {
                try
                {
                    handshake( nextFilter );
                }
                catch( SSLException ssle )
                {
                    SSLException newSSLE = new SSLHandshakeException(
                            "Initial SSL handshake failed." );
                    newSSLE.initCause( ssle );
                    throw newSSLE;
                }
                if( getOutNetBuffer().hasRemaining() )
                {
                    if( SessionLog.isDebugEnabled( session ) )
                    {
                        SessionLog.debug( session, " write outNetBuffer2: " + getOutNetBuffer() );
                    }
                    org.apache.mina.common.ByteBuffer writeBuffer2 = copy( getOutNetBuffer() );
                    writeFuture = new DefaultWriteFuture( session );
                    parent.filterWrite( nextFilter, session, new WriteRequest( writeBuffer2, writeFuture ) );
                }
            }
        }
        finally
        {
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.