Package org.apache.mina.common

Examples of org.apache.mina.common.WriteFuture


    }
   
    private synchronized void write( ByteBuffer buf ) throws IOException
    {
        checkClosed();
        WriteFuture future = session.write( buf );
        lastWriteFuture = future;
    }
View Full Code Here


       
            if( byteBuffer == null )
            {
                // 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 );
            }
            else
            {
                nextFilter.filterWrite( session, new WriteRequest( byteBuffer ) );
View Full Code Here

        {
            // no; bail out
            return DefaultWriteFuture.newNotWrittenFuture( session );
        }
       
        WriteFuture writeFuture = null;
       
        // write net data
       
        // set flag that we are writing encrypted data
        // (used in SSLFilter.filterWrite())
View Full Code Here

        try
        {
            ConnectFuture future = connector.connect( new InetSocketAddress( "localhost", port ), new IoHandlerAdapter() );
            future.join();
           
            WriteFuture writeFuture = future.getSession().write( ByteBuffer.allocate( 16 ).putInt( 0 ).flip() );
            writeFuture.join();
            Assert.assertTrue( writeFuture.isWritten() );
           
            future.getSession().close();
   
            for( int i = 0; i < 30; i ++ )
            {
View Full Code Here

     * @throws IllegalArgumentException if this filter is not managing the specified session
     */
    public WriteFuture stopSSL(IoSession session) throws SSLException {
        SSLHandler handler = getSSLSessionHandler(session);
        NextFilter nextFilter = (NextFilter) session.getAttribute(NEXT_FILTER);
        WriteFuture future;
        synchronized (handler) {
            future = initiateClosure(nextFilter, session);
        }

        handler.flushScheduledEvents();
View Full Code Here

            // SSL might have not started yet.
            nextFilter.filterClose(session);
            return;
        }

        WriteFuture future = null;
        try {
            synchronized (handler) {
                if (isSSLStarted(session)) {
                    future = initiateClosure(nextFilter, session);
                }
            }

            handler.flushScheduledEvents();
        } finally {
            if (future == null) {
                nextFilter.filterClose(session);
            } else {
                future.addListener(new IoFutureListener() {
                    public void operationComplete(IoFuture future) {
                        nextFilter.filterClose(session);
                    }
                });
            }
View Full Code Here

        if (!handler.closeOutbound()) {
            return DefaultWriteFuture.newNotWrittenFuture(session);
        }

        // there might be data to write out here?
        WriteFuture future = handler.writeNetBuffer(nextFilter);

        if (handler.isInboundDone()) {
            handler.destroy();
        }
View Full Code Here

        // set flag that we are writing encrypted data
        // (used in SSLFilter.filterWrite())
        writingEncryptedData = true;

        // write net data
        WriteFuture writeFuture = null;

        try {
            if (SessionLog.isDebugEnabled(session)) {
                SessionLog.debug(session, " write outNetBuffer: "
                        + getOutNetBuffer());
View Full Code Here

            this.writeRequest = writeRequest;
        }

        @Override
        protected WriteFuture doFlush(ByteBuffer buf) {
            WriteFuture future = new DefaultWriteFuture(session);
            nextFilter.filterWrite(session, new WriteRequest(
                    new HiddenByteBuffer(buf), future, writeRequest
                            .getDestination()));
            return future;
        }
View Full Code Here

     * @throws CamelExchangeException is thrown if the body could not be written for some reasons
     *                                (eg remote connection is closed etc.)
     */
    public static void writeBody(IoSession session, Object body, Exchange exchange) throws CamelExchangeException {
        // the write operation is asynchronous. Use WriteFuture to wait until the session has been written
        WriteFuture future = session.write(body);
        // must use a timeout (we use 10s) as in some very high performance scenarios a write can cause
        // thread hanging forever
        if (LOG.isTraceEnabled()) {
            LOG.trace("Waiting for write to complete");
        }
        future.join(10 * 1000L);
        if (!future.isWritten()) {
            LOG.warn("Cannot write body: " + body + " using session: " + session);
            throw new CamelExchangeException("Cannot write body", exchange);
        }
    }
View Full Code Here

TOP

Related Classes of org.apache.mina.common.WriteFuture

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.