mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-13 06:16:55 -04:00
Add constrained_block_size to granularity policy
This commit is contained in:
parent
18b306033b
commit
19b3424a3c
@ -283,6 +283,13 @@ class ConstantGranularityPolicy : private GranularityPolicyBase {
|
|||||||
chunkable_size_fail_message(size, kGranularity));
|
chunkable_size_fail_message(size, kGranularity));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static size_t constrained_block_size(size_t size) {
|
||||||
|
if constexpr (kGranularity > 1) {
|
||||||
|
size -= size % kGranularity;
|
||||||
|
}
|
||||||
|
return size;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class VariableGranularityPolicy : private GranularityPolicyBase {
|
class VariableGranularityPolicy : private GranularityPolicyBase {
|
||||||
@ -309,6 +316,13 @@ class VariableGranularityPolicy : private GranularityPolicyBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t constrained_block_size(size_t size) const {
|
||||||
|
if (granularity_ > 1) {
|
||||||
|
size -= size % granularity_;
|
||||||
|
}
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint_fast32_t const granularity_;
|
uint_fast32_t const granularity_;
|
||||||
};
|
};
|
||||||
@ -395,7 +409,7 @@ class segmenter_ final : public segmenter::impl, private GranularityPolicy {
|
|||||||
, block_ready_{std::move(block_ready)}
|
, block_ready_{std::move(block_ready)}
|
||||||
, window_size_{window_size(cfg)}
|
, window_size_{window_size(cfg)}
|
||||||
, window_step_{window_step(cfg)}
|
, window_step_{window_step(cfg)}
|
||||||
, block_size_{block_size(cfg)}
|
, block_size_{this->constrained_block_size(block_size(cfg))}
|
||||||
, filter_{bloom_filter_size(cfg)}
|
, filter_{bloom_filter_size(cfg)}
|
||||||
, match_counts_{1, 0, 128} {
|
, match_counts_{1, 0, 128} {
|
||||||
if (segmentation_enabled()) {
|
if (segmentation_enabled()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user