Package org.apache.mina.common.IoFilter

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


    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.pop() );
       
        /*
 
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 queue = new Queue();
        queue.push( wrs[ 0 ] );
        queue.push( wrs[ 1 ] );
        queue.push( wrs[ 2 ] );
View Full Code Here

        int writtenBytes = 0;
        int maxWrittenBytes = ((DatagramSessionConfig) session.getConfig()).getSendBufferSize() << 1;
        try {
            for (;;) {
                WriteRequest req;
                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();
                    }

                    buf.reset();
   
                    if (!buf.hasRemaining()) {
                        session.increaseWrittenMessages();
                    }
                   
                    ((DatagramFilterChain) session.getFilterChain())
                            .fireMessageSent(session, req);
                    continue;
                }
   
                SocketAddress destination = req.getDestination();
                if (destination == null) {
                    destination = session.getRemoteAddress();
                }
   
                int localWrittenBytes = ch.send(buf.buf(), destination);
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

        int writtenBytes = 0;
        int maxWrittenBytes = ((DatagramSessionConfig) session.getConfig()).getSendBufferSize() << 1;
        try {
            for (;;) {
                WriteRequest req;
                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();
                    }
View Full Code Here

    private void run(String expectedResult) {
        chain.fireSessionCreated(session);
        chain.fireSessionOpened(session);
        chain.fireMessageReceived(session, new Object());
        chain.fireFilterWrite(session, new WriteRequest(new Object()));
        chain.fireSessionIdle(session, IdleStatus.READER_IDLE);
        chain.fireExceptionCaught(session, new Exception());
        chain.fireSessionClosed(session);

        result = formatResult(result);
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.