ProgressTracker class

Aggregates job progress into an overall percentage and ETA, renders it, and mirrors it to a JSON file that the IDE extensions poll.

Constructors

ProgressTracker({required List<JobProgress> jobs, required int parallel, DateTime clock()?})

Properties

hashCode → int
The hash code for this object.
no setterinherited
jobs → List<JobProgress>
final
now → DateTime
no setter
parallel → int
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
startedAt ↔ DateTime
latefinal
totalTargets → int
no setter

Methods

count(JobState state) → int
eta([DateTime? at]) → Duration
Simulates the remaining work on parallel slots: running jobs keep their slot, queued jobs start on whichever slot frees up first.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
percent([DateTime? at]) → double
Weighted by each job's estimate, so a 10 minute iOS build counts for more than a 5 minute APK.
percentLabel([DateTime? at]) → String
Whole-number percentage for display; only reads 100 when every job has actually finished.
toJson() → Map<String, dynamic>
toString() → String
A string representation of this object.
inherited
writeFile(String path) → void
Writes atomically so readers never see a half-written file.

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

readWorkerState(String path) → ({String? step, int targetsDone})?
Reads the step and completed targets a worker process reported.