#include <managed_infrastructure.h>
Static Public Member Functions | |
static System::String^ | get_asynchronouspublisher_qos_policy_name () |
Stringified human-readable name for DDS::AsynchronousPublisherQosPolicy. | |
Public Attributes | |
ThreadSettings_t^ | thread |
Settings of the publishing thread. | |
ThreadSettings_t^ | asynchronous_batch_thread |
Settings of the batch flushing thread. | |
Properties | |
System::Boolean | disable_asynchronous_write [get, set] |
Disable asynchronous publishing. | |
System::Boolean | disable_asynchronous_batch [get, set] |
Disable asynchronous batch flushing. |
Specifies the asynchronous publishing and asynchronous batch flushing settings of the DDS::Publisher instances.
The QoS policy specifies whether asynchronous publishing and asynchronous batch flushing are enabled for the DDS::DataWriter entities belonging to this DDS::Publisher. If so, the publisher will spawn up to two threads, one for asynchronous publishing and one for asynchronous batch flushing.
You can also use it, along with DDS::PublishModeQosPolicy and a DDS::FlowController, to send large data reliably. "Large" in this context means that the data that cannot be sent as a single packet by a network transport. For example, to send data larger than 63K reliably using UDP/IP, you must configure RTI Data Distribution Service to fragment the data and send it asynchronously.
The asynchronous publisher thread is shared by all DDS::PublishModeQosPolicyKind::ASYNCHRONOUS_PUBLISH_MODE_QOS DDS::DataWriter instances that belong to this publisher and handles their data transmission chores.
The asynchronous batch flushing thread is shared by all DDS::DataWriter instances with batching enabled that belong to this publisher.
This QoS policy also allows you to adjust the settings of the asynchronous publishing and the asynchronous batch flushing threads. To use different threads for two different DDS::DataWriter entities, the instances must belong to different DDS::Publisher instances.
A DDS::Publisher must have asynchronous publishing enabled for its DDS::DataWriter instances to write asynchronously.
A DDS::Publisher must have asynchronous batch flushing enabled in order to flush the batches of its DDS::DataWriter instances asynchronously. However, no asynchronous batch flushing thread will be started until the first DDS::DataWriter instance with batching enabled is created from this DDS::Publisher.
Settings of the publishing thread.
There is only one asynchronous publishing thread per DDS::Publisher.
[default] priority below normal.
The actual value depends on your architecture:
For Windows: -2
For Solaris: OS default priority
For Linux: OS default priority
For LynxOS: 13
For Integrity: 80
For VxWorks: 110
For all others: OS default priority.
[default] The actual value depends on your architecture:
For Windows: OS default stack size
For Solaris: OS default stack size
For Linux: OS default stack size
For LynxOS: 4*16*1024
For Integrity: 4*20*1024
For VxWorks: 4*16*1024
For all others: OS default stack size.
[default] mask = DDS::ThreadSettingsKind::THREAD_SETTINGS_KIND_MASK_DEFAULT
Settings of the batch flushing thread.
There is only one asynchronous batch flushing thread per DDS::Publisher.
[default] priority below normal.
The actual value depends on your architecture:
For Windows: -2
For Solaris: OS default priority
For Linux: OS default priority
For LynxOS: 13
For Integrity: 80
For VxWorks: 110
For all others: OS default priority.
[default] The actual value depends on your architecture:
For Windows: OS default stack size
For Solaris: OS default stack size
For Linux: OS default stack size
For LynxOS: 4*16*1024
For Integrity: 4*20*1024
For VxWorks: 4*16*1024
For all others: OS default stack size.
[default] mask = DDS::ThreadSettingsKind::THREAD_SETTINGS_KIND_MASK_DEFAULT
System:: Boolean DDS::AsynchronousPublisherQosPolicy::disable_asynchronous_write [get, set] |
Disable asynchronous publishing.
If set to true, any DDS::DataWriter created with DDS::PublishModeQosPolicyKind::ASYNCHRONOUS_PUBLISH_MODE_QOS will fail with DDS::Retcode_InconsistentPolicy.
[default] false
System:: Boolean DDS::AsynchronousPublisherQosPolicy::disable_asynchronous_batch [get, set] |
Disable asynchronous batch flushing.
If set to true, any DDS::DataWriter created with batching enabled will fail with DDS::Retcode_InconsistentPolicy.
If DDS::BatchQosPolicy::max_flush_delay is different than DDS::Duration_t::DURATION_INFINITE, DDS::AsynchronousPublisherQosPolicy::disable_asynchronous_batch must be set false.
[default] false