basic architecture#9
Merged
Merged
Conversation
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.
This pull request introduces the foundational architecture for the LFMC library by adding core class interfaces, improving documentation, and streamlining the build system. The most significant changes include the introduction of
Manager,Process, andSchemeclasses using the Strategy Pattern, comprehensive documentation for timer utilities, and enhancements to the CMake build configuration.Core Architecture
Managerclass inmanager.hppto coordinate and manage multipleProcessandSchemeinstances at runtime using the Strategy Pattern. The class uses runtime polymorphism and provides methods to set the current process and scheme.Processclass inprocess.hppto represent stochastic processes, and the abstractSchemeclass inscheme.hppto represent numerical schemes for simulating these processes. Both are designed for extensibility and future concrete implementations. [1] [2]Timer Utility Improvements
timer.hppfor bothTimerandScopedTimerclasses, clarifying their purpose and usage. Updated method signatures to usenoexceptfor improved safety and performance.timer.cppto match the newnoexceptsignatures and streamlined the elapsed time calculation.Build System and Source Organization
src/CMakeLists.txtto automatically include all.cppfiles in thesrc/directory as sources, simplifying project maintenance as new source files are added.manager.cpp,process.cpp, andscheme.cppto ensure correct compilation with the new class headers. [1] [2]Documentation and Cleanup
docs/CMakeLists.txtto clean up the documentation build configuration.