Base Stream class. More...

#include <Stream.h>

Inheritance diagram for Stream:
Collaboration diagram for Stream:

Public Member Functions

virtual int available ()=0
 
virtual int peek ()=0
 
virtual int read ()=0
 
virtual void flush ()=0
 
 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...
 
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)
 
size_t readBytesUntil (char terminator, char *buffer, size_t length)
 As readBytes() with terminator character. More...
 
virtual String readString (size_t maxLen)
 Like readBytes but place content into a String 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...
 
virtual size_t write (uint8_t c)=0
 Writes a single character to output stream. 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)
 

Protected Member Functions

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

uint16_t receiveTimeout = 1000
 number of milliseconds to wait for the next char before aborting timed read More...
 

Detailed Description

Base Stream class.

Constructor & Destructor Documentation

◆ Stream()

Stream::Stream ( )
inline

Member Function Documentation

◆ available()

◆ find() [1/2]

bool Stream::find ( const char *  target)
inline

Read data from the stream until the target string is found.

Parameters
targetString to watch for
Return values
booltrue if target string is found, false if timed out (see setTimeout)

◆ find() [2/2]

bool Stream::find ( const char *  target,
size_t  length 
)
inline

Read data from the stream until the target string of given length is found.

Parameters
target
length
Return values
boolreturns true if target string is found, false if timed out

◆ findUntil() [1/2]

bool Stream::findUntil ( const char *  target,
const char *  terminator 
)

As find() but search ends if the terminator string is found.

◆ findUntil() [2/2]

bool Stream::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.

◆ flush()

◆ indexOf()

virtual int Stream::indexOf ( char  c)
inlinevirtual

Reimplemented in HardwareSerial.

◆ parseFloat() [1/2]

float Stream::parseFloat ( )

float version of parseInt

◆ parseFloat() [2/2]

float Stream::parseFloat ( char  skipChar)
protected

Like parseInt(skipChar) for float.

◆ parseInt() [1/2]

long Stream::parseInt ( )

Returns the first valid (long) integer value from the current position.

Initial characters that are not digits (or the minus sign) are skipped. integer is terminated by the first character that is not a digit.

◆ parseInt() [2/2]

long Stream::parseInt ( char  skipChar)
protected

Like regular parseInt() but the given skipChar is ignored.

This allows format characters (typically commas) in values to be ignored

◆ peek()

◆ peekNextDigit()

int Stream::peekNextDigit ( )
protected

returns the next numeric digit in the stream or -1 if timeout

◆ read()

◆ readBytes() [1/2]

virtual size_t Stream::readBytes ( char *  buffer,
size_t  length 
)
virtual

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 in USB::VENDOR::Device, USB::CDC::HostDevice, USB::CDC::Device, IFS::FileStream, IDataSourceStream, Hosted::Transport::TcpClientStream, and Hosted::Serial.

◆ readBytes() [2/2]

size_t Stream::readBytes ( uint8_t *  buffer,
size_t  length 
)
inline

◆ readBytesUntil()

size_t Stream::readBytesUntil ( char  terminator,
char *  buffer,
size_t  length 
)

As readBytes() with terminator character.

Terminates if length characters have been read, timeout, or if the terminator character detected.

Return values
size_tNumber of characters placed in the buffer (0 means no valid data found)

◆ readString()

virtual String Stream::readString ( size_t  maxLen)
virtual

Like readBytes but place content into a String

Parameters
maxLenLimit number of bytes read
Return values
String

Reimplemented in IDataSourceStream.

◆ readStringUntil()

String Stream::readStringUntil ( char  terminator)

◆ setTimeout()

void Stream::setTimeout ( unsigned long  timeout)
inline

Set maximum milliseconds to wait for stream data, default is 1 second.

◆ timedPeek()

int Stream::timedPeek ( )
protected

◆ timedRead()

int Stream::timedRead ( )
protected

Member Data Documentation

◆ receiveTimeout

uint16_t Stream::receiveTimeout = 1000
protected

number of milliseconds to wait for the next char before aborting timed read


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