org.apache.mina.core.future.ConnectFuture Maven / Gradle / Ivy
/**
* Copyright 2007-2015, Kaazing Corporation. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.mina.core.future;
import org.apache.mina.core.session.IoSession;
/**
* An {@link IoFuture} for asynchronous connect requests.
*
* Example
*
* IoConnector connector = ...;
* ConnectFuture future = connector.connect(...);
* future.join(); // Wait until the connection attempt is finished.
* IoSession session = future.getSession();
* session.write(...);
*
*
* @author Apache MINA Project
*/
public interface ConnectFuture extends IoFuture {
/**
* Returns {@link IoSession} which is the result of connect operation.
*
* @return null if the connect operation is not finished yet
* @throws RuntimeException if connection attempt failed by an exception
*/
IoSession getSession();
/**
* Returns the cause of the connection failure.
*
* @return null if the connect operation is not finished yet,
* or if the connection attempt is successful.
*/
Throwable getException();
/**
* Returns true if the connect operation is finished successfully.
*/
boolean isConnected();
/**
* Returns {@code true} if the connect operation has been canceled by
* {@link #cancel()} method.
*/
boolean isCanceled();
/**
* Sets the newly connected session and notifies all threads waiting for
* this future. This method is invoked by MINA internally. Please do not
* call this method directly.
*/
void setSession(IoSession session);
/**
* Sets the exception caught due to connection failure and notifies all
* threads waiting for this future. This method is invoked by MINA
* internally. Please do not call this method directly.
*/
void setException(Throwable exception);
/**
* Cancels the connection attempt and notifies all threads waiting for
* this future.
*/
void cancel();
ConnectFuture await() throws InterruptedException;
ConnectFuture awaitUninterruptibly();
ConnectFuture addListener(IoFutureListener listener);
ConnectFuture removeListener(IoFutureListener listener);
}