lava
lava copied to clipboard
Make it easier to use Buffers for input and output
User story
As a user, I want to be able to store or write multiple inputs, outputs, or vars easily, without creating many different RingBuffer processes.
Conditions of satisfaction
- Allow a buffer to dynamically create ports and vars when it is connected.
- Ensure that multiple buffers with different connectivity do not interfere with each other (e.g. due to the use of class members).
- Provide flexible, user-configurable options for what to do when a buffer overflows:
- Raise an error, since we may assume the user intended to match the length of a buffer to the number of timesteps
- Wrap around, as with the current RingBuffers
- Reallocate, e.g. by doubling the available memory in the buffer (as in C++ standard library containers)
- Allow the user to create and connect a buffer without any duplication of shape parameters from the connected ports