Circular Buffer, or cb for short, is a C/C++ library that implements a circular buffer interface for generic types. It uses stdatomic for single consumer single producer scenarios, avoiding the need for a lock, and provides a callback to implement a locking and unlocking mechanism for other scenarios or platforms.
cb is fully tested and documented and it is MISRA C:2012 compliant.
Refer to the documentation here for details.
Clone the repository as:
git clone https://github.com/dmg0345/cbExample commands to build the library and run the tests are provided below:
cmake -C "./other/cmake/preload/release.cmake" -S . -B "./.cmake_build"
cmake --build "./.cmake_build" -j --target all
cmake --build "./.cmake_build" -j --target install
ctest --test-dir "./.cmake_build"Find the base Docker image for the development container at DockerHub. To develop using devcontainers and Visual Studio Code:
docker pull dmg00345/cb:latest
./manage.ps1 runTo generate a release follow the steps below:
- Create a
releasebranch fromdevelopbranch, e.g.release/X.Y.Z. - Update version in conf.py file and in version.cmake file.
- Run cmake with
-DCFG_TAG:BOOL=ONto tag all the relevant files. - Create pull request from
releasebranch tomasterwith the changes with title Release X.Y.Z. - When merged in
mastercreate release and tag from Github, review production workflow passes for deployment.