/** * Create a sub progress monitor, used to delegate work to a separate process. * * @param progress parent progress to notify as we get work done * @param amount amount of progress represented */ public SubProgressListener(ProgressListener progress, float amount) { super(); parentProgressListener = progress; this.start = progress.getProgress(); this.amount = (amount > 0.0f) ? amount : 0.0f; }
/** * Create a sub progress monitor, used to delegate work to a separate process. * * @param progress parent progress to notify as we get work done * @param amount amount of progress represented */ public SubProgressListener(ProgressListener progress, float amount) { super(); parentProgressListener = progress; this.start = progress.getProgress(); this.amount = (amount > 0.0f) ? amount : 0.0f; }
private void notifyProgressListener() { progress.setProgress(progress.getProgress() + 1); }
private void notifyProgressListener() { progress.setProgress(progress.getProgress() + 1); }
@Override public void unconflicted(DiffEntry diff) { unconflictedBuffer.add(diff); changed.set(true); fastForward.set(false); progress.setProgress(1f + progress.getProgress()); }
@Override public void merged(FeatureInfo featureInfo) { mergedBuffer.add(featureInfo); changed.set(true); fastForward.set(false); progress.setProgress(1f + progress.getProgress()); }
@Override public void unconflicted(DiffEntry diff) { unconflictedBuffer.add(diff); changed.set(true); fastForward.set(false); progress.setProgress(1f + progress.getProgress()); }
@Override public void merged(FeatureInfo featureInfo) { mergedBuffer.add(featureInfo); changed.set(true); fastForward.set(false); progress.setProgress(1f + progress.getProgress()); }
private List<ObjectId> readCommits() throws IOException { List<ObjectId> commits = new ArrayList<>(); ObjectId obj; while ((obj = packIO.readId(in)) != null) { commits.add(obj); progress.setProgress(progress.getProgress() + 1); } return commits; }
@Override public void conflicted(Conflict conflict) { if (!ours) { conflictsBuffer.add(conflict); } if (reportedConflicts.get() < maxReportedConflicts) { mergeMsg.append("\t" + conflict.getPath() + "\n"); conflictMsg.append("CONFLICT: Merge conflict in " + conflict.getPath() + "\n"); reportedConflicts.incrementAndGet(); } progress.setProgress(1f + progress.getProgress()); }
@Override public void conflicted(Conflict conflict) { if (!ours) { conflictsBuffer.add(conflict); } if (reportedConflicts.get() < maxReportedConflicts) { mergeMsg.append("\t" + conflict.getPath() + "\n"); conflictMsg.append("CONFLICT: Merge conflict in " + conflict.getPath() + "\n"); reportedConflicts.incrementAndGet(); } progress.setProgress(1f + progress.getProgress()); }
@Override public void callback(Supplier<RevObject> supplier) { RevObject object = supplier.get(); progress.setProgress(progress.getProgress() + 1); if (object instanceof RevCommit) { RevCommit commit = (RevCommit) object; toSend.remove(commit.getId()); roots.removeAll(commit.getParentIds()); roots.add(commit.getId()); } } };
@Override public void callback(Supplier<RevObject> supplier) { RevObject object = supplier.get(); progress.setProgress(progress.getProgress() + 1); if (object instanceof RevCommit) { RevCommit commit = (RevCommit) object; want.remove(commit.getId()); have.removeAll(commit.getParentIds()); have.add(commit.getId()); } else if (object instanceof RevTag) { RevTag tag = (RevTag) object; want.remove(tag.getId()); have.remove(tag.getCommitId()); have.add(tag.getId()); } } };
@Override public Pack build() { final java.util.function.Function<ProgressListener, String> oldIndicator = progress .progressIndicator(); progress.setProgressIndicator((p) -> String .format("Server: resolving missing commits... %,d", (int) p.getProgress())); progress.started(); LinkedHashMap<RefRequest, List<ObjectId>> missingCommits; try { // byte[] byteArray = ByteStreams.toByteArray(in); // in.close(); // this.in = new DataInputStream(new ByteArrayInputStream(byteArray)); packIO.readHeader(in); missingCommits = readRefsCommits(); } catch (Exception e) { e.printStackTrace(); try { in.close(); } catch (IOException ex) { } throw propagate(e); } progress.complete(); progress.setProgressIndicator(oldIndicator); return new StreamingPack(missingCommits, in); }
.peekingIterator(Iterators.mergeSorted(commitDiffs, DiffEntry.COMPARATOR)); getProgressListener().setProgressIndicator(p->String.format("%,d", (int) p.getProgress())); while (merged.hasNext()) { List<DiffEntry> nextPath = nextPath(merged);
@Test public void testDefaultListener() { ProgressListener progress = new DefaultProgressListener(); progress.setDescription("progress description"); progress.setMaxProgress(500); progress.started(); assertEquals("progress description", progress.getDescription()); assertEquals(0, (int) progress.getProgress()); progress.setProgress(250); assertEquals(250, (int) progress.getProgress()); progress.complete(); assertEquals(500, (int) progress.getProgress()); assertTrue(progress.isCompleted()); progress.dispose(); }
@Test public void testCancelDefaultListener() { ProgressListener progress = new DefaultProgressListener(); progress.setDescription("progress description"); progress.setMaxProgress(500); progress.started(); assertEquals("progress description", progress.getDescription()); assertEquals(0, (int) progress.getProgress()); progress.setProgress(250); assertEquals(250, (int) progress.getProgress()); progress.cancel(); assertTrue(progress.isCanceled()); progress.dispose(); }
@Test public void testNegativeSubProgress() { ProgressListener progress = new DefaultProgressListener(); progress.setMaxProgress(100); SubProgressListener subProgress = new SubProgressListener(progress, -20); subProgress.setProgress(50); assertEquals(50, (int) subProgress.getProgress()); assertEquals(0, (int) progress.getProgress()); subProgress.complete(); assertEquals(100, (int) subProgress.getProgress()); assertEquals(0, (int) progress.getProgress()); subProgress.dispose(); progress.dispose(); } }
@Test public void testSubProgress() { ProgressListener progress = new DefaultProgressListener(); progress.setDescription("progress description"); progress.setMaxProgress(100); progress.started(); SubProgressListener subProgress = new SubProgressListener(progress, 20); assertEquals("progress description", progress.getDescription()); assertEquals("progress description", subProgress.getDescription()); subProgress.setDescription("sub progress description"); assertEquals("sub progress description", progress.getDescription()); assertEquals("sub progress description", subProgress.getDescription()); subProgress.setMaxProgress(1000); subProgress.started(); assertEquals(0, (int) progress.getProgress()); assertEquals(0, (int) subProgress.getProgress()); subProgress.setProgress(100); assertEquals(100, (int) subProgress.getProgress()); assertEquals(2, (int) progress.getProgress()); subProgress.setProgress(500); assertEquals(500, (int) subProgress.getProgress()); assertEquals(10, (int) progress.getProgress()); subProgress.complete(); assertEquals(1000, (int) subProgress.getProgress()); assertEquals(20, (int) progress.getProgress()); assertTrue(subProgress.isCompleted()); subProgress.dispose(); progress.dispose(); }
@Test public void testCancelSubProgress() { ProgressListener progress = new DefaultProgressListener(); progress.setMaxProgress(100); SubProgressListener subProgress = new SubProgressListener(progress, 20); subProgress.setProgress(10); assertEquals(10, (int) subProgress.getProgress()); assertEquals(2, (int) progress.getProgress()); subProgress.cancel(); assertTrue(subProgress.isCanceled()); assertTrue(progress.isCanceled()); subProgress.dispose(); progress.dispose(); }