com.corundumstudio.socketio.AckCallback Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of netty-socketio Show documentation
Show all versions of netty-socketio Show documentation
Socket.IO server implemented on Java
/**
* Copyright 2012 Nikita Koksharov
*
* 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 com.corundumstudio.socketio;
/**
* Base ack callback class.
*
* Notifies about acknowledgement received from client
* via {@link #onSuccess} callback method.
*
* By default it may wait acknowledgement from client
* while {@link SocketIOClient} is alive. Timeout can be
* defined {@link #timeout} as constructor argument.
*
* This object is NOT actual anymore if {@link #onSuccess} or
* {@link #onTimeout} was executed.
*
* @param - any serializable type
*
* @see com.corundumstudio.socketio.VoidAckCallback
* @see com.corundumstudio.socketio.MultiTypeAckCallback
*
*/
public abstract class AckCallback {
protected final Class resultClass;
protected final int timeout;
/**
* Create AckCallback
*
* @param resultClass - result class
*/
public AckCallback(Class resultClass) {
this(resultClass, -1);
}
/**
* Creates AckCallback with timeout
*
* @param resultClass - result class
* @param timeout - callback timeout in seconds
*/
public AckCallback(Class resultClass, int timeout) {
this.resultClass = resultClass;
this.timeout = timeout;
}
public int getTimeout() {
return timeout;
}
/**
* Executes only once when acknowledgement received from client.
*
* @param result - object sended by client
*/
public abstract void onSuccess(T result);
/**
* Invoked only once then timeout
defined
*
*/
public void onTimeout() {
}
/**
* Returns class of argument in {@link #onSuccess} method
*
* @return - result class
*/
public Class getResultClass() {
return resultClass;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy