Newer
Older
KeeperJerry_Launcher / Launcher / source / request / PingRequest.java
@sashok724 sashok724 on 2 Dec 2016 865 bytes перед тем как начать
package launcher.request;

import java.io.IOException;

import launcher.Launcher;
import launcher.Launcher.Config;
import launcher.LauncherAPI;
import launcher.serialize.HInput;
import launcher.serialize.HOutput;

public final class PingRequest extends Request<Void> {
    @LauncherAPI public static final byte EXPECTED_BYTE = 0b01010101;

    @LauncherAPI
    public PingRequest(Config config) {
        super(config);
    }

    @LauncherAPI
    public PingRequest() {
        this(null);
    }

    @Override
    public Type getType() {
        return Type.PING;
    }

    @Override
    protected Void requestDo(HInput input, HOutput output) throws IOException {
        byte pong = (byte) input.readUnsignedByte();
        if (pong != EXPECTED_BYTE) {
            throw new IOException("Illegal ping response: " + pong);
        }
        return null;
    }
}