Skip to content
This repository has been archived by the owner on Jun 7, 2022. It is now read-only.

Commit

Permalink
Merge pull request #186 from darrenldl/dev
Browse files Browse the repository at this point in the history
Fixed stats display code
  • Loading branch information
darrenldl committed May 4, 2019
2 parents dbd4bbc + 178eb0f commit 01795ef
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 26 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,15 @@
- Switched to using tilde requirements for dependencies

- This is to ensure build stability for users who install blkar via crates.io, as `Cargo.lock` is not currently published along with the package on crates.io

- Updated progress reporting code

- Encode stdin mode now reports current rate and time used during encoding, and shows normal progress stats at the end
- The following modes now use "bytes" as units for progress reporting instead of "chunks" or "blocks"
- Decode
- Encode
- Repair
- Sort

## 6.0.1

Expand Down
33 changes: 18 additions & 15 deletions src/decode_core.rs
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ impl fmt::Display for Stats {
ver_to_usize(self.version)
)?;
write_maybe_json!(f, json_printer, "Block size used in decoding {}: {}", padding, block_size => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks processed {}: {}", padding, self.units_so_far() => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks processed {}: {}", padding, self.blocks_so_far() => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks decoded (metadata) {}: {}", padding, self.meta_blocks_decoded => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks decoded (data) {}: {}", padding, self.data_blocks_decoded => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks decoded (parity) {}: {}", padding, self.parity_blocks_decoded => skip_quotes)?;
Expand Down Expand Up @@ -205,7 +205,7 @@ impl fmt::Display for Stats {
ver_to_usize(self.version)
)?;
write_maybe_json!(f, json_printer, "Block size used in decoding {}: {}", padding, block_size => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks processed {}: {}", padding, self.units_so_far() => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks processed {}: {}", padding, self.blocks_so_far() => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks decoded (metadata) {}: {}", padding, self.meta_blocks_decoded => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks decoded (data) {}: {}", padding, self.data_blocks_decoded => skip_quotes)?;
match self.blocks_decode_failed {
Expand Down Expand Up @@ -455,6 +455,21 @@ impl Stats {
DecodeFailStats::Total(_) => panic!(),
}
}

fn blocks_so_far(&self) -> u64 {
let blocks_decode_failed = match self.blocks_decode_failed {
DecodeFailStats::Total(x) => x,
DecodeFailStats::Breakdown(ref x) => {
x.meta_blocks_decode_failed
+ x.data_blocks_decode_failed
+ x.parity_blocks_decode_failed
}
};
self.meta_blocks_decoded
+ self.data_blocks_decoded
+ self.parity_blocks_decoded
+ blocks_decode_failed
}
}

impl ProgressReport for HashStats {
Expand Down Expand Up @@ -485,19 +500,7 @@ impl ProgressReport for Stats {
}

fn units_so_far(&self) -> u64 {
let blocks_decode_failed = match self.blocks_decode_failed {
DecodeFailStats::Total(x) => x,
DecodeFailStats::Breakdown(ref x) => {
x.meta_blocks_decode_failed
+ x.data_blocks_decode_failed
+ x.parity_blocks_decode_failed
}
};
(self.meta_blocks_decoded
+ self.data_blocks_decoded
+ self.parity_blocks_decoded
+ blocks_decode_failed)
* ver_to_block_size(self.version) as u64
self.blocks_so_far() * ver_to_block_size(self.version) as u64
}

fn total_units(&self) -> Option<u64> {
Expand Down
11 changes: 7 additions & 4 deletions src/repair_core.rs
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ impl Stats {
json_printer: Arc::clone(json_printer),
}
}

fn blocks_so_far(&self) -> u64 {
self.meta_blocks_decoded + self.data_or_par_blocks_decoded + self.blocks_decode_failed
}
}

impl ProgressReport for Stats {
Expand All @@ -71,8 +75,7 @@ impl ProgressReport for Stats {
}

fn units_so_far(&self) -> u64 {
(self.meta_blocks_decoded + self.data_or_par_blocks_decoded + self.blocks_decode_failed)
* ver_to_block_size(self.version) as u64
self.blocks_so_far() * ver_to_block_size(self.version) as u64
}

fn total_units(&self) -> Option<u64> {
Expand All @@ -97,7 +100,7 @@ impl fmt::Display for Stats {
ver_to_usize(self.version)
)?;
write_maybe_json!(f, json_printer, "Block size used in checking : {}", block_size => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks processed : {}", self.units_so_far() => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks processed : {}", self.blocks_so_far() => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks passed check (metadata) : {}", self.meta_blocks_decoded => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks passed check (data) : {}", self.data_or_par_blocks_decoded => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks failed check : {}", self.blocks_decode_failed => skip_quotes)?;
Expand Down Expand Up @@ -378,7 +381,7 @@ pub fn repair_file(param: &Param) -> Result<Option<Stats>, Error> {

break_if_atomic_bool!(ctrlc_stop_flag);

if stats.units_so_far() >= total_block_count {
if stats.blocks_so_far() >= total_block_count {
break;
}

Expand Down
17 changes: 10 additions & 7 deletions src/sort_core.rs
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,14 @@ impl Stats {
json_printer: Arc::clone(json_printer),
}
}

fn blocks_so_far(&self) -> u64 {
self.meta_blocks_decoded
+ self.data_blocks_decoded
+ self.parity_blocks_decoded
+ self.blocks_decode_failed
+ self.okay_blank_blocks
}
}

impl ProgressReport for Stats {
Expand All @@ -146,12 +154,7 @@ impl ProgressReport for Stats {
}

fn units_so_far(&self) -> u64 {
(self.meta_blocks_decoded
+ self.data_blocks_decoded
+ self.parity_blocks_decoded
+ self.blocks_decode_failed
+ self.okay_blank_blocks)
* ver_to_block_size(self.version) as u64
self.blocks_so_far() * ver_to_block_size(self.version) as u64
}

fn total_units(&self) -> Option<u64> {
Expand All @@ -176,7 +179,7 @@ impl fmt::Display for Stats {
ver_to_usize(self.version)
)?;
write_maybe_json!(f, json_printer, "Block size used in checking : {}", block_size => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks processed : {}", self.units_so_far() => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks processed : {}", self.blocks_so_far() => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks sorted (metadata) : {}", self.meta_blocks_decoded => skip_quotes)?;
write_maybe_json!(f, json_printer, "Number of blocks sorted (data) : {}", self.data_blocks_decoded => skip_quotes)?;
if ver_uses_rs(self.version) {
Expand Down

0 comments on commit 01795ef

Please sign in to comment.