Newer
Older
KeeperJerry_Launcher / Launcher / source / request / PingRequest.java
@KeeperJerry KeeperJerry on 27 Jun 2020 867 bytes Рефактор кода
package launcher.request;

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

import java.io.IOException;

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;
    }
}