Newer
Older
KeeperJerry_Launcher / Launcher / source / request / CustomRequest.java
package launcher.request;

import launcher.Launcher;
import launcher.helper.VerifyHelper;
import launcher.serialize.HInput;
import launcher.serialize.HOutput;

public abstract class CustomRequest<T> extends Request<T> {
	public CustomRequest(Launcher.Config config) {
		super(config);
	}

	public CustomRequest() {
		this(null);
	}

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

	@Override
	protected final T requestDo(HInput input, HOutput output) throws Exception {
		output.writeASCII(VerifyHelper.verifyIDName(getName()), 255);
		output.flush();

		// Custom request redirect
		return requestDoCustom(input, output);
	}

	public abstract String getName();

	protected abstract T requestDoCustom(HInput input, HOutput output);
}