Commit Graph

25 Commits

Author SHA1 Message Date
ec6eae7437 Merge pull request #58 from tboudreaux/feature/pythonInterface/config
Add config module bindings to python interface
2025-05-05 14:43:11 -04:00
b95f2e13ae refactor(config): header guard -> pragma once 2025-05-05 14:36:16 -04:00
0111daee2e Merge pull request #45 from tboudreaux/feature/pythonInterface/composition
Python Interface for composition module
2025-04-30 11:57:23 -04:00
453d7a8044 build(config): added compile time option to disable config file load error
In general we may want to enforce that a config file is explicitly loaded before any access is requested. However, there are times when this is non ideal behavior. We introduce a compile time flag (CONFIG_HARSH, and CONFIG_WARN). If config hars is defined then a runtime error will be thrown if a config value is requested before the config file has been loaded. If Config warn is defined (and config harsh is not) then a warning will be printed, otherwise nothing will happen. If either warn or nothing is defined this means that the default values defined in the get methods will be used.

Note that the meson build system has had an option added -Dconfig_error_handling=["none", "warn", "harsh"] (default="none") which can be used to manage these compile time options. In general release builds should have this disabled while debug builts should have it set to harsh.
2025-04-30 11:48:38 -04:00
4fcbcb1d17 build(meson): switched almost all intermediate targets to shared libraries 2025-04-30 11:44:53 -04:00
50e4739c8c feat(python-composition): added composition module interface 2025-04-30 11:41:10 -04:00
57a0898d70 Merge pull request #38 from tboudreaux/fix/opatcoremodulename
fix(resource-manager): fixed old style calls to opat-core
2025-04-25 10:41:30 -04:00
b074655dcb fix(resource-manager): fixed old style calls to opat-core
tboudreaux:feature/mixedPolytrope implimented a fix to bring old style opat-core calls to the more up to date style. This change has been fast forwarded into main
2025-04-25 10:39:10 -04:00
30419d806d Merge pull request #27 from tboudreaux/feature/resourceManager
Added resource manager
2025-03-20 15:04:41 -04:00
666db0760b feat(config): added ability to get all keys and check if a key exists in the given config file
also added the ability to get a config value without specifying a default (this is only avalible to freind classes)
2025-03-20 14:27:57 -04:00
fce2e3fc22 Merge pull request #26 from tboudreaux/style/header
Added copyright headers and post-commit hook to auto generate and update them
2025-03-17 13:35:11 -04:00
0c3a204b7d docs(src): added file headers to all files 2025-03-17 12:42:33 -04:00
f491f1a1ae build(gtest): added gtest as a subproject in case it is not already installed on the system 2025-03-13 14:12:14 -04:00
e33a831eb5 test(tests/probe): added probe tests 2025-02-23 11:22:08 -05:00
1099895be2 Merge branch 'main' into feature/logging
Restore deleted config code so that tests can compile correctly
2025-02-21 10:40:39 -05:00
c735fe8b51 fix(config): restored deleted code
I accidently deleted some cacheing mechanisms, these have been restored
2025-02-21 10:39:43 -05:00
bc66af202f build(probe): updated build system to include probe and probe tests 2025-02-21 10:31:57 -05:00
c5513f9404 docs(config): rebuild docs and removed redundant documentation 2025-02-20 09:45:47 -05:00
82d05344fb Merge pull request #15 from tboudreaux/performance/configCache
Added Cache to Config Class
2025-02-20 09:39:27 -05:00
96eb2c35f7 fix(tests/config): fixed unknownKeyTest name
unknownKeyTest was named incorrectly
2025-02-20 09:32:20 -05:00
49be2888df test(tests/config): tests updated to deal with cache 2025-02-20 09:31:03 -05:00
31184647b7 perf(config): added cache
In order to prevent traversing the YAML tree I have added a hash map (O(1) lookup) to cache already accessed config variables. I have also added a vector to store keys requested but not found so we do not need to check for those every time
2025-02-20 09:30:43 -05:00
f1035bd84f test(tests/config): config tests added 2025-02-19 16:12:23 -05:00
4dc7d6cd7f feat(config): config class added
At many points in the code we may want configurable options, the Config class usses a yaml file to make this easy. It also allows for namespace references "opac:lowtemp:file" etc...
2025-02-19 16:11:55 -05:00
74238e0f7d build(yaml-cpp): added yaml-cpp as a dependency
config files will be written in yaml, added a well tested yaml parser to 4DSSE
2025-02-19 14:50:44 -05:00