package im.actor.core.modules.api.entity; import java.io.IOException; import im.actor.core.api.parser.RpcParser; import im.actor.core.network.parser.Request; import im.actor.runtime.bser.Bser; import im.actor.runtime.bser.BserObject; import im.actor.runtime.bser.BserValues; import im.actor.runtime.bser.BserWriter; public class StoredRequest extends BserObject { public static StoredRequest fromBytes(byte[] data) throws IOException { return Bser.parse(new StoredRequest(), data); } private static final RpcParser PARSER = new RpcParser(); private Request request; public StoredRequest(Request request) { this.request = request; } private StoredRequest() { } public Request getRequest() { return request; } @Override public void parse(BserValues values) throws IOException { // Loading header and serialization of request int headerKey = values.getInt(1); byte[] requestData = values.getBytes(2); // Parsing request request = (Request) PARSER.read(headerKey, requestData); } @Override public void serialize(BserWriter writer) throws IOException { // Writing header and serialization of request; writer.writeInt(1, request.getHeaderKey()); writer.writeBytes(2, request.toByteArray()); } }