Generic write-through buffer class. More...

#include <PrintBuffer.h>

Inheritance diagram for BasePrintBuffer:
Collaboration diagram for BasePrintBuffer:

Public Member Functions

 BasePrintBuffer (Print &output, uint8_t buffer[], size_t bufferSize)
 Create buffer. More...
 
 ~BasePrintBuffer ()
 
size_t write (uint8_t c) override
 Writes a single character to output stream. More...
 
size_t write (const uint8_t *data, size_t size) override
 Writes characters from a buffer to output stream. More...
 
void flush ()
 Write any buffered content to output. More...
 
- Public Member Functions inherited from Print
 Print ()=default
 
 Print (const Print &)=delete
 
 Print (Print &&)=delete
 
virtual ~Print ()=default
 
Printoperator= (const Print &)=delete
 
Printoperator= (Print &&)=delete
 
int getWriteError ()
 Gets last error. More...
 
void clearWriteError ()
 Clears the last write error. More...
 
size_t write (const char *str)
 Writes a c-string to output stream. More...
 
size_t write (const char *buffer, size_t size)
 Writes characters from a buffer to output stream. More...
 
size_t print (char c)
 Prints a single character to output stream. More...
 
size_t print (const char str[])
 Prints a c-string to output stream. More...
 
size_t print (double num, int digits=2)
 Print a floating-point number to output stream. More...
 
template<typename T >
std::enable_if< has_printTo< T >::value, size_t >::type print (const T &obj)
 Prints a Printable object to output stream. More...
 
size_t print (const String &s)
 Prints a String to output stream. More...
 
template<typename E >
std::enable_if< std::is_enum< E >::value &&!std::is_convertible< E, int >::value, size_t >::type print (E value)
 enums can be printed as strings provided they have a toString(E) implementation. More...
 
size_t println ()
 Prints a newline to output stream. More...
 
template<typename... Args>
size_t println (const Args &... args)
 Print value plus newline to output stream. More...
 
size_t printf (const char *fmt,...)
 Prints a formatted c-string to output stream. More...
 
size_t print (unsigned long num, uint8_t base=DEC)
 
template<typename... Args>
size_t print (unsigned long num, Args... args)
 
template<typename... Args>
size_t print (const unsigned long long &num, Args... args)
 
size_t print (long num, uint8_t base=DEC)
 
template<typename... Args>
size_t print (long num, Args... args)
 
template<typename... Args>
size_t print (const long long &num, Args... args)
 
template<typename... Args>
size_t print (unsigned int num, Args... args)
 
template<typename... Args>
size_t print (unsigned char num, Args... args)
 
template<typename... Args>
size_t print (int num, Args... args)
 

Additional Inherited Members

- Protected Member Functions inherited from Print
void setWriteError (int err=1)
 

Detailed Description

Generic write-through buffer class.

Note
Call flush() at end of write operation to ensure all data is output This is done automatically when the buffer is destroyed.

Constructor & Destructor Documentation

◆ BasePrintBuffer()

BasePrintBuffer::BasePrintBuffer ( Print output,
uint8_t  buffer[],
size_t  bufferSize 
)
inline

Create buffer.

Parameters
outputDestination stream
bufferbuffer to use
sizeSize of buffer

◆ ~BasePrintBuffer()

BasePrintBuffer::~BasePrintBuffer ( )
inline

Member Function Documentation

◆ flush()

void BasePrintBuffer::flush ( )

Write any buffered content to output.

◆ write() [1/2]

size_t BasePrintBuffer::write ( const uint8_t *  buffer,
size_t  size 
)
overridevirtual

Writes characters from a buffer to output stream.

Parameters
bufferPointer to character buffer
sizeQuantity of characters to write
Return values
size_tQuantity of characters written to stream

Reimplemented from Print.

◆ write() [2/2]

size_t BasePrintBuffer::write ( uint8_t  c)
overridevirtual

Writes a single character to output stream.

Parameters
cCharacter to write to output stream
Return values
size_tQuantity of characters written to output stream

Implements Print.


The documentation for this class was generated from the following file: