com.firefly.net.Session Maven / Gradle / Ivy
package com.firefly.net;
import com.firefly.net.buffer.FileRegion;
import com.firefly.utils.concurrent.Callback;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.util.Collection;
public interface Session {
DisconnectionOutputEntry DISCONNECTION_FLAG = new DisconnectionOutputEntry(null, null);
enum State {CLOSE, OPEN}
void attachObject(Object attachment);
Object getAttachment();
void fireReceiveMessage(Object message);
void encode(Object message);
void write(OutputEntry> entry);
void write(ByteBuffer byteBuffer, Callback callback);
void write(ByteBuffer[] buffers, Callback callback);
void write(Collection buffers, Callback callback);
void write(FileRegion file, Callback callback);
int getSessionId();
long getOpenTime();
long getCloseTime();
long getDuration();
long getLastReadTime();
long getLastWrittenTime();
long getLastActiveTime();
long getReadBytes();
long getWrittenBytes();
void close();
void closeNow();
void shutdownOutput();
void shutdownInput();
State getState();
boolean isOpen();
InetSocketAddress getLocalAddress();
InetSocketAddress getRemoteAddress();
long getIdleTimeout();
}