45 lines
1.2 KiB
Java
45 lines
1.2 KiB
Java
package io.github.lonamiwebs.overgram.tl;
|
|
|
|
import io.github.lonamiwebs.overgram.utils.BinaryReader;
|
|
import io.github.lonamiwebs.overgram.utils.BinaryWriter;
|
|
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
|
public class TLMessage extends TLObject {
|
|
public CompletableFuture<Object> future;
|
|
|
|
public long id;
|
|
public int seqNo;
|
|
public TLObject object;
|
|
|
|
public TLMessage() {
|
|
}
|
|
|
|
public TLMessage(final long id, final int seqNo, final TLObject object) {
|
|
this.id = id;
|
|
this.seqNo = seqNo;
|
|
this.object = object;
|
|
future = new CompletableFuture<>();
|
|
}
|
|
|
|
@Override
|
|
public void serialize(final BinaryWriter writer) {
|
|
final BinaryWriter tmp = new BinaryWriter();
|
|
tmp.write(object);
|
|
writer.write(id);
|
|
writer.write(seqNo);
|
|
writer.write(tmp.size());
|
|
writer.writeRaw(tmp.toBytes());
|
|
}
|
|
|
|
@Override
|
|
public void deserialize(final BinaryReader reader) throws ClassNotFoundException {
|
|
id = reader.readLong();
|
|
seqNo = reader.readInt();
|
|
final int length = reader.readInt();
|
|
final int before = reader.tell();
|
|
object = reader.readTl();
|
|
reader.set(before + length);
|
|
}
|
|
}
|