IDataSourceStream Class Referenceabstract

Base class for read-only stream. More...

#include <DataSourceStream.h>

Inheritance diagram for IDataSourceStream:
Collaboration diagram for IDataSourceStream:

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()

virtual int IDataSourceStream::available ( )
inlinevirtual

◆ flush()

void IDataSourceStream::flush ( )
inlineoverridevirtual

◆ getMimeType()

virtual MimeType IDataSourceStream::getMimeType ( ) const
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()

virtual String IDataSourceStream::getName ( ) const
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()

◆ id()

virtual String IDataSourceStream::id ( ) const
inlinevirtual

Returns unique id of the resource.

Return values
Stringthe unique id of the stream.

Reimplemented in IFS::FileStream, and CircularBuffer.

◆ isFinished()

◆ isValid()

virtual bool IDataSourceStream::isValid ( ) const
inlinevirtual

Determine if the stream object contains valid data.

Return values
booltrue 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()

virtual bool IDataSourceStream::moveString ( String s)
inlinevirtual

Memory-based streams may be able to move content into a String.

Parameters
sString object to move data into
Return values
booltrue 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()

int IDataSourceStream::peek ( )
overridevirtual

Read a character without advancing the stream pointer.

Return values
intThe 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()

int IDataSourceStream::read ( )
overridevirtual

Read one character and moves the stream pointer.

Return values
Thecharacter 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]

size_t IDataSourceStream::readBytes ( char *  buffer,
size_t  length 
)
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]

size_t Stream::readBytes
inline

◆ readMemoryBlock()

virtual uint16_t IDataSourceStream::readMemoryBlock ( char *  data,
int  bufSize 
)
pure virtual

◆ readString()

String IDataSourceStream::readString ( size_t  maxLen)
overridevirtual

Overrides Stream method for more efficient reading.

Note
Stream position is updated by this call

Reimplemented from Stream.

◆ seek()

virtual bool IDataSourceStream::seek ( int  len)
inlinevirtual

◆ seekFrom()

virtual int IDataSourceStream::seekFrom ( int  offset,
SeekOrigin  origin 
)
inlinevirtual

Change position in stream.

Parameters
offset
origin
Return values
Newposition, < 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()

size_t IDataSourceStream::write ( uint8_t  charToWrite)
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: