Base class for read-only stream. More...
#include <DataSourceStream.h>
Public Member Functions | |
virtual StreamType | getStreamType () const |
Get the stream type. More... | |
virtual bool | isValid () const |
Determine if the stream object contains valid data. More... | |
size_t | readBytes (char *buffer, size_t length) override |
Read chars from stream into buffer. More... | |
virtual uint16_t | readMemoryBlock (char *data, int bufSize)=0 |
Read a block of memory. 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, SeekOrigin origin) |
Change position in stream. More... | |
virtual bool | seek (int len) |
Move read cursor. More... | |
virtual bool | isFinished ()=0 |
Check if all data has been read. More... | |
virtual int | available () |
Return the total length of the stream. More... | |
size_t | write (uint8_t charToWrite) override |
From Stream class: We don't write using this 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... | |
virtual MimeType | getMimeType () const |
Get MIME type for stream content. More... | |
String | readString (size_t maxLen) override |
Overrides Stream method for more efficient reading. More... | |
virtual bool | moveString (String &s) |
Memory-based streams may be able to move content into a String. More... | |
virtual size_t | readBytes (char *buffer, size_t length) |
Read chars from stream into buffer. More... | |
size_t | readBytes (uint8_t *buffer, size_t length) |
Public Member Functions inherited from Stream | |
Stream () | |
void | setTimeout (unsigned long timeout) |
Set maximum milliseconds to wait for stream data, default is 1 second. More... | |
bool | find (const char *target) |
Read data from the stream until the target string is found. More... | |
bool | find (const char *target, size_t length) |
Read data from the stream until the target string of given length is found. More... | |
bool | findUntil (const char *target, const char *terminator) |
As find() but search ends if the terminator string is found. More... | |
bool | findUntil (const char *target, size_t targetLen, const char *terminate, size_t termLen) |
As findUntil(const char*, const char*) but search ends if the terminate string is found. More... | |
long | parseInt () |
Returns the first valid (long) integer value from the current position. More... | |
float | parseFloat () |
float version of parseInt More... | |
size_t | readBytes (uint8_t *buffer, size_t length) |
size_t | readBytesUntil (char terminator, char *buffer, size_t length) |
As readBytes() with terminator character. More... | |
String | readStringUntil (char terminator) |
virtual int | indexOf (char c) |
Public Member Functions inherited from Print | |
virtual | ~Print () |
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... | |
virtual size_t | write (const uint8_t *buffer, size_t size) |
Writes characters from a buffer 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 Stream | |
int | timedRead () |
int | timedPeek () |
int | peekNextDigit () |
returns the next numeric digit in the stream or -1 if timeout More... | |
long | parseInt (char skipChar) |
Like regular parseInt() but the given skipChar is ignored. More... | |
float | parseFloat (char skipChar) |
Like parseInt(skipChar) for float. More... | |
Protected Member Functions inherited from Print | |
void | setWriteError (int err=1) |
Protected Attributes inherited from Stream | |
uint16_t | receiveTimeout = 1000 |
number of milliseconds to wait for the next char before aborting timed read More... | |
Detailed Description
Base class for read-only stream.
Member Function Documentation
◆ available()
|
inlinevirtual |
Return the total length of the stream.
- Return values
-
int -1 is returned when the size cannot be determined
Implements Stream.
Reimplemented in USB::VENDOR::Device, USB::CDC::HostDevice, USB::CDC::Device, OtaUpgrade::BasicStream, Ota::UpgradeOutputStream, Graphics::SubStream, JsonObjectStream, HardwareSerial, StreamTransformer, XorOutputStream, SharedMemoryStream< T >, SectionStream, MemoryDataStream, LimitedMemoryStream, IFS::FileStream, CircularBuffer, Storage::PartitionStream, UrlencodedOutputStream, and FSTR::Stream.
◆ flush()
|
inlineoverridevirtual |
Implements Stream.
Reimplemented in USB::VENDOR::Device, USB::CDC::HostDevice, USB::CDC::Device, and HardwareSerial.
◆ getMimeType()
|
inlinevirtual |
Get MIME type for stream content.
- Return values
-
MimeType
Reimplemented in UPnP::DescriptionStream, UPnP::ActionResponse::Stream, SectionTemplate, IFS::FileStream, and IFS::FWFS::ArchiveStream.
◆ getName()
|
inlinevirtual |
Returns name of the resource.
- Return values
-
String
- Note
- Commonly used to obtain name of file
Reimplemented in UPnP::DescriptionStream, RtttlJsonListStream, StreamTransformer, TemplateStream, and IFS::FileStream.
◆ getStreamType()
|
inlinevirtual |
Get the stream type.
- Return values
-
StreamType The stream type.
Reimplemented in Ota::UpgradeOutputStream, PartCheckerStream, JsonObjectStream, StreamTransformer, XorOutputStream, TemplateStream, StreamWrapper, StreamChain, SharedMemoryStream< T >, MemoryDataStream, LimitedMemoryStream, IFS::FileStream, EndlessMemoryStream, CircularBuffer, UrlencodedOutputStream, and FSTR::Stream.
◆ id()
|
inlinevirtual |
Returns unique id of the resource.
- Return values
-
String the unique id of the stream.
Reimplemented in IFS::FileStream, and CircularBuffer.
◆ isFinished()
|
pure virtual |
Check if all data has been read.
- Return values
-
bool True on success.
Implemented in USB::VENDOR::Device, USB::CDC::HostDevice, USB::CDC::Device, UPnP::DescriptionStream, UPnP::ActionResponse::Stream, RtttlJsonListStream, OtaUpgrade::BasicStream, Ota::UpgradeOutputStream, PartCheckerStream, Graphics::SubStream, JsonObjectStream, HardwareSerial, StreamTransformer, XorOutputStream, TemplateStream, StreamWrapper, SharedMemoryStream< T >, SectionStream, MultiStream, MemoryDataStream, LimitedMemoryStream, IFS::FileStream, EndlessMemoryStream, CircularBuffer, Storage::PartitionStream, UrlencodedOutputStream, IFS::FWFS::ArchiveStream, and FSTR::Stream.
◆ isValid()
|
inlinevirtual |
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 UPnP::DescriptionStream, RtttlJsonListStream, PartCheckerStream, IFS::FileStream, and StreamTransformer.
◆ moveString()
|
inlinevirtual |
Memory-based streams may be able to move content into a String.
- Parameters
-
s String object to move data into
- Return values
-
bool true on success, false if there's a problem.
If the operation is not supported by the stream, s
will be invalidated and false returned.
Because a String object must have a NUL terminator, this will be appended if there is sufficient capacity. In this case, the method returns true.
If there is no capacity to add a NUL terminator, then the final character of stream data will be replaced with a NUL. The method returns false to indicate this.
Reimplemented in MemoryDataStream, and LimitedMemoryStream.
◆ peek()
|
overridevirtual |
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 USB::VENDOR::Device, USB::CDC::HostDevice, USB::CDC::Device, and HardwareSerial.
◆ read()
|
overridevirtual |
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 USB::VENDOR::Device, USB::CDC::HostDevice, USB::CDC::Device, HardwareSerial, and IFS::FileStream.
◆ readBytes() [1/3]
virtual size_t Stream::readBytes |
Read chars from stream into buffer.
Terminates if length characters have been read or timeout (see setTimeout). Returns the number of characters placed in the buffer (0 means no valid data found).
- Note
- Inherited classes may provide more efficient implementations without timeout.
◆ readBytes() [2/3]
|
overridevirtual |
Read chars from stream into buffer.
Terminates if length characters have been read or timeout (see setTimeout). Returns the number of characters placed in the buffer (0 means no valid data found).
- Note
- Inherited classes may provide more efficient implementations without timeout.
Reimplemented from Stream.
Reimplemented in USB::VENDOR::Device, USB::CDC::HostDevice, USB::CDC::Device, and IFS::FileStream.
◆ readBytes() [3/3]
|
inline |
◆ readMemoryBlock()
|
pure virtual |
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?
Implemented in UPnP::DescriptionStream, RtttlJsonListStream, OtaUpgrade::BasicStream, Ota::UpgradeOutputStream, PartCheckerStream, Graphics::SubStream, JsonObjectStream, StreamTransformer, XorOutputStream, TemplateStream, StreamWrapper, SharedMemoryStream< T >, SectionStream, MultiStream, MemoryDataStream, LimitedMemoryStream, IFS::FileStream, EndlessMemoryStream, CircularBuffer, Storage::PartitionStream, UrlencodedOutputStream, IFS::FWFS::ArchiveStream, FSTR::Stream, USB::CDC::UsbSerial, and HardwareSerial.
◆ readString()
|
overridevirtual |
◆ seek()
|
inlinevirtual |
Move read cursor.
- Parameters
-
len Relative cursor adjustment
- Return values
-
bool True on success.
Reimplemented in USB::CDC::UsbSerial, UPnP::DescriptionStream, RtttlJsonListStream, Ota::UpgradeOutputStream, HardwareSerial, StreamTransformer, XorOutputStream, SharedMemoryStream< T >, MultiStream, EndlessMemoryStream, CircularBuffer, and UrlencodedOutputStream.
◆ seekFrom()
|
inlinevirtual |
Change position in stream.
- Parameters
-
offset origin
- 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 Graphics::SubStream, TemplateStream, SectionStream, MemoryDataStream, LimitedMemoryStream, IFS::FileStream, Storage::PartitionStream, IFS::FWFS::ArchiveStream, and FSTR::Stream.
◆ write()
|
inlineoverridevirtual |
From Stream class: We don't write using this stream.
- Parameters
-
charToWrite
Implements Print.
Reimplemented in ReadWriteStream.
The documentation for this class was generated from the following file: