public void dump() { System.out.printf("%06d:%06d min=%d max=%d%n", getStart(), getEnd(), getActiveMinProcId(), getActiveMaxProcId()); System.out.println("Update:"); for (int i = 0; i < updated.length; ++i) { for (int j = 0; j < BITS_PER_WORD; ++j) { System.out.print((updated[i] & (1L << j)) != 0 ? "1" : "0"); } System.out.println(" " + i); } System.out.println(); System.out.println("Delete:"); for (int i = 0; i < deleted.length; ++i) { for (int j = 0; j < BITS_PER_WORD; ++j) { System.out.print((deleted[i] & (1L << j)) != 0 ? "1" : "0"); } System.out.println(" " + i); } System.out.println(); }
public void dump() { System.out.printf("%06d:%06d min=%d max=%d%n", getStart(), getEnd(), getMinProcId(), getMaxProcId()); System.out.println("Update:"); for (int i = 0; i < updated.length; ++i) { for (int j = 0; j < BITS_PER_WORD; ++j) { System.out.print((updated[i] & (1L << j)) != 0 ? "1" : "0"); } System.out.println(" " + i); } System.out.println(); System.out.println("Delete:"); for (int i = 0; i < deleted.length; ++i) { for (int j = 0; j < BITS_PER_WORD; ++j) { System.out.print((deleted[i] & (1L << j)) != 0 ? "1" : "0"); } System.out.println(" " + i); } System.out.println(); }
@Override public String toString() { return "BitSetNode(" + getStart() + "-" + getEnd() + ")"; }
public void setDeletedIfSet(final ProcedureStoreTracker tracker) { BitSetNode trackerNode = null; for (BitSetNode node: map.values()) { final long minProcId = node.getStart(); final long maxProcId = node.getEnd(); for (long procId = minProcId; procId <= maxProcId; ++procId) { if (!node.isUpdated(procId)) continue; trackerNode = tracker.lookupClosestNode(trackerNode, procId); if (trackerNode == null || !trackerNode.contains(procId) || trackerNode.isUpdated(procId)) { // the procedure was removed or updated node.delete(procId); } } } }
public void readFrom(final InputStream stream) throws IOException { reset(); final ProcedureProtos.ProcedureStoreTracker data = ProcedureProtos.ProcedureStoreTracker.parseDelimitedFrom(stream); for (ProcedureProtos.ProcedureStoreTracker.TrackerNode protoNode: data.getNodeList()) { final BitSetNode node = BitSetNode.convert(protoNode); map.put(node.getStart(), node); } } }
@Override public String toString() { return "BitSetNode(" + getStart() + "-" + getEnd() + ")"; }
public void resetToProto(final ProcedureProtos.ProcedureStoreTracker trackerProtoBuf) { reset(); for (ProcedureProtos.ProcedureStoreTracker.TrackerNode protoNode: trackerProtoBuf.getNodeList()) { final BitSetNode node = new BitSetNode(protoNode); map.put(node.getStart(), node); } }
private BitSetNode delete(BitSetNode node, final long procId) { node = lookupClosestNode(node, procId); assert node != null : "expected node to delete procId=" + procId; assert node.contains(procId) : "expected procId=" + procId + " in the node"; node.delete(procId); if (!keepDeletes && node.isEmpty()) { // TODO: RESET if (map.size() == 1) map.remove(node.getStart()); } trackProcIds(procId); return node; }