Base Framework
Public Member Functions | Protected Attributes | List of all members
FilterInputStream Class Reference

Filter input stream. More...

#include <base/io/FilterInputStream.h>

Inherits Object, and InputStream.

Inherited by BufferedInputStream, FormatInputStream, and PrimitiveInputStream.

Public Member Functions

 FilterInputStream (InputStream &in)
 
unsigned int available () const
 
void close ()
 
unsigned int read (uint8 *buffer, unsigned int size, bool nonblocking=false)
 
unsigned int skip (unsigned int count)
 
void wait () const
 
bool wait (unsigned int timeout) const
 
- Public Member Functions inherited from Stream
virtual ~Stream () noexcept(false)
 
- Public Member Functions inherited from ReferenceCountedObject
 ReferenceCountedObject () noexcept
 
 ReferenceCountedObject (const ReferenceCountedObject &copy) noexcept
 
 ReferenceCountedObject (ReferenceCountedObject &&move) noexcept
 
ReferenceCountedObjectoperator= (const ReferenceCountedObject &copy) noexcept
 
ReferenceCountedObjectoperator= (ReferenceCountedObject &&move) noexcept
 
MemorySize getNumberOfReferences_INTERNAL () const noexcept
 
virtual bool useGarbageCollector () const noexcept
 
- Public Member Functions inherited from DynamicObject
 DynamicObject () noexcept
 
bool isValidObject () const noexcept
 
virtual ~DynamicObject () noexcept(false)
 
 _COM_AZURE_DEV__BASE__OVERRIDE_ALLOC ()
 

Protected Attributes

InputStreamin
 

Detailed Description

Filter input stream.

A FilterInputStream redirects requests to an ordinary InputStream possibly transforming data and providing additional functionality in the process. A FilterInputStream is itself an InputStream. MT-Safe implementation if used with MT-safe input stream.

Version
1.0

Constructor & Destructor Documentation

◆ FilterInputStream()

FilterInputStream::FilterInputStream ( InputStream in)
explicit

Initializes the filter input stream.

Parameters
inInput stream to be filtered.

Member Function Documentation

◆ available()

unsigned int FilterInputStream::available ( ) const
virtual

Returns the number of bytes that can be read or skipped over without blocking.

Returns
Available number of bytes in stream.

Implements InputStream.

Reimplemented in FormatInputStream.

◆ close()

void FilterInputStream::close ( )
virtual

Closes the input stream and releases any system resources associated with the stream.

Implements Stream.

◆ read()

unsigned int FilterInputStream::read ( uint8 *  buffer,
unsigned int  size,
bool  nonblocking = false 
)
virtual

Fills the specified buffer with bytes from the stream. In blocking mode the method does not return until all bytes have been read. In non-blocking mode the total bytes read may be any number below or equal to the requested number of bytes. Attempting to read beyond the end of a stream in blocking mode results in an EndOfFile exception.

Parameters
bufferThe buffer to receive the bytes.
sizeThe size of the buffer.
nonblockingSpecifies that the method may not block. The default is false.
Returns
The actual number of bytes read from the stream.

Implements InputStream.

Reimplemented in FormatInputStream.

◆ skip()

unsigned int FilterInputStream::skip ( unsigned int  count)
virtual

Skips a specified number of bytes. Blocks if asked to skip more bytes than available.

Parameters
countThe number of bytes to skip.
Returns
The actual number of bytes skipped.

Implements InputStream.

Examples
testsuite/client.cpp.

◆ wait() [1/2]

void FilterInputStream::wait ( ) const
virtual

Blocking wait for input to become available.

Implements InputStream.

Examples
testsuite/client.cpp, and testsuite/server.cpp.

◆ wait() [2/2]

bool FilterInputStream::wait ( unsigned int  timeout) const
virtual

Blocking wait for input to become available.

Parameters
timeoutThe timeout periode in microseconds.
Returns
True, if data is available. False, if the timeout periode expired.

Implements InputStream.

Member Data Documentation

◆ in

InputStream& FilterInputStream::in
protected

Input stream to be filtered.