package com.steamcommunity.siplus.steamscreenshots; import com.google.protobuf.ByteString; import com.steamcommunity.siplus.steamscreenshots.proto.OutgoingProtos.ClientUFSFileChunkProto; public class ClientUFSFileChunkOutgoing extends Outgoing { static final int CHUNK_SIZE = 10240; ByteString mData; int mStart; ByteString mHash; ClientUFSFileChunkOutgoing(long job, ByteString hash) { // really long job mHash = hash; mHeader.mJobTarget = job; } @Override int getMessageType() { return 5204; } @Override byte[] serialize() { return ClientUFSFileChunkProto.newBuilder() .setShaFile(mHash) .setFileStart(mStart) .setData(mData) .build().toByteArray(); } void setData(byte[] data, int start) { int length; if ((start + CHUNK_SIZE) > data.length) { length = data.length % CHUNK_SIZE; } else { length = CHUNK_SIZE; } mData = ByteString.copyFrom(data, start, length); mStart = start; } }