package io.mycat.server.response;
import com.google.common.util.concurrent.FutureCallback;
import io.mycat.server.ErrorCode;
import io.mycat.server.MySQLFrontConnection;
import io.mycat.server.config.loader.ReloadUtil;
import io.mycat.server.packet.OkPacket;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 异步执行回调类,用于回写数据给用户等。
*/
public class ReloadCallBack implements FutureCallback<Boolean> {
private static final Logger LOGGER = LoggerFactory.getLogger(ReloadUtil.class);
private MySQLFrontConnection mc;
public ReloadCallBack(MySQLFrontConnection c) {
this.mc = c;
}
@Override
public void onSuccess(Boolean result) {
if (result) {
LOGGER.warn("send ok package to client " + String.valueOf(mc));
OkPacket ok = new OkPacket();
ok.packetId = 1;
ok.affectedRows = 1;
ok.serverStatus = 2;
ok.message = "Reload config success".getBytes();
ok.write(mc);
} else {
mc.writeErrMessage(ErrorCode.ER_YES, "Reload config failure");
}
}
@Override
public void onFailure(Throwable t) {
mc.writeErrMessage(ErrorCode.ER_YES, "Reload config failure");
}
}