|
bool | terminateIoWaitIntern (string action) |
| flushes all remote I/O, signals the I/O thread the terminate and waits for confirmation, then checks for background I/O errors, in which case an exception is thrown in this thread
|
|
Qore::Thread::Counter | cnt () |
| confirmation counter for the socket I/O thread
|
|
OMQ::StreamInfo | m_info () |
| stream information
|
|
| waitIoComplete () |
| waits for the I/O thread to complete and returns
|
|
| markIoInProgress () |
| marks the current connection as in progress; must be already checked beforehand that it's not in progress
|
|
| markIoComplete () |
| performs thread cleanup on the background I/O thread if any is registered and running
|
|
| checkError (string cmd) |
| checks for an error in the background send thread; if there is one, then rethrows the exception in the main application / data thread
|
|
| startStream () |
| opens the remote transaction by calling startStreamImpl() and starts the background I/O socket thread
|
|
| socketThread (*ThreadLocalData my_tld) |
| sets up thread-local data if possible and calls socketThreadImpl() that implements the background socket I/O for the object
|
|
| abortIo (string reason) |
| signals the end of queue operations
|
|
bool | abortIoWait (string reason) |
| signals the end of queue operations and waits until the socket thread terminates
|
|
| beginTransaction (OMQ::DbStreamConfig m_config) |
| starts or continues a remote transaction
|
|
| commit (OMQ::DbStreamConfig m_config) |
| commits a remote transaction
|
|
| rollback (OMQ::DbStreamConfig m_config) |
| rolls back a remote transaction
|
|
|
static | staticCleanup () |
| performs static thread resource cleanup on I/O thread resources
|
|
static | checkStream (QorusSystemRestHelper helper, string op) |
| checks if there is a stream operation running in the background, if so, a user-friendly exception is thrown
|
|
const | DO_DISCONNECT = True |
| A constant for rollback() methods to perform real disconnect.
|
|
const | DONT_DISCONNECT = False |
| A constant for rollback() methods to keep the network connection alive.
|
|
Qore::Thread::Queue | dataq |
| Queue for the socket I/O thread.
|
|
*hash< auto > | thread_ex |
| exception info for send thread to communicate errors to the primary data thread
|
|
string | objid |
| stream object identifier
|
|
const | StreamTerminatedError = "STREAM-TERMINATED" |
| stream terminated error
|
|
const | ThreadKey = "_STREAM_" |
| thread-local data key
|
|
this class handles stream classes that use an I/O thread to send data
such classes have the following characteristics:
- they can abort the I/O at any time without corrupting the socket data; therefore when aborting the I/O thread, they don't need to disconnect
- the destructor waits until the I/O thread completes and do not disconnect
OMQ::AbstractParallelWriteStream::flush |
( |
| ) |
|
flushes all remote I/O, signals the I/O thread to terminate and waits for confirmation, then checks for background I/O errors, in which case an exception is thrown in this thread
use this method when a remote operation should be continued in the same HTTP connection, for example