this.usm = usm;
long blocks = (size + blockSize - 1) / blockSize;
if(blocks > Integer.MAX_VALUE)
throw new IllegalArgumentException("Too big");
this.blocks = (int)blocks;
blocksReceived = new BitArray(this.blocks);
if(initialState) {
blocksReceived.setAllOnes();
blocksReceivedCount = this.blocks;
}
assert(raf.size() >= size);