Refactoring: Track filestates directly within Writable objects - #1937
Open
franzpoeschel wants to merge 6 commits into
Open
Refactoring: Track filestates directly within Writable objects#1937franzpoeschel wants to merge 6 commits into
franzpoeschel wants to merge 6 commits into
Conversation
ADIOS2 implementation JSON implementation Use AbstractIOHandlerImplCommon there now too Some bug fixes after recent PRs Remove useless check in touch() task Fixes after rebase (not yet complete)
Add null check for search->parent in second while loop to prevent dereferencing null when traversing parent chain without finding a valid fileState.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Move file state tracking from backend-specific maps (
m_files,m_fileData,m_jsonVals) directly into theWritableobject viawritable->fileState.Summary
This refactoring moves file state management from scattered backend-specific data structures into a centralized location within
Writable. TheInvalidatableFilewrapper class is replaced byinternal::FileStatestruct, with backend-specific state stored instd::any backendSpecificState.Changes
Core Changes
InvalidatableFileclass replaced byinternal::FileStatestructWritable::fileStateAbstractIOHandlerImplCommonWritablefilestate, can be done at a later pointBehavioral Changes
createFilefile existence check: Now usesauxiliary::file_exists()to detect files on disk (previously only checked for files opened in current session)deregisteris now a no-op: File cleanup is handled byFileStatedestructor patterncloseFile: MarksbackendSpecificStateas nullopt instead of erasing fromm_files