Qore Programming Language 1.14.0
Loading...
Searching...
No Matches
OutputStream Class Referenceabstract

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

#include <OutputStream.h>

Inheritance diagram for OutputStream:
[legend]
Collaboration diagram for OutputStream:
[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 void close (ExceptionSink *xsink)=0
 Flushes any buffered (unwritten) bytes, closes the output stream and releases resources. More...
 
DLLLOCAL void closeHelper (ExceptionSink *xsink)
 Helper method that checks that the current thread is the same as when the instance was created, that the stream has not yet been closed and calls close(). More...
 
virtual bool isClosed ()=0
 Returns true is the stream has been closed. More...
 
virtual void write (const void *ptr, int64 count, ExceptionSink *xsink)=0
 Writes bytes to the output stream. More...
 
DLLLOCAL void writeHelper (const BinaryNode *data, ExceptionSink *xsink)
 Helper method that checks that the current thread is the same as when the instance was created, that the stream has not yet been closed and calls write(). More...
 
DLLLOCAL void writeHelper (const QoreString *data, ExceptionSink *xsink)
 Helper method that checks that the current thread is the same as when the instance was created, that the stream has not yet been closed and calls write(). More...
 
- Public Member Methods 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 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

 OutputStream ()=default
 Constructor.
 
- Private Member Methods inherited from StreamBase
 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

Interface for private data of output streams.

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

Member Function Documentation

◆ check()

DLLLOCAL bool OutputStream::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
OUTPUT-STREAM-CLOSED-ERRORif the stream has been closed

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

Referenced by closeHelper(), and writeHelper().

◆ close()

virtual void OutputStream::close ( ExceptionSink xsink)
pure virtual

Flushes any buffered (unwritten) bytes, closes the output stream and releases resources.

Parameters
xsinkthe exception sink

Implemented in BinaryOutputStream, FileOutputStream, OutputStreamWrapper, StderrOutputStream, StdoutOutputStream, PipeOutputStream, and StringOutputStream.

Referenced by closeHelper().

◆ closeHelper()

DLLLOCAL void OutputStream::closeHelper ( ExceptionSink xsink)
inline

Helper method that checks that the current thread is the same as when the instance was created, that the stream has not yet been closed and calls close().

Parameters
xsinkthe exception sink

References check(), and close().

◆ isClosed()

virtual bool OutputStream::isClosed ( )
pure virtual

Returns true is the stream has been closed.

Returns
true is the stream has been closed

Implemented in BinaryOutputStream, FileOutputStream, OutputStreamWrapper, StderrOutputStream, StdoutOutputStream, PipeOutputStream, and StringOutputStream.

Referenced by check().

◆ write()

virtual void OutputStream::write ( const void *  ptr,
int64  count,
ExceptionSink xsink 
)
pure virtual

Writes bytes to the output stream.

Parameters
ptrthe source buffer to write to the stream
countthe number of bytes to write, must be >= 0
xsinkthe exception sink

Implemented in BinaryOutputStream, FileOutputStream, OutputStreamWrapper, StderrOutputStream, StdoutOutputStream, PipeOutputStream, and StringOutputStream.

Referenced by writeHelper().

◆ writeHelper() [1/2]

DLLLOCAL void OutputStream::writeHelper ( const BinaryNode data,
ExceptionSink xsink 
)
inline

Helper method that checks that the current thread is the same as when the instance was created, that the stream has not yet been closed and calls write().

Parameters
datathe data to write
xsinkthe exception sink

References check(), BinaryNode::getPtr(), BinaryNode::size(), and write().

◆ writeHelper() [2/2]

DLLLOCAL void OutputStream::writeHelper ( const QoreString data,
ExceptionSink xsink 
)
inline

Helper method that checks that the current thread is the same as when the instance was created, that the stream has not yet been closed and calls write().

Parameters
datathe data to write
xsinkthe exception sink

References QoreString::c_str(), check(), QoreString::size(), and write().


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