185 lines
6.2 KiB
C
185 lines
6.2 KiB
C
/*
|
|
* Copyright(c) 2006 to 2022 ZettaScale Technology and others
|
|
*
|
|
* This program and the accompanying materials are made available under the
|
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
|
* v. 1.0 which is available at
|
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
|
*
|
|
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef DDS_QOSDEFS_H
|
|
#define DDS_QOSDEFS_H
|
|
|
|
#include <stdint.h>
|
|
|
|
#if defined (__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @anchor DDS_LENGTH_UNLIMITED
|
|
* @ingroup qos
|
|
* @brief Used for indicating unlimited length in dds_qset_resource_limits()
|
|
*/
|
|
#define DDS_LENGTH_UNLIMITED -1
|
|
|
|
/**
|
|
* @brief Qos Policy IDs
|
|
* @ingroup internal
|
|
* Used internally to mark the QoS policy type
|
|
*/
|
|
typedef enum dds_qos_policy_id {
|
|
DDS_INVALID_QOS_POLICY_ID, /**< Invalid Policy */
|
|
DDS_USERDATA_QOS_POLICY_ID, /**< Userdata policy dds_qset_userdata() */
|
|
DDS_DURABILITY_QOS_POLICY_ID, /**< Durability policy dds_qset_durability() */
|
|
DDS_PRESENTATION_QOS_POLICY_ID, /**< Presentation policy dds_qset_presentation() */
|
|
DDS_DEADLINE_QOS_POLICY_ID, /**< Deadline policy dds_qset_deadline() */
|
|
DDS_LATENCYBUDGET_QOS_POLICY_ID, /**< LatencyBudget policy dds_qset_latency_budget() */
|
|
DDS_OWNERSHIP_QOS_POLICY_ID, /**< Ownership policy dds_qset_ownership() */
|
|
DDS_OWNERSHIPSTRENGTH_QOS_POLICY_ID, /**< OwnershipStrength policy dds_qset_ownership_strength() */
|
|
DDS_LIVELINESS_QOS_POLICY_ID, /**< Liveliness policy dds_qset_liveliness() */
|
|
DDS_TIMEBASEDFILTER_QOS_POLICY_ID, /**< TimeBasedFilter policy dds_qset_time_based_filter() */
|
|
DDS_PARTITION_QOS_POLICY_ID, /**< Partition policy dds_qset_partition() */
|
|
DDS_RELIABILITY_QOS_POLICY_ID, /**< Reliability policy dds_qset_reliability() */
|
|
DDS_DESTINATIONORDER_QOS_POLICY_ID, /**< DestinationOrder policy dds_qset_destination_order() */
|
|
DDS_HISTORY_QOS_POLICY_ID, /**< History policy dds_qset_history() */
|
|
DDS_RESOURCELIMITS_QOS_POLICY_ID, /**< ResourceLimits policy dds_qset_resource_limits() */
|
|
DDS_ENTITYFACTORY_QOS_POLICY_ID, /**< EntityFactory policy */
|
|
DDS_WRITERDATALIFECYCLE_QOS_POLICY_ID, /**< WriterDataLifecycle policy dds_qset_writer_data_lifecycle() */
|
|
DDS_READERDATALIFECYCLE_QOS_POLICY_ID, /**< ReaderDataLifecycle policy dds_qset_reader_data_lifecycle() */
|
|
DDS_TOPICDATA_QOS_POLICY_ID, /**< Topicdata policy dds_qset_topicdata() */
|
|
DDS_GROUPDATA_QOS_POLICY_ID, /**< Groupdata policy dds_qset_groupdata() */
|
|
DDS_TRANSPORTPRIORITY_QOS_POLICY_ID, /**< TransportPriority policy dds_qset_transport_priority() */
|
|
DDS_LIFESPAN_QOS_POLICY_ID, /**< Livespan policy dds_qset_lifespan() */
|
|
DDS_DURABILITYSERVICE_QOS_POLICY_ID, /**< DurabilityService policy dds_qset_durability_service() */
|
|
DDS_PROPERTY_QOS_POLICY_ID, /**< Property policy dds_qset_property() */
|
|
DDS_TYPE_CONSISTENCY_ENFORCEMENT_QOS_POLICY_ID, /**< TypeConsistencyEnforcement policy dds_qset_type_consistency_enforcements() */
|
|
DDS_DATA_REPRESENTATION_QOS_POLICY_ID /**< DataRepresentation policy dds_qset_data_representation() */
|
|
} dds_qos_policy_id_t;
|
|
|
|
|
|
/**
|
|
* @brief QoS datatype
|
|
* @ingroup qos
|
|
* QoS structure is opaque
|
|
*/
|
|
typedef struct dds_qos dds_qos_t;
|
|
|
|
/**
|
|
* @brief Durability QoS: Applies to Topic, DataReader, DataWriter
|
|
* @ingroup qos
|
|
*/
|
|
typedef enum dds_durability_kind
|
|
{
|
|
DDS_DURABILITY_VOLATILE, /**< Volatile durability */
|
|
DDS_DURABILITY_TRANSIENT_LOCAL, /**< Transient Local durability */
|
|
DDS_DURABILITY_TRANSIENT, /**< Transient durability */
|
|
DDS_DURABILITY_PERSISTENT /**< Persistent durability */
|
|
}
|
|
dds_durability_kind_t;
|
|
|
|
/**
|
|
* @brief History QoS: Applies to Topic, DataReader, DataWriter
|
|
* @ingroup qos
|
|
*/
|
|
typedef enum dds_history_kind
|
|
{
|
|
DDS_HISTORY_KEEP_LAST, /**< Keep Last history */
|
|
DDS_HISTORY_KEEP_ALL /**< Keep All history */
|
|
}
|
|
dds_history_kind_t;
|
|
|
|
/**
|
|
* @brief Ownership QoS: Applies to Topic, DataReader, DataWriter
|
|
* @ingroup qos
|
|
*/
|
|
typedef enum dds_ownership_kind
|
|
{
|
|
DDS_OWNERSHIP_SHARED, /**< Shared Ownership */
|
|
DDS_OWNERSHIP_EXCLUSIVE /**< Exclusive Ownership */
|
|
}
|
|
dds_ownership_kind_t;
|
|
|
|
/**
|
|
* @brief Liveliness QoS: Applies to Topic, DataReader, DataWriter
|
|
* @ingroup qos
|
|
*/
|
|
typedef enum dds_liveliness_kind
|
|
{
|
|
DDS_LIVELINESS_AUTOMATIC, /**< Automatic liveliness */
|
|
DDS_LIVELINESS_MANUAL_BY_PARTICIPANT, /**< Manual by Participant liveliness */
|
|
DDS_LIVELINESS_MANUAL_BY_TOPIC /**< Manual by Topic liveliness */
|
|
}
|
|
dds_liveliness_kind_t;
|
|
|
|
/**
|
|
* @brief Reliability QoS: Applies to Topic, DataReader, DataWriter
|
|
* @ingroup qos
|
|
*/
|
|
typedef enum dds_reliability_kind
|
|
{
|
|
DDS_RELIABILITY_BEST_EFFORT, /**< Best Effort reliability */
|
|
DDS_RELIABILITY_RELIABLE /**< Reliable reliability */
|
|
}
|
|
dds_reliability_kind_t;
|
|
|
|
/**
|
|
* @brief DestinationOrder QoS: Applies to Topic, DataReader, DataWriter
|
|
* @ingroup qos
|
|
*/
|
|
typedef enum dds_destination_order_kind
|
|
{
|
|
DDS_DESTINATIONORDER_BY_RECEPTION_TIMESTAMP, /**< order by reception timestamp */
|
|
DDS_DESTINATIONORDER_BY_SOURCE_TIMESTAMP /**< order by source timestamp */
|
|
}
|
|
dds_destination_order_kind_t;
|
|
|
|
/**
|
|
* @brief Presentation QoS: Applies to Publisher, Subscriber
|
|
* @ingroup qos
|
|
*/
|
|
typedef enum dds_presentation_access_scope_kind
|
|
{
|
|
DDS_PRESENTATION_INSTANCE, /**< presentation scope per instance */
|
|
DDS_PRESENTATION_TOPIC, /**< presentation scope per topic */
|
|
DDS_PRESENTATION_GROUP /**< presentation scope per group */
|
|
}
|
|
dds_presentation_access_scope_kind_t;
|
|
|
|
/**
|
|
* @brief Ignore-local QoS: Applies to DataReader, DataWriter
|
|
* @ingroup qos
|
|
*/
|
|
typedef enum dds_ignorelocal_kind
|
|
{
|
|
DDS_IGNORELOCAL_NONE, /**< Don't ignore local data */
|
|
DDS_IGNORELOCAL_PARTICIPANT, /**< Ignore local data from same participant */
|
|
DDS_IGNORELOCAL_PROCESS /**< Ignore local data from same process */
|
|
}
|
|
dds_ignorelocal_kind_t;
|
|
|
|
/**
|
|
* @brief Type-consistency QoS: Applies to DataReader, DataWriter
|
|
* @ingroup qos
|
|
*/
|
|
typedef enum dds_type_consistency_kind
|
|
{
|
|
DDS_TYPE_CONSISTENCY_DISALLOW_TYPE_COERCION, /**< Do not allow type coercion */
|
|
DDS_TYPE_CONSISTENCY_ALLOW_TYPE_COERCION /**< Allow type coercion */
|
|
}
|
|
dds_type_consistency_kind_t;
|
|
|
|
/**
|
|
* @brief Data Representation QoS: Applies to Topic, DataReader, DataWriter
|
|
* @ingroup qos
|
|
*/
|
|
typedef int16_t dds_data_representation_id_t;
|
|
|
|
#if defined (__cplusplus)
|
|
}
|
|
#endif
|
|
#endif
|