Skip to content

Commit

Permalink
Rename as PrintBuffer as it operates on Print
Browse files Browse the repository at this point in the history
  • Loading branch information
mikee47 committed Aug 6, 2024
1 parent b22931c commit 5d19d18
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
* http://github.com/SmingHub/Sming
* All files of the Sming Core are provided under the LGPL v3 license.
*
* WriteBuffer.cpp
* PrintBuffer.cpp
*
****/

#include "WriteBuffer.h"
#include "PrintBuffer.h"

size_t BaseWriteBuffer::write(uint8_t c)
size_t BasePrintBuffer::write(uint8_t c)
{
buffer[writeOffset++] = c;
if(writeOffset == bufferSize) {
Expand All @@ -19,7 +19,7 @@ size_t BaseWriteBuffer::write(uint8_t c)
return 1;
}

size_t BaseWriteBuffer::write(const uint8_t* data, size_t size)
size_t BasePrintBuffer::write(const uint8_t* data, size_t size)
{
size_t written{0};
while(size != 0) {
Expand All @@ -36,7 +36,7 @@ size_t BaseWriteBuffer::write(const uint8_t* data, size_t size)
return written;
}

void BaseWriteBuffer::flush()
void BasePrintBuffer::flush()
{
output.write(buffer, writeOffset);
writeOffset = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* http://github.com/SmingHub/Sming
* All files of the Sming Core are provided under the LGPL v3 license.
*
* WriteBuffer.h
* PrintBuffer.h
*
****/

Expand All @@ -19,7 +19,7 @@
* @note Call flush() at end of write operation to ensure all data is output
* This is done automatically when the buffer is destroyed.
*/
class BaseWriteBuffer : public Print
class BasePrintBuffer : public Print
{
public:
/**
Expand All @@ -28,12 +28,12 @@ class BaseWriteBuffer : public Print
* @param buffer buffer to use
* @param size Size of buffer
*/
BaseWriteBuffer(Print& output, uint8_t buffer[], size_t bufferSize)
BasePrintBuffer(Print& output, uint8_t buffer[], size_t bufferSize)
: output(output), buffer(buffer), bufferSize(bufferSize)
{
}

~BaseWriteBuffer()
~BasePrintBuffer()
{
flush();
}
Expand Down Expand Up @@ -62,18 +62,18 @@ class BaseWriteBuffer : public Print
*
* FileStream stream("file.txt", File::ReadWrite);
* {
* StaticWriteBuffer<256> buffer(stream);
* StaticPrintBuffer<256> buffer(stream);
* writeSomeData(buffer);
* } // Buffer flushed and destroyed when it goes out of scope
*/
template <size_t size> class StaticWriteBuffer : public BaseWriteBuffer
template <size_t size> class StaticPrintBuffer : public BasePrintBuffer
{
public:
/**
* @brief Construct a stack-based buffer
* @param output Print destination
*/
StaticWriteBuffer(Print& output) : BaseWriteBuffer(output, buffer, size)
StaticPrintBuffer(Print& output) : BasePrintBuffer(output, buffer, size)
{
}

Expand All @@ -88,24 +88,24 @@ template <size_t size> class StaticWriteBuffer : public BaseWriteBuffer
*
* FileStream stream("file.txt", File::ReadWrite);
* {
* HeapWriteBuffer buffer(stream, 512);
* HeapPrintBuffer buffer(stream, 512);
* writeSomeData(buffer);
* } // Buffer flushed and destroyed when it goes out of scope
*/
class HeapWriteBuffer : public BaseWriteBuffer
class HeapPrintBuffer : public BasePrintBuffer
{
public:
/**
* @brief Construct a stack-based buffer
* @param output Print destination
* @param size Buffer size
*/
HeapWriteBuffer(Print& output, size_t size) : HeapWriteBuffer(output, new uint8_t[size], size)
HeapPrintBuffer(Print& output, size_t size) : HeapPrintBuffer(output, new uint8_t[size], size)
{
}

private:
HeapWriteBuffer(Print& output, uint8_t* buffer, size_t size) : BaseWriteBuffer(output, buffer, size), buffer(buffer)
HeapPrintBuffer(Print& output, uint8_t* buffer, size_t size) : BasePrintBuffer(output, buffer, size), buffer(buffer)
{
}

Expand All @@ -118,35 +118,35 @@ class HeapWriteBuffer : public BaseWriteBuffer
* Example usage:
*
* auto stream = std::make_unique<FileStream>("file.txt", File::ReadWrite);
* auto bufferedStream = new DynamicWriteBuffer(std::move(stream), 512);
* auto bufferedStream = new DynamicPrintBuffer(std::move(stream), 512);
*
* // write to bufferedStream as required via callbacks, etc.
* ...
*
* // This destroys both buffer *and* the file stream
* delete bufferedStream;
*/
class DynamicWriteBuffer : public BaseWriteBuffer
class DynamicPrintBuffer : public BasePrintBuffer
{
public:
/**
* @brief Construct a stack-based buffer
* @param output Print destination, will take ownership of this
* @param size Buffer size
*/
DynamicWriteBuffer(std::unique_ptr<Print>&& output, size_t size)
: DynamicWriteBuffer(output.release(), new uint8_t[size], size)
DynamicPrintBuffer(std::unique_ptr<Print>&& output, size_t size)
: DynamicPrintBuffer(output.release(), new uint8_t[size], size)
{
}

~DynamicWriteBuffer()
~DynamicPrintBuffer()
{
flush();
}

private:
DynamicWriteBuffer(Print* output, uint8_t* buffer, size_t size)
: BaseWriteBuffer(*output, buffer, size), output(output), buffer(buffer)
DynamicPrintBuffer(Print* output, uint8_t* buffer, size_t size)
: BasePrintBuffer(*output, buffer, size), output(output), buffer(buffer)
{
}

Expand Down
6 changes: 3 additions & 3 deletions docs/source/framework/core/data/buffering.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ In general, writing efficiently to files is best done in chunks, such as by buil

Sming offers a simple write-through buffering mechanism which can be used where necessary. The :library:`ArduinoJson` can benefit greatly from this.

.. doxygenclass:: StaticWriteBuffer
.. doxygenclass:: StaticPrintBuffer
:members:

.. doxygenclass:: HeapWriteBuffer
.. doxygenclass:: HeapPrintBuffer
:members:

.. doxygenclass:: DynamicWriteBuffer
.. doxygenclass:: DynamicPrintBuffer
:members:

0 comments on commit 5d19d18

Please sign in to comment.