diff options
author | Tianjie Xu <xunchang@google.com> | 2019-05-03 03:30:42 +0200 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-05-03 03:30:42 +0200 |
commit | 15a899363ea36d706d0b6905a8de900180db907d (patch) | |
tree | 1638f4014d5055943e6a3f57d7b7897ed09c111a /otautil/include | |
parent | Merge changes I2d42f55a,Ic1b5dbf7 (diff) | |
parent | Merge "Implement FuseBlockDataProvider" (diff) | |
download | android_bootable_recovery-15a899363ea36d706d0b6905a8de900180db907d.tar android_bootable_recovery-15a899363ea36d706d0b6905a8de900180db907d.tar.gz android_bootable_recovery-15a899363ea36d706d0b6905a8de900180db907d.tar.bz2 android_bootable_recovery-15a899363ea36d706d0b6905a8de900180db907d.tar.lz android_bootable_recovery-15a899363ea36d706d0b6905a8de900180db907d.tar.xz android_bootable_recovery-15a899363ea36d706d0b6905a8de900180db907d.tar.zst android_bootable_recovery-15a899363ea36d706d0b6905a8de900180db907d.zip |
Diffstat (limited to 'otautil/include')
-rw-r--r-- | otautil/include/otautil/rangeset.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/otautil/include/otautil/rangeset.h b/otautil/include/otautil/rangeset.h index e91d02ca6..a18c30e29 100644 --- a/otautil/include/otautil/rangeset.h +++ b/otautil/include/otautil/rangeset.h @@ -18,6 +18,7 @@ #include <stddef.h> +#include <optional> #include <string> #include <utility> #include <vector> @@ -49,6 +50,12 @@ class RangeSet { // bounds. For example, "3,5" contains blocks 3 and 4. So "3,5" and "5,7" are not overlapped. bool Overlaps(const RangeSet& other) const; + // Returns a subset of ranges starting from |start_index| with respect to the original range. The + // output range will have |num_of_blocks| blocks in size. Returns std::nullopt if the input is + // invalid. e.g. RangeSet({{0, 5}, {10, 15}}).GetSubRanges(1, 5) returns + // RangeSet({{1, 5}, {10, 11}}). + std::optional<RangeSet> GetSubRanges(size_t start_index, size_t num_of_blocks) const; + // Returns a vector of RangeSets that contain the same set of blocks represented by the current // RangeSet. The RangeSets in the vector contain similar number of blocks, with a maximum delta // of 1-block between any two of them. For example, 14 blocks would be split into 4 + 4 + 3 + 3, |