public static LongHashSet doubleClone(LongHashSet source) { final LongHashSet result = new LongHashSet(Integer.bitCount(source.mask)*2); LongHashSetVisitor visitor = new LongHashSetVisitor(){ @Override public void visit(long key) { LongHashSet.setItem(result, key); } }; LongHashSet.visit(source, visitor); return result; }
private void recordReleaseId(long releasedId) { if (LongHashSet.isFull(mapSet)) { mapSet = LongHashSet.doubleClone(mapSet); } LongHashSet.setItem(mapSet, releasedId); }
private void clearIdMap() { LongHashSet.clear(mapSet); }
@Override public void visit(long key) { LongHashSet.setItem(result, key); } };
@Override public void startup() { assert(fileControl.length == 3); int i = fileControl.length-1; //skip the ack index file this.waitCount = i; assert(waitCount==2) : "only 2 is supported"; while (--i>=0) { Pipe<SequentialCtlSchema> output = fileControl[i]; Pipe.presumeRoomForWrite(output); FragmentWriter.write(output, SequentialCtlSchema.MSG_METAREQUEST_3); } //will grow as needed mapSet = new LongHashSet(15); }
private boolean isReleased(long fieldBlockId) { return LongHashSet.hasItem(mapSet, fieldBlockId); }
@Override public void visit(long key) { LongHashSet.setItem(result, key); } };
public static LongHashSet doubleClone(LongHashSet source) { final LongHashSet result = new LongHashSet(Integer.bitCount(source.mask)*2); LongHashSetVisitor visitor = new LongHashSetVisitor(){ @Override public void visit(long key) { LongHashSet.setItem(result, key); } }; LongHashSet.visit(source, visitor); return result; }
@Override public void visit(long key) { LongHashSet.setItem(result, key); } };
public static LongHashSet doubleClone(LongHashSet source) { final LongHashSet result = new LongHashSet(Integer.bitCount(source.mask)*2); LongHashSetVisitor visitor = new LongHashSetVisitor(){ @Override public void visit(long key) { LongHashSet.setItem(result, key); } }; LongHashSet.visit(source, visitor); return result; }