Qore Programming Language 1.19.2
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 Methods

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 Methods 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 Methods 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
 

Private Member Methods

 StreamBase ()
 Constructor.
 
- Private Member Methods 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
xsinkthe exception sink
Returns
true if the checks passed, false if an exception has been raised
Exceptions
STREAM-THREAD-ERRORif 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()

◆ reassignThread()

DLLLOCAL void StreamBase::reassignThread ( ExceptionSink xsink)
inline

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

Parameters
xsinkthe exception sink
Exceptions
STREAM-THREAD-ERRORif 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
xsinkthe exception sink
Exceptions
STREAM-THREAD-ERRORif 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: