ChimeraTK / ChimeraTK/ApplicationCore
Implement persistency option for application output variables
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1
- Forks
- 5
- Avg merge
- 1m
- Merged PRs (30d)
- 1
Description
DeviceToControlSystem variables can conceptually not be presisted by the control system. The application has to take care of this in case the values cannot be re-calculated when re-starting the server.
Task: The Output should get an option to persist this variable (off by default). When enabled, the variable is always written to file when a write is called. When the application is started/initialised, the variable content is read from the file.
Details:
- The implementation should happen with a decorator. Like this any output (to Device, Control System or to other ApplicationModules) can be saved and restored.
- Make sure to flush the file after each write. Leave a comment in the code that this has to be tested manually by killing the application with -9 and check that the last value is restored correctly at server start. This kind of test is not well suited for an automated test.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the Output implementation and the application startup, initialization, and write paths for DeviceToControlSystem variables. Add a decorator-based persistence option that is off by default, restores values at initialization, writes and flushes after each write, and includes the requested manual -9 recovery test comment.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100