#include <StreamTransformer.h>

Inheritance diagram for StreamTransformer:
[legend]
Collaboration diagram for StreamTransformer:
[legend]

Public Member Functions

 StreamTransformer (IDataSourceStream *stream, size_t resultSize=256, size_t blockSize=64)
 
 StreamTransformer (IDataSourceStream *stream, const StreamTransformerCallback &callback, size_t resultSize=256, size_t blockSize=64)
 Constructor with external callback function. More...
 
 ~StreamTransformer ()
 
StreamType getStreamType () const override
 Get the stream type. More...
 
int available () override
 Return the total length of the stream. More...
 
bool isValid () const
 Determine if the stream object contains valid data. More...
 
uint16_t readMemoryBlock (char *data, int bufSize) override
 Read a block of memory. More...
 
bool seek (int len) override
 Move read cursor. More...
 
bool isFinished () override
 Check if all data has been read. More...
 
String getName () const override
 Returns name of the resource. More...
 
virtual void saveState ()
 A method that backs up the current state. More...
 
virtual void restoreState ()
 A method that restores the last backed up state. More...
 
- Public Member Functions inherited from IDataSourceStream
size_t readBytes (char *buffer, size_t length) override
 Read chars from stream into buffer. 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...
 
size_t write (uint8_t charToWrite) override
 From Stream class: We don't write using this 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 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...
 
- 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 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...
 
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...
 
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)
 
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

virtual size_t transform (const uint8_t *in, size_t inLength, uint8_t *out, size_t outLength)
 Inherited class implements this method to transform a block of data. More...
 
- 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

StreamTransformerCallback transformCallback = nullptr
 Callback function to perform transformation. More...
 
- Protected Attributes inherited from Stream
uint16_t receiveTimeout = 1000
 number of milliseconds to wait for the next char before aborting timed read More...
 

Constructor & Destructor Documentation

◆ StreamTransformer() [1/2]

StreamTransformer::StreamTransformer ( IDataSourceStream stream,
size_t  resultSize = 256,
size_t  blockSize = 64 
)
inline

◆ StreamTransformer() [2/2]

StreamTransformer::StreamTransformer ( IDataSourceStream stream,
const StreamTransformerCallback callback,
size_t  resultSize = 256,
size_t  blockSize = 64 
)
inline

Constructor with external callback function.

Deprecated:
Create inherited class, override transform() method and use alternative constructor instead

◆ ~StreamTransformer()

StreamTransformer::~StreamTransformer ( )
inline

Member Function Documentation

◆ available()

int StreamTransformer::available ( )
inlineoverridevirtual

Return the total length of the stream.

Return values
int-1 is returned when the size cannot be determined

Reimplemented from IDataSourceStream.

◆ getName()

String StreamTransformer::getName ( ) const
inlineoverridevirtual

Returns name of the resource.

Return values
String
Note
Commonly used to obtain name of file

Reimplemented from IDataSourceStream.

◆ getStreamType()

StreamType StreamTransformer::getStreamType ( ) const
inlineoverridevirtual

Get the stream type.

Return values
StreamTypeThe stream type.

Reimplemented from IDataSourceStream.

◆ isFinished()

bool StreamTransformer::isFinished ( )
overridevirtual

Check if all data has been read.

Return values
boolTrue on success.

Implements IDataSourceStream.

◆ isValid()

bool StreamTransformer::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 from IDataSourceStream.

◆ readMemoryBlock()

uint16_t StreamTransformer::readMemoryBlock ( char *  data,
int  bufSize 
)
overridevirtual

Read a block of memory.

Parameters
dataPointer to the data to be read
bufSizeQuantity of chars to read
Return values
uint16_tQuantity of chars read
Todo:
Should IDataSourceStream::readMemoryBlock return same data type as its bufSize param?

Implements IDataSourceStream.

◆ restoreState()

virtual void StreamTransformer::restoreState ( )
inlinevirtual

A method that restores the last backed up state.

Reimplemented in Base64OutputStream.

◆ saveState()

virtual void StreamTransformer::saveState ( )
inlinevirtual

A method that backs up the current state.

Reimplemented in Base64OutputStream.

◆ seek()

bool StreamTransformer::seek ( int  len)
overridevirtual

Move read cursor.

Parameters
lenRelative cursor adjustment
Return values
boolTrue on success.

Reimplemented from IDataSourceStream.

◆ transform()

virtual size_t StreamTransformer::transform ( const uint8_t *  in,
size_t  inLength,
uint8_t *  out,
size_t  outLength 
)
inlineprotectedvirtual

Inherited class implements this method to transform a block of data.

Parameters
insource data
inLengthsource data length
outoutput buffer
outLengthsize of output buffer
Return values
size_tnumber of output bytes written
Note
Called with in = nullptr and inLength = 0 at end of input stream

Reimplemented in QuotedPrintableOutputStream, Base64OutputStream, and ChunkedStream.

Member Data Documentation

◆ transformCallback

StreamTransformerCallback StreamTransformer::transformCallback = nullptr
protected

Callback function to perform transformation.

Deprecated:
Create inherited class and override transform() method instead

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