Loading...
Searching...
No Matches
InputStream Class Referenceabstract

Interface for private data of input streams. More...

`#include <InputStream.h>`

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

## Public Member Functions

virtual int64 | peek (ExceptionSink *xsink)=0
| Peeks the next byte from the input stream. More...
DLLLOCAL QoreValue | peekHelper (ExceptionSink *xsink)
| Helper method that checks that the current thread is the same as when the instance was created, calls peek() and wraps the result to Qore's `int` value. More...
virtual int64 | read (void *ptr, int64 limit, ExceptionSink *xsink)=0
| Reads up to `limit` bytes from the input stream. More...
DLLLOCAL BinaryNode * | readHelper (int64 limit, ExceptionSink *xsink)
| Helper method that checks that the current thread is the same as when the instance was created, calls read() and wraps the read data to Qore's `binary` value. More...
Public Member Functions inherited from StreamBase
DLLLOCAL bool | check (ExceptionSink *xsink)
| Checks that the current thread is the same as when the instance was created or assigned via unassignThread() and reassignThread() and that the stream has not yet been closed. More...
virtual DLLLOCAL const char * | getName ()=0
| Returns the name of the class. More...
DLLLOCAL int | getThreadId ()
| Get currently assigned thread id.
DLLLOCAL void | reassignThread (ExceptionSink *xsink)
| Reassigns current thread as thread used for stream manipulation, see check() More...
DLLLOCAL void | unassignThread (ExceptionSink *xsink)
| Unassigns current thread as thread used for stream manipulation, see check() More...
Public Member Functions inherited from AbstractPrivateData
virtual DLLLOCAL void | deref ()
| decrements the reference count of the object without the possibility of throwing a Qore-language exception
virtual DLLLOCAL void | deref (ExceptionSink *xsink)
| decrements the reference count of the object More...
DLLLOCAL void | ref () const
| increments the reference count of the object
Public Member Functions inherited from QoreReferenceCounter
DLLEXPORT | QoreReferenceCounter ()
| creates the reference counter object
DLLEXPORT | QoreReferenceCounter (const QoreReferenceCounter &old)
| creates a new object with a reference count of 1 More...
DLLEXPORT | ~QoreReferenceCounter ()
| destroys the reference counter object
DLLEXPORT bool | is_unique () const
| returns true if the reference count is 1 More...
DLLEXPORT int | reference_count () const
| gets the reference count More...
DLLEXPORT bool | ROdereference () const
| atomically decrements the reference count More...
DLLEXPORT void | ROreference () const
| atomically increments the reference count

## Protected Member Functions

| InputStream ()=default
| Constructor.
Protected Member Functions inherited from StreamBase
| StreamBase ()
| Constructor.
Protected Member Functions inherited from AbstractPrivateData
virtual DLLLOCAL | ~AbstractPrivateData ()
| as these objects are reference counted, the destructor should be called only when the reference count = 0 and not manually

## Detailed Description

Interface for private data of input streams.

Methods in this interface serve as low-level API for using input streams from C++ code.

## Member Function Documentation

## peek()

virtual int64 InputStream::peek | ( | ExceptionSink * | xsink | ) |

pure virtual

Peeks the next byte from the input stream.

Parameters

  xsink | the exception sink

Returns
  the next byte available to be read, -1 indicates end of the stream, -2 indicates an error

Referenced by peekHelper().

## peekHelper()

DLLLOCAL QoreValue InputStream::peekHelper | ( | ExceptionSink * | xsink | ) |

inline

Helper method that checks that the current thread is the same as when the instance was created, calls peek() and wraps the result to Qore's `int` value.

Parameters

  xsink | the exception sink

Returns
  the `int` wrapping the result or `NOTHING` if the end of the stream has been reached

References StreamBase::check(), and peek().

## read()

virtual int64 InputStream::read | ( | void * | ptr,
|  | int64 | limit,
|  | ExceptionSink * | xsink
| ) |  |

pure virtual

Reads up to `limit` bytes from the input stream.

Parameters

  ptr | the destination buffer to read data into
  limit | the maximum number of bytes to read, must be > 0
  xsink | the exception sink

Returns
  the number of bytes read, 0 indicates the end of the stream

Referenced by readHelper().

## readHelper()

DLLLOCAL BinaryNode * InputStream::readHelper | ( | int64 | limit,
|  | ExceptionSink * | xsink
| ) |  |

inline

Helper method that checks that the current thread is the same as when the instance was created, calls read() and wraps the read data to Qore's `binary` value.

Parameters

  limit | the maximum number of bytes to read
  xsink | the exception sink

Returns
  the `binary` wrapping the read data or `NOTHING` if the end of the stream has been reached

References StreamBase::check(), StreamBase::getName(), ExceptionSink::raiseException(), and read().

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

- include/qore/InputStream.h