Memory stream that stores unlimited number of bytes. More...
#include <EndlessMemoryStream.h>
Public Member Functions | |||||||
~EndlessMemoryStream () | |||||||
StreamType | getStreamType () const override | ||||||
Get the stream type. More... | |||||||
uint16_t | readMemoryBlock (char *data, int bufSize) override | ||||||
Read a block of memory. More... | |||||||
bool | seek (int len) override | ||||||
Move read cursor. More... | |||||||
size_t | write (const uint8_t *buffer, size_t size) override | ||||||
Write chars to stream. More... | |||||||
bool | isFinished () override | ||||||
Check if all data has been read. More... | |||||||
size_t | write (uint8_t charToWrite) override | ||||||
Write a single character to the stream. 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... | |||||||
virtual size_t | copyFrom (IDataSourceStream *source, size_t size) | ||||||
Copy data from a source stream. More... | |||||||
virtual bool | isValid () const | ||||||
Determine if the stream object contains valid data. More... | |||||||
int | read () override | ||||||
Read one character and moves the stream pointer. More... | |||||||
int | peek () override | ||||||
Read a character without advancing the stream pointer. More... | |||||||
virtual int | seekFrom (int offset, unsigned origin) | ||||||
Change position in stream. More... | |||||||
virtual int | available () | ||||||
Return the total length of the stream. More... | |||||||
int | length () | ||||||
Return the total length of the stream. More... | |||||||
void | flush () override | ||||||
virtual String | id () const | ||||||
Returns unique id of the resource. More... | |||||||
virtual String | getName () const | ||||||
Returns name of the resource. More... | |||||||
String | readString (size_t maxLen=UINT16_MAX) | ||||||
Overrides Stream method for more efficient reading. More... | |||||||
String | readString () | ||||||
void | setTimeout (unsigned long timeout) | ||||||
bool | find (char *target) | ||||||
bool | find (char *target, size_t length) | ||||||
bool | findUntil (char *target, char *terminator) | ||||||
bool | findUntil (char *target, size_t targetLen, char *terminate, size_t termLen) | ||||||
long | parseInt () | ||||||
float | parseFloat () | ||||||
size_t | readBytes (char *buffer, size_t length) | ||||||
size_t | readBytesUntil (char terminator, char *buffer, size_t length) | ||||||
String | readStringUntil (char terminator) | ||||||
virtual int | indexOf (char c) | ||||||
int | getWriteError () | ||||||
Gets last error. More... | |||||||
void | clearWriteError () | ||||||
Clears the last write error. 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... | |||||||
size_t | print (const Printable &p) | ||||||
Prints a Printable object to output stream. More... | |||||||
size_t | print (const String &s) | ||||||
Prints a String to output stream. More... | |||||||
size_t | println () | ||||||
Prints a newline to output stream. More... | |||||||
size_t | println (const char str[]) | ||||||
Prints a c-string to output stream, appending newline. More... | |||||||
size_t | println (char c) | ||||||
Prints a single character to output stream, appending newline. More... | |||||||
size_t | println (double num, int digits=2) | ||||||
Print a floating-point number to output stream, appending newline. More... | |||||||
size_t | println (const Printable &p) | ||||||
Prints a Printable object to output stream, appending newline. More... | |||||||
size_t | println (const String &s) | ||||||
Prints a String to output stream, appending newline. More... | |||||||
size_t | printf (const char *fmt,...) __attribute__((format(printf | ||||||
Prints a formatted c-string to output stream. More... | |||||||
Print an integral number to output stream | |||||||
| |||||||
size_t | print (unsigned long num, int base=DEC) | ||||||
size_t | print (const unsigned long long &num, int base=DEC) | ||||||
size_t | print (long, int base=DEC) | ||||||
size_t | print (const long long &, int base=DEC) | ||||||
size_t | print (unsigned int num, int base=DEC) | ||||||
size_t | print (unsigned char num, int base=DEC) | ||||||
size_t | print (int num, int base=DEC) | ||||||
Print an integral number to output stream, appending newline | |||||||
| |||||||
size_t | println (unsigned char num, int base=DEC) | ||||||
size_t | println (unsigned int num, int base=DEC) | ||||||
size_t | println (unsigned long num, int base=DEC) | ||||||
size_t | println (const unsigned long long &num, int base=DEC) | ||||||
size_t | println (int num, int base=DEC) | ||||||
size_t | println (long num, int base=DEC) | ||||||
size_t | println (const long long &num, int base=DEC) | ||||||
Protected Member Functions | |
int | timedRead () |
int | timedPeek () |
int | peekNextDigit () |
long | parseInt (char skipChar) |
float | parseFloat (char skipChar) |
void | setWriteError (int err=1) |
Protected Attributes | |
unsigned long | receiveTimeout = 1000 |
unsigned long | startMillis = 0 |
Detailed Description
Memory stream that stores unlimited number of bytes.
- Note
- Memory is allocated on write and released when all written bytes have been read out. This behaviour differs from a circular buffer as the size is not fixed.
Constructor & Destructor Documentation
◆ ~EndlessMemoryStream()
|
inline |
Member Function Documentation
◆ available()
|
inlinevirtualinherited |
Return the total length of the stream.
- Return values
-
int -1 is returned when the size cannot be determined
Implements Stream.
Reimplemented in HardwareSerial, FileStream, GdbFileStream, HostFileStream, OtaUpgrade::BasicStream, CircularBuffer, StreamTransformer, JsonObjectStream, FSTR::Stream, MemoryDataStream, LimitedMemoryStream, UrlencodedOutputStream, and MultiStream.
◆ clearWriteError()
|
inlineinherited |
Clears the last write error.
◆ copyFrom()
|
virtualinherited |
Copy data from a source stream.
- Parameters
-
source Stream to read data from size Quantity of chars to write, determines size of intermediate buffer to use
- Return values
-
size_t Quantity of chars actually written, may be less than requested
◆ find() [1/2]
|
inherited |
◆ find() [2/2]
|
inherited |
◆ findUntil() [1/2]
|
inherited |
◆ findUntil() [2/2]
|
inherited |
◆ flush()
|
inlineoverridevirtualinherited |
Implements Stream.
Reimplemented in HardwareSerial.
◆ getName()
|
inlinevirtualinherited |
Returns name of the resource.
- Return values
-
String
- Note
- Commonly used to obtain name of file
Reimplemented in TemplateStream, FileStream, StreamTransformer, GdbFileStream, and HostFileStream.
◆ getStreamType()
|
inlineoverridevirtual |
◆ getWriteError()
|
inlineinherited |
Gets last error.
- Return values
-
int Error number of last write error
◆ id()
|
inlinevirtualinherited |
Returns unique id of the resource.
- Return values
-
String the unique id of the stream.
Reimplemented in FileStream, GdbFileStream, and CircularBuffer.
◆ indexOf()
|
inlinevirtualinherited |
Reimplemented in HardwareSerial.
◆ isFinished()
|
inlineoverridevirtual |
◆ isValid()
|
inlinevirtualinherited |
Determine if the stream object contains valid data.
- Return values
-
bool true if valid, false if invalid
- Note
- Where inherited classes are initialised by constructor this method indicates whether that was successful or not (e.g. FileStream)
Reimplemented in FileStream, GdbFileStream, and HostFileStream.
◆ length()
|
inlineinherited |
Return the total length of the stream.
- Return values
-
int -1 is returned when the size cannot be determined
- Deprecated:
- Use
available()
instead
◆ parseFloat() [1/2]
|
inherited |
◆ parseFloat() [2/2]
|
protectedinherited |
◆ parseInt() [1/2]
|
inherited |
◆ parseInt() [2/2]
|
protectedinherited |
◆ peek()
|
overridevirtualinherited |
Read a character without advancing the stream pointer.
- Return values
-
int The character that was read or -1 if none is available
Implements Stream.
Reimplemented in HardwareSerial.
◆ peekNextDigit()
|
protectedinherited |
◆ print() [1/12]
|
inlineinherited |
Prints a single character to output stream.
- Parameters
-
c Character to print
- Return values
-
size_t Quantity of characters written to stream
◆ print() [2/12]
|
inlineinherited |
Prints a c-string to output stream.
- Parameters
-
str c-string to print
- Return values
-
size_t Quantity of characters written to output stream
◆ print() [3/12]
◆ print() [4/12]
◆ print() [5/12]
◆ print() [6/12]
◆ print() [7/12]
◆ print() [8/12]
◆ print() [9/12]
◆ print() [10/12]
|
inlineinherited |
Print a floating-point number to output stream.
- Parameters
-
num Number to print digits The decimal places to print (Default: 2, e.g. 21.35)
- Return values
-
size_t Quantity of characters written to stream
◆ print() [11/12]
|
inlineinherited |
Prints a Printable object to output stream.
- Parameters
-
p Object to print
- Return values
-
size_t Quantity of characters written to stream
◆ print() [12/12]
|
inlineinherited |
◆ printf()
|
inherited |
Prints a formatted c-string to output stream.
- Parameters
-
fmt Pointer to formated c-string to print ... Parameters for placeholders within formated string
- Return values
-
size_t Quantity of characters written to stream
- Note
- Use standard printf placeholders, e.g. d for integer, s for c-string, etc.
◆ println() [1/13]
|
inlineinherited |
Prints a newline to output stream.
- Return values
-
size_t Quantity of characters written to stream
◆ println() [2/13]
|
inlineinherited |
Prints a c-string to output stream, appending newline.
- Parameters
-
str c-string to print
- Return values
-
size_t Quantity of characters written to stream
◆ println() [3/13]
|
inlineinherited |
Prints a single character to output stream, appending newline.
- Parameters
-
c Character to print
- Return values
-
size_t Quantity of characters written to stream
◆ println() [4/13]
◆ println() [5/13]
◆ println() [6/13]
◆ println() [7/13]
◆ println() [8/13]
◆ println() [9/13]
◆ println() [10/13]
◆ println() [11/13]
|
inlineinherited |
Print a floating-point number to output stream, appending newline.
- Parameters
-
num Number to print digits The decimal places to print (Default: 2, e.g. 21.35)
- Return values
-
size_t Quantity of characters written to stream
◆ println() [12/13]
|
inlineinherited |
Prints a Printable object to output stream, appending newline.
- Parameters
-
p Object to print
- Return values
-
size_t Quantity of characters written to stream
◆ println() [13/13]
|
inlineinherited |
◆ read()
|
overridevirtualinherited |
Read one character and moves the stream pointer.
- Return values
-
The character that was read or -1 if none is available
Implements Stream.
Reimplemented in HardwareSerial.
◆ readBytes()
|
inherited |
◆ readBytesUntil()
|
inherited |
◆ readMemoryBlock()
Read a block of memory.
- Parameters
-
data Pointer to the data to be read bufSize Quantity of chars to read
- Return values
-
uint16_t Quantity of chars read
- Todo:
- Should IDataSourceStream::readMemoryBlock return same data type as its bufSize param?
Implements IDataSourceStream.
◆ readString() [1/2]
|
inherited |
◆ readString() [2/2]
|
inherited |
Overrides Stream method for more efficient reading.
- Note
- Content is read using
readMemoryBlock()
so read position (for seekable streams) is not changed
◆ readStringUntil()
|
inherited |
◆ seek()
Move read cursor.
- Parameters
-
len Relative cursor adjustment
- Return values
-
bool True on success.
Reimplemented from IDataSourceStream.
◆ seekFrom()
Change position in stream.
- Parameters
-
offset origin SEEK_SET, SEEK_CUR, SEEK_END
- Return values
-
New position, < 0 on error
- Note
- This method is implemented by streams which support random seeking, such as files and memory streams.
Reimplemented in FileStream, MemoryDataStream, HostFileStream, FSTR::Stream, and GdbFileStream.
◆ setTimeout()
|
inherited |
◆ setWriteError()
|
inlineprotectedinherited |
◆ timedPeek()
|
protectedinherited |
◆ timedRead()
|
protectedinherited |
◆ write() [1/4]
|
inlineoverridevirtualinherited |
Write a single character to the stream.
- Parameters
-
charToWrite
- Return values
-
size_t Number of chars written (1 on success, 0 on failure)
Reimplemented from IDataSourceStream.
◆ write() [2/4]
|
overridevirtual |
Write chars to stream.
- Parameters
-
buffer Pointer to buffer to write to the stream size Quantity of chars to write
- Return values
-
size_t Quantity of chars written to stream
Implements ReadWriteStream.
◆ write() [3/4]
|
inlineinherited |
Writes a c-string to output stream.
- Parameters
-
str Pointer to c-string
- Return values
-
size_t Quantity of characters written to stream
◆ write() [4/4]
|
inlineinherited |
Writes characters from a buffer to output stream.
- Parameters
-
buffer Pointer to character buffer size Quantity of characters to write
- Return values
-
size_t Quantity of characters written to stream
Member Data Documentation
◆ receiveTimeout
|
protectedinherited |
◆ startMillis
|
protectedinherited |
The documentation for this class was generated from the following file: