Qorus Integration Engine®
4.0.3.p2_git
|
this class handles stream classes that use an I/O thread to send data More...
Public Member Methods | |
destructor () | |
waits for any I/O to complete and then returns | |
nothing | cleanup () |
called when the thread resource is still allocated and the thread exits or one of Qore::throw_thread_resource_exceptions() or Qore::throw_thread_resource_exceptions_to_mark() is called | |
disconnect () | |
Disconnects the connection. | |
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 More... | |
private 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 More... | |
Private Member Methods | |
abstract | terminateIoWait (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 | |
abstract | stopIoThreadImpl () |
signal the I/O thread to top sending data | |
abstract bool | submitImpl () |
puts data on the queue for sending in the background I/O thread More... | |
Additional Inherited Members | |
Private:Internal Member Methods inherited from OMQ::AbstractParallelStream | |
destructor () | |
wait for any I/O in progress to complete | |
nothing | cleanupBase () |
called by child classes when the thread resource is still allocated and the thread exits or one of Qore::throw_thread_resource_exceptions() or Qore::throw_thread_resource_exceptions_to_mark() is called | |
private | waitIoComplete () |
waits for the I/O thread to complete and returns | |
private | markIoInProgress () |
marks the current connection as in progress; must be already checked beforehand that it's not in progress | |
private | markIoComplete () |
performs thread cleanup on the background I/O thread if any is registered and running | |
OMQ::StreamInfo | getInfo () |
returns performance information about the stream | |
private | 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 | |
private | startStream () |
opens the remote transaction by calling startStreamImpl() and starts the background I/O socket thread More... | |
private | socketThread (*ThreadLocalData my_tld) |
sets up thread-local data if possible and calls socketThreadImpl() that implements the background socket I/O for the object | |
private | abortIo (string reason) |
signals the end of queue operations | |
private bool | abortIoWait (string reason) |
signals the end of queue operations and waits until the socket thread terminates More... | |
private | beginTransaction (OMQ::DbStreamConfig m_config) |
starts or continues a remote transaction | |
private | commit (OMQ::DbStreamConfig m_config) |
commits a remote transaction | |
private | rollback (OMQ::DbStreamConfig m_config) |
rolls back a remote transaction | |
abstract OMQ::StreamConfig | config () |
returns the configuration object | |
Qore::Thread::Counter | cnt () |
confirmation counter for the socket I/O thread | |
OMQ::StreamInfo | m_info () |
stream information | |
abstract | socketThreadImpl () |
this method implements the background thread that handles the actual DataStream socket sends | |
abstract | startStreamImpl () |
opens the remote transaction before starting the background I/O socket thread | |
Static Private:Internal Member Methods inherited from OMQ::AbstractParallelStream | |
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 | |
static | beginTransaction (QorusSystemRestHelper remote, string datasource, *timeout timeout_ms, *reference info) |
starts a transaction in a remote datasource More... | |
Private:Internal Attributes inherited from OMQ::AbstractParallelStream | |
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 | 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:
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
|
privatepure virtual |
puts data on the queue for sending in the background I/O thread
Implemented in OMQ::FsRemoteSend, and OMQ::DbRemoteSend.
private bool OMQ::AbstractParallelWriteStream::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
called by terminateIoWait()