mirror of
https://github.com/gnif/LookingGlass.git
synced 2025-10-13 02:48:23 +00:00
[common] ringbuffer: add pre value overwrite callback
This allows us to set a callback to read a value out before it's about to be overwritten which can be useful for things like calculating a running average.
This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
typedef struct RingBuffer * RingBuffer;
|
||||
|
||||
RingBuffer ringbuffer_new(int length, size_t valueSize);
|
||||
|
||||
void ringbuffer_free(RingBuffer * rb);
|
||||
void ringbuffer_push(RingBuffer rb, const void * value);
|
||||
void ringbuffer_reset(RingBuffer rb);
|
||||
@@ -33,6 +34,12 @@ int ringbuffer_getStart (const RingBuffer rb);
|
||||
int ringbuffer_getCount (const RingBuffer rb);
|
||||
void * ringbuffer_getValues(const RingBuffer rb);
|
||||
|
||||
typedef void (*RingBufferValueFn)(void * value, void * udata);
|
||||
|
||||
// set a function to call before a value is about to be overwritten
|
||||
void ringbuffer_setPreOverwriteFn(RingBuffer rb, RingBufferValueFn fn,
|
||||
void * udata);
|
||||
|
||||
typedef bool (*RingBufferIterator)(int index, void * value, void * udata);
|
||||
void ringbuffer_forEach(const RingBuffer rb, RingBufferIterator fn,
|
||||
void * udata);
|
||||
|
Reference in New Issue
Block a user