26 lines
602 B
C++
26 lines
602 B
C++
#include "oneshotreadwriter.h"
|
|
|
|
OneShotReadWriter::OneShotReadWriter(uint32_t owner, uint8_t* toRead) : ReadWriter(owner) {
|
|
this->length = strlen(toRead);
|
|
|
|
this->buffer = new uint8_t[this->length];
|
|
|
|
memcpy(this->buffer, toRead, this->length);
|
|
}
|
|
|
|
uint32_t OneShotReadWriter::read(uint32_t count, uint8_t* buffer) {
|
|
uint32_t c=0;
|
|
while (index < length && c < count) {
|
|
buffer[c++] = this->buffer[index++];
|
|
}
|
|
return c;
|
|
}
|
|
|
|
uint32_t OneShotReadWriter::size() {
|
|
return length;
|
|
}
|
|
|
|
uint32_t OneShotReadWriter::seek(uint32_t position) {
|
|
index = clamp(0, length, position);
|
|
return index;
|
|
} |