Add version ValidFramesModifier to distinguish between reading-only and reading+modifying

This commit is contained in:
jeremy
2022-11-29 11:05:11 +01:00
parent 8f19ce88d9
commit e946eb50d2
4 changed files with 78 additions and 8 deletions

View File

@@ -80,6 +80,8 @@ void MultiFrame::DefragmentValidFrames() noexcept {
ValidFramesReader MultiFrame::GetValidFramesReader() { return ValidFramesReader(*this); }
ValidFramesModifier MultiFrame::GetValidFramesModifier() { return ValidFramesModifier(*this); }
ValidFramesInvalidator MultiFrame::GetValidFramesInvalidator() { return ValidFramesInvalidator(*this); }
InvalidFramesPopulator MultiFrame::GetInvalidFramesPopulator() { return InvalidFramesPopulator(*this); }
@@ -93,6 +95,15 @@ ValidFramesReader::Iterator ValidFramesReader::end() {
return Iterator(&multiframe_.frames_[multiframe_.frames_.size()], *this);
}
ValidFramesModifier::ValidFramesModifier(MultiFrame &multiframe) : multiframe_(multiframe) {}
ValidFramesModifier::~ValidFramesModifier() = default;
ValidFramesModifier::Iterator ValidFramesModifier::begin() { return Iterator(&multiframe_.frames_[0], *this); }
ValidFramesModifier::Iterator ValidFramesModifier::end() {
return Iterator(&multiframe_.frames_[multiframe_.frames_.size()], *this);
}
ValidFramesInvalidator::ValidFramesInvalidator(MultiFrame &multiframe) : multiframe_(multiframe) {}
ValidFramesInvalidator::~ValidFramesInvalidator() {