![]() |
Qorus Integration Engine®
4.0.3.p2_git
|
filesystem send stream base config class More...
Public Member Methods | |
| constructor (string remote, string path, *hash options) | |
| creates the configuration object from the arguments | |
| constructor (QorusSystemRestHelper remote, string path, *hash options) | |
| creates the configuration object from the arguments | |
| private | setFsSendOptions (string path, *hash options) |
| sets configuration options | |
| string | path () |
| returns the path | |
| int | mode () |
| returns the file mode | |
| string | encoding () |
| returns the file's character encoding | |
| private int | getDefaultBlockSize () |
| returns the default block size for this object (16384) | |
| logStreamConfigImpl (string what, string url) | |
| logs the stream configuration when created | |
| updatePath (string path) | |
| updates the stored path | |
Public Member Methods inherited from OMQ::StreamConfig | |
| constructor (string stream, string remote, *hash options) | |
| constructor taking a string giving the name of the remote connection for the remote server More... | |
| constructor (string stream, QorusSystemRestHelper remote, *hash options) | |
| constructor taking an OMQ::QorusSystemRestHelper object for the remote connection More... | |
| logStreamConfig (string what) | |
| logs the stream configuration when created | |
| logStreamConfigImpl (string what, string url) | |
| logs the stream configuration when created | |
| private | setOptions (*hash options) |
| sets configuration values from an optional option hash | |
| string | stream () |
| returns the stream name | |
| string | streamDesc () |
| returns a description of the stream for error reporting | |
| QorusSystemRestHelper | remote () |
| returns the remote connection object (see OMQ::QorusSystemRestHelper) | |
| timeout | timeout () |
| returns the timeout value in milliseconds | |
| int | block () |
| returns the block size | |
| bool | suppressRemoteTimeout () |
returns True if no "timeout" option should be sent to the remote | |
| update (string stream, *hash options) | |
| updates the configuration for a new stream | |
| private int | getDefaultBlockSize () |
| returns the default block size for this object (1000) | |
Public Member Methods inherited from OMQ::QueuedBlockConfigBase | |
| constructor (*hash options) | |
| creates the object and assigns config info | |
| *int | queueBlockSize () |
| returns the queue block size | |
| int | queueTimeout () |
| returns the queue timeout in milliseconds | |
| update (*hash options) | |
| updates options | |
Private Attributes | |
| string | m_path |
| target path | |
| softint | m_mode = 0644 |
| target file creation mode (unix privs.); default: 0644 | |
| string | m_encoding = get_default_encoding() |
| target file encoding | |
| const | MinBlockSize = 4096 |
| minimum block size in bytes | |
Private Attributes inherited from OMQ::StreamConfig | |
| string | m_stream |
| no public members More... | |
| QorusSystemRestHelper | m_remote |
| real remote rest helper | |
| timeout | m_timeout = 5m |
| timeout for rest connections | |
| bool | m_no_remote_timeout = False |
| flag to suppress sending the timeout option to the remote | |
| int | m_logLevel = LL_INFO |
| default log level; default LL_INFO | |
| softint | m_block |
| block size | |
Private Attributes inherited from OMQ::QueuedBlockConfigBase | |
| *softint | m_queue_block_size = 2 |
data queue block size; the number of blocks to queue for sending before the main data thread will block; default: 2 | |
| timeout | m_queue_timeout = 5m |
queue timeout; maximum amount of time a message can wait for the queue to become free; default: 5m | |
| const | MinQueueBlockSize = 2 |
| minimum queue block size | |
filesystem send stream base config class
This class creates a background thread that handles the socket I/O so that socket I/O can be executed in parallel to the main data acquisition thread (the thread that creates the object).
There is a Queue object that passes aggregated row data to the send thread; the default Queue size is 2 (representing a number of blocks), which allows 2 blocks of data to be queued before the internal private method FsRemoteSend::submitImpl() (called implicitly by FsRemoteSend::append()) will block.
If the Queue size is 2 and the block size is 4096 then at most 8192 bytes will be queued for sending before the main thread will block in the internal private method FsRemoteSend::submitImpl().
This allows the main data acquisition thread to stay loosely in sync with the I/O thread so that memory usage is optimized and furthermore serves to avoid stalling the I/O thread due to lack of data.