Loading...
Searching...
No Matches
StreamBase Class Referenceabstract

Base class for private data of stream implementations in C++. More...

`#include <StreamBase.h>`

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

## Public Member Functions

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

| 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

Base class for private data of stream implementations in C++.

## Member Function Documentation

## check()

DLLLOCAL bool StreamBase::check | ( | ExceptionSink * | xsink | ) |

inline

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.

Parameters

  xsink | the exception sink

Returns
  true if the checks passed, false if an exception has been raised

Exceptions

  STREAM-THREAD-ERROR | if the current thread is not the same as when the instance was created

References getName(), q_gettid(), and ExceptionSink::raiseException().

Referenced by OutputStream::check(), InputStream::peekHelper(), and InputStream::readHelper().

## getName()

virtual DLLLOCAL const char * StreamBase::getName | ( |  | ) |

pure virtual

Returns the name of the class.

Returns
  the name of the class

Referenced by OutputStream::check(), check(), InputStream::readHelper(), reassignThread(), and unassignThread().

## reassignThread()

DLLLOCAL void StreamBase::reassignThread | ( | ExceptionSink * | xsink | ) |

inline

Reassigns current thread as thread used for stream manipulation, see check()

Parameters

  xsink | the exception sink

Exceptions

  STREAM-THREAD-ERROR | if the current thread is already assigned to another thread

References getName(), q_gettid(), and ExceptionSink::raiseException().

## unassignThread()

DLLLOCAL void StreamBase::unassignThread | ( | ExceptionSink * | xsink | ) |

inline

Unassigns current thread as thread used for stream manipulation, see check()

Parameters

  xsink | the exception sink

Exceptions

  STREAM-THREAD-ERROR | if the current thread is not the same as assigned

References getName(), q_gettid(), and ExceptionSink::raiseException().

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

- include/qore/StreamBase.h