Package org.apache.mina.core.write

Examples of org.apache.mina.core.write.DefaultWriteRequest


        // If the session has been closed or is closing, we can't either
        // send a message to the remote side. We generate a future
        // containing an exception.
        if (isClosing() || !isConnected()) {
            WriteFuture future = new DefaultWriteFuture(this);
            WriteRequest request = new DefaultWriteRequest(message, future, remoteAddress);
            WriteException writeException = new WriteToClosedSessionException(request);
            future.setException(writeException);
            return future;
        }

        FileChannel openedFileChannel = null;
       
        // TODO: remove this code as soon as we use InputStream
        // instead of Object for the message.
        try {
            if (message instanceof IoBuffer
                    && !((IoBuffer) message).hasRemaining()) {
                // Nothing to write : probably an error in the user code
                throw new IllegalArgumentException(
                "message is empty. Forgot to call flip()?");
            } else if (message instanceof FileChannel) {
                FileChannel fileChannel = (FileChannel) message;
                message = new DefaultFileRegion(fileChannel, 0, fileChannel.size());
            } else if (message instanceof File) {
                File file = (File) message;
                openedFileChannel = new FileInputStream(file).getChannel();
                message = new FilenameFileRegion(file, openedFileChannel, 0, openedFileChannel.size());
            }
        } catch (IOException e) {
            ExceptionMonitor.getInstance().exceptionCaught(e);
            return DefaultWriteFuture.newNotWrittenFuture(this, e);
        }

        // Now, we can write the message. First, create a future
        WriteFuture writeFuture = new DefaultWriteFuture(this);
        WriteRequest writeRequest = new DefaultWriteRequest(message, writeFuture, remoteAddress);
       
        // Then, get the chain and inject the WriteRequest into it
        IoFilterChain filterChain = getFilterChain();
        filterChain.fireFilterWrite(writeRequest);
View Full Code Here


            saslLayerBuffer.put( saslLayer );
            saslLayerBuffer.position( 0 );
            saslLayerBuffer.limit( 4 + saslLayer.length );

            log.debug( "Sending encrypted token of length {}.", saslLayerBuffer.limit() );
            nextFilter.filterWrite( session, new DefaultWriteRequest( saslLayerBuffer, writeRequest.getFuture() ) );
        }
        else
        {
            log.debug( "Will not use SASL on write request." );
            nextFilter.filterWrite( session, writeRequest );
View Full Code Here

    @Test
    public void testWholeResponse() throws Exception {
        Request req = new Request(1, new Object(), Long.MAX_VALUE);
        Response res = new Response(req, new Message(1, ResponseType.WHOLE),
                ResponseType.WHOLE);
        WriteRequest rwr = new DefaultWriteRequest(req);

        // Record
        nextFilter.filterWrite(session, new DefaultWriteRequest(req
                .getMessage()));
        nextFilterControl.setMatcher(matcher);
        nextFilter.messageSent(session, rwr);
        nextFilter.messageReceived(session, res);
View Full Code Here

        Request req = new Request(1, new Object(), Long.MAX_VALUE);
        Response res1 = new Response(req, new Message(1, ResponseType.PARTIAL),
                ResponseType.PARTIAL);
        Response res2 = new Response(req, new Message(1,
                ResponseType.PARTIAL_LAST), ResponseType.PARTIAL_LAST);
        WriteRequest rwr = new DefaultWriteRequest(req);

        // Record
        nextFilter.filterWrite(session, new DefaultWriteRequest(req
                .getMessage()));
        nextFilterControl.setMatcher(matcher);
        nextFilter.messageSent(session, rwr);
        nextFilter.messageReceived(session, res1);
        nextFilter.messageReceived(session, res2);
View Full Code Here

    @Test
    public void testWholeResponseTimeout() throws Exception {
        Request req = new Request(1, new Object(), 10); // 10ms timeout
        Response res = new Response(req, new Message(1, ResponseType.WHOLE),
                ResponseType.WHOLE);
        WriteRequest rwr = new DefaultWriteRequest(req);

        // Record
        nextFilter.filterWrite(session, new DefaultWriteRequest(req
                .getMessage()));
        nextFilterControl.setMatcher(matcher);
        nextFilter.messageSent(session, rwr);
        nextFilter.exceptionCaught(session, new RequestTimeoutException(req));
        nextFilterControl.setMatcher(new ExceptionMatcher());
View Full Code Here

        Request req = new Request(1, new Object(), 10); // 10ms timeout
        Response res1 = new Response(req, new Message(1, ResponseType.PARTIAL),
                ResponseType.PARTIAL);
        Response res2 = new Response(req, new Message(1,
                ResponseType.PARTIAL_LAST), ResponseType.PARTIAL_LAST);
        WriteRequest rwr = new DefaultWriteRequest(req);

        // Record
        nextFilter.filterWrite(session, new DefaultWriteRequest(req
                .getMessage()));
        nextFilterControl.setMatcher(matcher);
        nextFilter.messageSent(session, rwr);
        nextFilter.messageReceived(session, res1);
        nextFilter.exceptionCaught(session, new RequestTimeoutException(req));
View Full Code Here

        testWholeResponse();
        nextFilterControl.reset();

        Request req1 = new Request(1, new Object(), Long.MAX_VALUE);
        Request req2 = new Request(2, new Object(), Long.MAX_VALUE);
        WriteRequest rwr1 = new DefaultWriteRequest(req1);
        WriteRequest rwr2 = new DefaultWriteRequest(req2);

        // Record
        nextFilter.filterWrite(session, new DefaultWriteRequest(req1
                .getMessage()));
        nextFilterControl.setMatcher(matcher);
        nextFilter.messageSent(session, rwr1);
        nextFilter.filterWrite(session, new DefaultWriteRequest(req2
                .getMessage()));
        nextFilter.messageSent(session, rwr2);
        nextFilter.exceptionCaught(session, new RequestTimeoutException(req1));
        nextFilterControl.setMatcher(new ExceptionMatcher());
        nextFilter.exceptionCaught(session, new RequestTimeoutException(req2));
View Full Code Here

   
    public void testWriteEmptyFile() throws Exception {
        AbstractStreamWriteFilter<M> filter = createFilter();
        M message = createMessage(new byte[0]);

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

        NextFilter nextFilter = EasyMock.createMock(NextFilter.class);
       /*
         * Record expectations
         */
        nextFilter.messageSent(session, writeRequest);

        /*
         * Replay.
         */
        EasyMock.replay(nextFilter);

        filter.filterWrite(nextFilter, session, writeRequest);

        /*
         * Verify.
         */
        EasyMock.verify(nextFilter);

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

     */
    public void testWriteNonFileRegionMessage() throws Exception {
        AbstractStreamWriteFilter<M> filter = createFilter();

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

        NextFilter nextFilter = EasyMock.createMock(NextFilter.class);
        /*
         * Record expectations
View Full Code Here

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

        AbstractStreamWriteFilter<M> filter = createFilter();
        M message = createMessage(data);

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

        NextFilter nextFilter = EasyMock.createMock(NextFilter.class);
        /*
         * Record expectations
         */
        nextFilter.filterWrite(EasyMock.eq(session), eqWriteRequest(new DefaultWriteRequest(IoBuffer
                .wrap(data))));
        nextFilter.messageSent(session, writeRequest);

        /*
         * Replay.
         */
        EasyMock.replay(nextFilter);

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

        /*
         * Verify.
         */
        EasyMock.verify(nextFilter);

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

TOP

Related Classes of org.apache.mina.core.write.DefaultWriteRequest

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.