Use a ring buffer for storing data from byte stream.
Description
This change is introduced for two reasons. First, the message buffer operations w.r.t. reading (e.g. write position) are encapsulated, which results in an improved code readability. Second, a smaller number of copies is necessary when an entire message is passed to the VAsioConnection.
Note that this change does not affect the performance (latency, throughput).
Instructions for review / testing
Error handling for write/read: Currently, a boolean is returned (false, if the operation did not succeed). Hence, the class user is responsible for handling an unsuccessful write/read. Is that fine?
Some member functions are currently unused, but have been useful for the development (write/read for single values, print function). Should those be deleted?
Testing: Did I miss important corner cases?
Developer checklist (address before review)
[ ] Changelog.md updated
[ ] Prepared update for depending repositories
[ ] Documentation updated (public API changes only)
[ ] API docstrings updated (public API changes only)
Subject
Use a ring buffer for storing data from byte stream.
Description
This change is introduced for two reasons. First, the message buffer operations w.r.t. reading (e.g. write position) are encapsulated, which results in an improved code readability. Second, a smaller number of copies is necessary when an entire message is passed to the VAsioConnection.
Note that this change does not affect the performance (latency, throughput).
Instructions for review / testing
Developer checklist (address before review)