ring buffer base calls made protected
This commit is contained in:
@@ -2,31 +2,41 @@
|
||||
#include <framework/ipc/MutexFactory.h>
|
||||
#include <framework/ipc/MutexHelper.h>
|
||||
|
||||
SharedRingBuffer::SharedRingBuffer(const size_t size, bool overwriteOld):
|
||||
SimpleRingBuffer(size, overwriteOld) {
|
||||
SharedRingBuffer::SharedRingBuffer(object_id_t objectId, const size_t size,
|
||||
bool overwriteOld, dur_millis_t mutexTimeout):
|
||||
SystemObject(objectId), SimpleRingBuffer(size, overwriteOld),
|
||||
mutexTimeout(mutexTimeout) {
|
||||
mutex = MutexFactory::instance()->createMutex();
|
||||
}
|
||||
|
||||
SharedRingBuffer::SharedRingBuffer(uint8_t *buffer, const size_t size,
|
||||
bool overwriteOld): SimpleRingBuffer(buffer, size, overwriteOld) {
|
||||
SharedRingBuffer::SharedRingBuffer(object_id_t objectId, uint8_t *buffer,
|
||||
const size_t size, bool overwriteOld, dur_millis_t mutexTimeout):
|
||||
SystemObject(objectId), SimpleRingBuffer(buffer, size, overwriteOld),
|
||||
mutexTimeout(mutexTimeout) {
|
||||
mutex = MutexFactory::instance()->createMutex();
|
||||
}
|
||||
|
||||
ReturnValue_t SharedRingBuffer::writeDataProtected(const uint8_t *data,
|
||||
size_t amount, dur_millis_t timeout) {
|
||||
MutexHelper(mutex, timeout);
|
||||
return writeData(data,amount);
|
||||
size_t amount) {
|
||||
MutexHelper(mutex, mutexTimeout);
|
||||
return SimpleRingBuffer::writeData(data,amount);
|
||||
}
|
||||
|
||||
ReturnValue_t SharedRingBuffer::readDataProtected(uint8_t *data, size_t amount,
|
||||
dur_millis_t timeout, bool incrementReadPtr, bool readRemaining,
|
||||
bool incrementReadPtr, bool readRemaining,
|
||||
size_t *trueAmount) {
|
||||
MutexHelper(mutex, timeout);
|
||||
return readData(data,amount, incrementReadPtr, readRemaining, trueAmount);
|
||||
MutexHelper(mutex, mutexTimeout);
|
||||
return SimpleRingBuffer::readData(data,amount, incrementReadPtr,
|
||||
readRemaining, trueAmount);
|
||||
}
|
||||
|
||||
ReturnValue_t SharedRingBuffer::deleteDataProtected(size_t amount,
|
||||
bool deleteRemaining, size_t *trueAmount, dur_millis_t timeout) {
|
||||
MutexHelper(mutex, timeout);
|
||||
return deleteData(amount, deleteRemaining, trueAmount);
|
||||
bool deleteRemaining, size_t *trueAmount) {
|
||||
MutexHelper(mutex, mutexTimeout);
|
||||
return SimpleRingBuffer::deleteData(amount, deleteRemaining, trueAmount);
|
||||
}
|
||||
|
||||
size_t SharedRingBuffer::getAvailableReadDataProtected(uint8_t n) const {
|
||||
MutexHelper(mutex, mutexTimeout);
|
||||
return ((write + size) - read[n]) % size;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user