Program Listing for File dds_public_qos.h

Return to documentation for file (ddsc/dds_public_qos.h)

/*
 * Copyright(c) 2006 to 2018 ADLINK Technology Limited 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_QOS_H
#define DDS_QOS_H

#include "dds/export.h"
#include "dds/ddsc/dds_public_qosdefs.h"

/* Whether or not the "property list" QoS setting is supported in this version.  If it is,
   the "dds.sec." properties are treated specially, preventing the accidental creation of
   an non-secure participant by an implementation built without support for DDS Security. */
#define DDS_HAS_PROPERTY_LIST_QOS 1

#if defined (__cplusplus)
extern "C" {
#endif

DDS_EXPORT
dds_qos_t * dds_create_qos (void);
DDS_DEPRECATED_EXPORT
dds_qos_t * dds_qos_create (void);

DDS_EXPORT void
dds_delete_qos (dds_qos_t * __restrict qos);

DDS_DEPRECATED_EXPORT void
dds_qos_delete (dds_qos_t * __restrict qos);

DDS_EXPORT void
dds_reset_qos(dds_qos_t * __restrict qos);

DDS_DEPRECATED_EXPORT
void dds_qos_reset (dds_qos_t * __restrict qos
);

DDS_EXPORT dds_return_t
dds_copy_qos (dds_qos_t * __restrict dst, const dds_qos_t * __restrict src);

DDS_DEPRECATED_EXPORT dds_return_t
dds_qos_copy (dds_qos_t * __restrict dst, const dds_qos_t * __restrict src);

DDS_EXPORT void
dds_merge_qos (dds_qos_t * __restrict dst, const dds_qos_t * __restrict src);

DDS_DEPRECATED_EXPORT void
dds_qos_merge (dds_qos_t * __restrict dst, const dds_qos_t * __restrict src);

DDS_EXPORT bool
dds_qos_equal (const dds_qos_t * __restrict a, const dds_qos_t * __restrict b);

DDS_EXPORT void
dds_qset_userdata (
  dds_qos_t * __restrict qos,
  const void * __restrict value,
  size_t sz);

DDS_EXPORT void
dds_qset_topicdata (
  dds_qos_t * __restrict qos,
  const void * __restrict value,
  size_t sz);

DDS_EXPORT void
dds_qset_groupdata (
  dds_qos_t * __restrict qos,
  const void * __restrict value,
  size_t sz);

DDS_EXPORT void
dds_qset_durability (dds_qos_t * __restrict qos, dds_durability_kind_t kind);

DDS_EXPORT void
dds_qset_history (
  dds_qos_t * __restrict qos,
  dds_history_kind_t kind,
  int32_t depth);

DDS_EXPORT void
dds_qset_resource_limits (
  dds_qos_t * __restrict qos,
  int32_t max_samples,
  int32_t max_instances,
  int32_t max_samples_per_instance);

DDS_EXPORT void
dds_qset_presentation (
  dds_qos_t * __restrict qos,
  dds_presentation_access_scope_kind_t access_scope,
  bool coherent_access,
  bool ordered_access);

DDS_EXPORT void
dds_qset_lifespan (
  dds_qos_t * __restrict qos,
  dds_duration_t lifespan);

DDS_EXPORT void
dds_qset_deadline (
  dds_qos_t * __restrict qos,
  dds_duration_t deadline);

DDS_EXPORT void
dds_qset_latency_budget (
  dds_qos_t * __restrict qos,
  dds_duration_t duration);

DDS_EXPORT void
dds_qset_ownership (
  dds_qos_t * __restrict qos,
  dds_ownership_kind_t kind);

DDS_EXPORT void
dds_qset_ownership_strength (dds_qos_t * __restrict qos, int32_t value);

DDS_EXPORT void
dds_qset_liveliness (
  dds_qos_t * __restrict qos,
  dds_liveliness_kind_t kind,
  dds_duration_t lease_duration);

DDS_EXPORT void
dds_qset_time_based_filter (
  dds_qos_t * __restrict qos,
  dds_duration_t minimum_separation);

DDS_EXPORT void
dds_qset_partition (
  dds_qos_t * __restrict qos,
  uint32_t n,
  const char ** __restrict ps);

DDS_EXPORT void
dds_qset_partition1 (
  dds_qos_t * __restrict qos,
  const char * __restrict name);

DDS_EXPORT void
dds_qset_reliability (
  dds_qos_t * __restrict qos,
  dds_reliability_kind_t kind,
  dds_duration_t max_blocking_time);

DDS_EXPORT void
dds_qset_transport_priority (dds_qos_t * __restrict qos, int32_t value);

DDS_EXPORT void
dds_qset_destination_order (
  dds_qos_t * __restrict qos,
  dds_destination_order_kind_t kind);

DDS_EXPORT void
dds_qset_writer_data_lifecycle (dds_qos_t * __restrict qos, bool autodispose);

DDS_EXPORT void
dds_qset_reader_data_lifecycle (
  dds_qos_t * __restrict qos,
  dds_duration_t autopurge_nowriter_samples_delay,
  dds_duration_t autopurge_disposed_samples_delay);

DDS_EXPORT void
dds_qset_durability_service (
  dds_qos_t * __restrict qos,
  dds_duration_t service_cleanup_delay,
  dds_history_kind_t history_kind,
  int32_t history_depth,
  int32_t max_samples,
  int32_t max_instances,
  int32_t max_samples_per_instance);

DDS_EXPORT void
dds_qset_ignorelocal (
  dds_qos_t * __restrict qos,
  dds_ignorelocal_kind_t ignore);

DDS_EXPORT void
dds_qset_prop (
  dds_qos_t * __restrict qos,
  const char * name,
  const char * value);

DDS_EXPORT void
dds_qunset_prop (
  dds_qos_t * __restrict qos,
  const char * name);

DDS_EXPORT void
dds_qset_bprop (
  dds_qos_t * __restrict qos,
  const char * name,
  const void * value,
  const size_t sz);

DDS_EXPORT void
dds_qunset_bprop (
  dds_qos_t * __restrict qos,
  const char * name);

DDS_EXPORT void
dds_qset_type_consistency (
  dds_qos_t * __restrict qos,
  dds_type_consistency_kind_t kind,
  bool ignore_sequence_bounds,
  bool ignore_string_bounds,
  bool ignore_member_names,
  bool prevent_type_widening,
  bool force_type_validation);


DDS_EXPORT bool dds_qget_userdata (const dds_qos_t * __restrict qos, void **value, size_t *sz);

DDS_EXPORT bool dds_qget_topicdata (const dds_qos_t * __restrict qos, void **value, size_t *sz);

DDS_EXPORT bool dds_qget_groupdata (const dds_qos_t * __restrict qos, void **value, size_t *sz);

DDS_EXPORT bool dds_qget_durability (const dds_qos_t * __restrict qos, dds_durability_kind_t *kind);

DDS_EXPORT bool dds_qget_history (const dds_qos_t * __restrict qos, dds_history_kind_t *kind, int32_t *depth);

DDS_EXPORT bool
dds_qget_resource_limits (
  const dds_qos_t * __restrict qos,
  int32_t *max_samples,
  int32_t *max_instances,
  int32_t *max_samples_per_instance);

DDS_EXPORT bool
dds_qget_presentation (
  const dds_qos_t * __restrict qos,
  dds_presentation_access_scope_kind_t *access_scope,
  bool *coherent_access,
  bool *ordered_access);

DDS_EXPORT bool
dds_qget_lifespan (
  const dds_qos_t * __restrict qos,
  dds_duration_t *lifespan);

DDS_EXPORT bool
dds_qget_deadline (
  const dds_qos_t * __restrict qos,
  dds_duration_t *deadline);

DDS_EXPORT bool
dds_qget_latency_budget (
  const dds_qos_t * __restrict qos,
  dds_duration_t *duration);

DDS_EXPORT bool
dds_qget_ownership (
  const dds_qos_t * __restrict qos,
  dds_ownership_kind_t *kind);

DDS_EXPORT bool
dds_qget_ownership_strength (
  const dds_qos_t * __restrict qos,
  int32_t *value);

DDS_EXPORT bool
dds_qget_liveliness (
  const dds_qos_t * __restrict qos,
  dds_liveliness_kind_t *kind,
  dds_duration_t *lease_duration);

DDS_EXPORT bool
dds_qget_time_based_filter (
  const dds_qos_t * __restrict qos,
  dds_duration_t *minimum_separation);

DDS_EXPORT bool
dds_qget_partition (
  const dds_qos_t * __restrict qos,
  uint32_t *n,
  char ***ps);

DDS_EXPORT bool
dds_qget_reliability (
  const dds_qos_t * __restrict qos,
  dds_reliability_kind_t *kind,
  dds_duration_t *max_blocking_time);

DDS_EXPORT bool
dds_qget_transport_priority (
  const dds_qos_t * __restrict qos,
  int32_t *value);

DDS_EXPORT bool
dds_qget_destination_order (
  const dds_qos_t * __restrict qos,
  dds_destination_order_kind_t *kind);

DDS_EXPORT bool
dds_qget_writer_data_lifecycle (
  const dds_qos_t * __restrict qos,
  bool *autodispose);

DDS_EXPORT bool
dds_qget_reader_data_lifecycle (
  const dds_qos_t * __restrict qos,
  dds_duration_t *autopurge_nowriter_samples_delay,
  dds_duration_t *autopurge_disposed_samples_delay);

DDS_EXPORT bool
dds_qget_durability_service (
  const dds_qos_t * __restrict qos,
  dds_duration_t *service_cleanup_delay,
  dds_history_kind_t *history_kind,
  int32_t *history_depth,
  int32_t *max_samples,
  int32_t *max_instances,
  int32_t *max_samples_per_instance);

DDS_EXPORT bool
dds_qget_ignorelocal (
  const dds_qos_t * __restrict qos,
  dds_ignorelocal_kind_t *ignore);

DDS_EXPORT bool
dds_qget_propnames (
  const dds_qos_t * __restrict qos,
  uint32_t * n,
  char *** names);

DDS_EXPORT bool
dds_qget_prop (
  const dds_qos_t * __restrict qos,
  const char * name,
  char ** value);

DDS_EXPORT bool
dds_qget_bpropnames (
  const dds_qos_t * __restrict qos,
  uint32_t * n,
  char *** names);

DDS_EXPORT bool
dds_qget_bprop (
  const dds_qos_t * __restrict qos,
  const char * name,
  void ** value,
  size_t * sz);

DDS_EXPORT bool
dds_qget_type_consistency (
  const dds_qos_t * __restrict qos,
  dds_type_consistency_kind_t *kind,
  bool *ignore_sequence_bounds,
  bool *ignore_string_bounds,
  bool *ignore_member_names,
  bool *prevent_type_widening,
  bool *force_type_validation);

#if defined (__cplusplus)
}
#endif
#endif