forked from 2009Scape/Server
50 lines
No EOL
929 B
Java
50 lines
No EOL
929 B
Java
package ms.net;
|
|
|
|
import java.nio.channels.CancelledKeyException;
|
|
|
|
/**
|
|
* Handles a writing event.
|
|
* @author Emperor
|
|
*/
|
|
public abstract class IoWriteEvent implements Runnable {
|
|
|
|
/**
|
|
* The I/O session.
|
|
*/
|
|
private final IoSession session;
|
|
|
|
/**
|
|
* The buffer.
|
|
*/
|
|
private final Object context;
|
|
|
|
/**
|
|
* Constructs a new {@code IoWriteEvent}.
|
|
* @param session The session.
|
|
* @param context The write event context.
|
|
*/
|
|
public IoWriteEvent(IoSession session, Object context) {
|
|
this.session = session;
|
|
this.context = context;
|
|
}
|
|
|
|
@Override
|
|
public void run() {
|
|
try {
|
|
write(session, context);
|
|
} catch (Throwable t) {
|
|
if (!(t instanceof CancelledKeyException)) {
|
|
t.printStackTrace();
|
|
}
|
|
session.disconnect();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Writes the data.
|
|
* @param session The session.
|
|
* @param context The write event context.
|
|
*/
|
|
public abstract void write(IoSession session, Object context);
|
|
|
|
} |