package fm.liu.timo.server.session;
import java.util.concurrent.ConcurrentHashMap.KeySetView;
import org.pmw.tinylog.Logger;
import fm.liu.timo.net.connection.BackendConnection;
import fm.liu.timo.server.ServerConnection;
/**
* @author liuhuanting
*/
public class AutoCommitSession extends AbstractSession {
public AutoCommitSession(ServerConnection front) {
super(front);
}
@Override
public void release(BackendConnection con) {
if (con != null) {
BackendConnection c = connections.remove(con.getDatanodeID());
if (c != null && !c.isClosed()) {
if (c.isRunning()) {
c.setHandler(null);
Logger.error("release running connection:{}", c);
} else {
c.release();
}
}
}
}
@Override
public void clear() {
front.reset();
KeySetView<Integer, BackendConnection> keys = connections.keySet();
for (Integer id : keys) {
BackendConnection con = connections.remove(id);
con.setHandler(null);
con.close("cleared");
}
}
}