Newer
Older
KeeperJerry_Launcher / LaunchServer / source / binary / LauncherBinary.java
@KeeperJerry KeeperJerry on 25 Jun 2020 1 KB Можно менять название
package launchserver.binary;

import java.io.IOException;
import java.nio.file.Path;

import launcher.LauncherAPI;
import launcher.helper.IOHelper;
import launcher.serialize.signed.SignedBytesHolder;
import launchserver.LaunchServer;

public abstract class LauncherBinary
{
    @LauncherAPI protected final LaunchServer server;
    @LauncherAPI protected final Path binaryFile;
    private volatile SignedBytesHolder binary;

    @LauncherAPI
    protected LauncherBinary(LaunchServer server, Path binaryFile) {
        this.server = server;
        this.binaryFile = binaryFile;
    }

    @LauncherAPI
    public abstract void build() throws IOException;

    @LauncherAPI
    public final boolean exists()
    {
        return IOHelper.isFile(binaryFile);
    }

    @LauncherAPI
    public final SignedBytesHolder getBytes()
    {
        return binary;
    }

    @LauncherAPI
    public final boolean sync() throws IOException
    {
        boolean exists = exists();
        binary = exists ? new SignedBytesHolder(IOHelper.read(binaryFile), server.privateKey) : null;
        return exists;
    }
}