Rearrange and fixup abstraction layer
- Replace os_result by dds_retcode_t and move DDS return code defines down. Eliminates the need to convert between different return code types. - Move dds_time_t down and remove os_time. Eliminates the need to convert between different time representations and reduces code duplication. - Remove use of Microsoft source-code annotation language (SAL). SAL annotations are Microsoft specific and not very well documented. This makes it very difficult for contributers to write. - Rearrange the abstraction layer to be feature-based. The previous layout falsely assumed that the operating system dictates which implementation is best suited. For general purpose operating systems this is mostly true, but embedded targets require a slightly different approach and may not even offer all features. The new layout makes it possible to mix-and-match feature implementations and allows for features to not be implemented at all. - Replace the os prefix by ddsrt to avoid name collisions. - Remove various portions of unused and unwanted code. - Export thread names on all supported platforms. - Return native thread identifier on POSIX compatible platforms. - Add timed wait for condition variables that takes an absolute time. - Remove system abstraction for errno. The os_getErrno and os_setErrno were incorrect. Functions that might fail now simply return a DDS return code instead. - Remove thread-specific memory abstraction. os_threadMemGet and accompanying functions were a mess and their use has been eliminated by other changes in this commit. - Replace attribute (re)defines by ddsrt_ prefixed equivalents to avoid name collisions and problems with faulty __nonnull__ attributes. Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
This commit is contained in:
		
							parent
							
								
									318968f40f
								
							
						
					
					
						commit
						cd6742ee12
					
				
					 439 changed files with 22117 additions and 28782 deletions
				
			
		
							
								
								
									
										3074
									
								
								src/core/ddsc/include/dds/dds.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3074
									
								
								src/core/ddsc/include/dds/dds.h
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
				
			
			@ -21,8 +21,9 @@
 | 
			
		|||
#ifndef DDS_ALLOC_H
 | 
			
		||||
#define DDS_ALLOC_H
 | 
			
		||||
 | 
			
		||||
#include "os/os_public.h"
 | 
			
		||||
#include "ddsc/dds_export.h"
 | 
			
		||||
#include <stddef.h>
 | 
			
		||||
 | 
			
		||||
#include "dds/export.h"
 | 
			
		||||
 | 
			
		||||
#if defined (__cplusplus)
 | 
			
		||||
extern "C" {
 | 
			
		||||
							
								
								
									
										51
									
								
								src/core/ddsc/include/dds/ddsc/dds_public_error.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								src/core/ddsc/include/dds/ddsc/dds_public_error.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,51 @@
 | 
			
		|||
/*
 | 
			
		||||
 * 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
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/** @file
 | 
			
		||||
 *
 | 
			
		||||
 * @brief DDS C Error API
 | 
			
		||||
 *
 | 
			
		||||
 * This header file defines the public API of error values and convenience
 | 
			
		||||
 * functions in the CycloneDDS C language binding.
 | 
			
		||||
 */
 | 
			
		||||
#ifndef DDS_ERROR_H
 | 
			
		||||
#define DDS_ERROR_H
 | 
			
		||||
 | 
			
		||||
#include "dds/export.h"
 | 
			
		||||
#include "dds/ddsrt/log.h"
 | 
			
		||||
#include "dds/ddsrt/retcode.h"
 | 
			
		||||
 | 
			
		||||
#if defined (__cplusplus)
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Error masks for returned status values */
 | 
			
		||||
 | 
			
		||||
#define DDS_ERR_NR_MASK       0x000000ff
 | 
			
		||||
#define DDS_ERR_LINE_MASK     0x003fff00
 | 
			
		||||
#define DDS_ERR_FILE_ID_MASK  0x7fc00000
 | 
			
		||||
 | 
			
		||||
/* Error code handling functions */
 | 
			
		||||
 | 
			
		||||
/** Macro to extract error number */
 | 
			
		||||
#define dds_err_nr(e) ((-(e)) & DDS_ERR_NR_MASK)
 | 
			
		||||
 | 
			
		||||
/** Macro to extract line number */
 | 
			
		||||
#define dds_err_line(e) (((-(e)) & DDS_ERR_LINE_MASK) >> 8)
 | 
			
		||||
 | 
			
		||||
/** Macro to extract file identifier */
 | 
			
		||||
#define dds_err_file_id(e) (((-(e)) & DDS_ERR_FILE_ID_MASK) >> 22)
 | 
			
		||||
 | 
			
		||||
#if defined (__cplusplus)
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -21,10 +21,9 @@
 | 
			
		|||
#ifndef DDS_IMPL_H
 | 
			
		||||
#define DDS_IMPL_H
 | 
			
		||||
 | 
			
		||||
#include "ddsc/dds_public_alloc.h"
 | 
			
		||||
#include "ddsc/dds_public_stream.h"
 | 
			
		||||
#include "os/os_public.h"
 | 
			
		||||
#include "ddsc/dds_export.h"
 | 
			
		||||
#include "dds/export.h"
 | 
			
		||||
#include "dds/ddsc/dds_public_alloc.h"
 | 
			
		||||
#include "dds/ddsc/dds_public_stream.h"
 | 
			
		||||
 | 
			
		||||
#if defined (__cplusplus)
 | 
			
		||||
extern "C" {
 | 
			
		||||
| 
						 | 
				
			
			@ -20,10 +20,9 @@
 | 
			
		|||
#ifndef _DDS_PUBLIC_LISTENER_H_
 | 
			
		||||
#define _DDS_PUBLIC_LISTENER_H_
 | 
			
		||||
 | 
			
		||||
#include "ddsc/dds_export.h"
 | 
			
		||||
#include "ddsc/dds_public_impl.h"
 | 
			
		||||
#include "ddsc/dds_public_status.h"
 | 
			
		||||
#include "os/os_public.h"
 | 
			
		||||
#include "dds/export.h"
 | 
			
		||||
#include "dds/ddsc/dds_public_impl.h"
 | 
			
		||||
#include "dds/ddsc/dds_public_status.h"
 | 
			
		||||
 | 
			
		||||
#if defined (__cplusplus)
 | 
			
		||||
extern "C" {
 | 
			
		||||
| 
						 | 
				
			
			@ -55,26 +54,24 @@ typedef struct dds_listener dds_listener_t;
 | 
			
		|||
 *
 | 
			
		||||
 * @return Returns a pointer to the allocated memory for dds_listener_t structure.
 | 
			
		||||
 */
 | 
			
		||||
_Ret_notnull_
 | 
			
		||||
DDS_EXPORT dds_listener_t* dds_create_listener (_In_opt_ void* arg);
 | 
			
		||||
_Ret_notnull_
 | 
			
		||||
DDS_DEPRECATED_EXPORT dds_listener_t* dds_listener_create (_In_opt_ void* arg);
 | 
			
		||||
DDS_EXPORT dds_listener_t* dds_create_listener (void* arg);
 | 
			
		||||
DDS_DEPRECATED_EXPORT dds_listener_t* dds_listener_create (void* arg);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Delete the memory allocated to listener structure
 | 
			
		||||
 *
 | 
			
		||||
 * @param[in] listener pointer to the listener struct to delete
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_delete_listener (_In_ _Post_invalid_ dds_listener_t * __restrict listener);
 | 
			
		||||
DDS_DEPRECATED_EXPORT void dds_listener_delete (_In_ _Post_invalid_ dds_listener_t * __restrict listener);
 | 
			
		||||
DDS_EXPORT void dds_delete_listener (dds_listener_t * __restrict listener);
 | 
			
		||||
DDS_DEPRECATED_EXPORT void dds_listener_delete (dds_listener_t * __restrict listener);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Reset the listener structure contents to ::DDS_LUNSET
 | 
			
		||||
 *
 | 
			
		||||
 * @param[in,out] listener pointer to the listener struct to reset
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_reset_listener (_Out_ dds_listener_t * __restrict listener);
 | 
			
		||||
DDS_DEPRECATED_EXPORT void dds_listener_reset (_Out_ dds_listener_t * __restrict listener);
 | 
			
		||||
DDS_EXPORT void dds_reset_listener (dds_listener_t * __restrict listener);
 | 
			
		||||
DDS_DEPRECATED_EXPORT void dds_listener_reset (dds_listener_t * __restrict listener);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Copy the listener callbacks from source to destination
 | 
			
		||||
| 
						 | 
				
			
			@ -82,8 +79,8 @@ DDS_DEPRECATED_EXPORT void dds_listener_reset (_Out_ dds_listener_t * __restrict
 | 
			
		|||
 * @param[in,out] dst The pointer to the destination listener structure, where the content is to copied
 | 
			
		||||
 * @param[in] src The pointer to the source listener structure to be copied
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_copy_listener (_Out_ dds_listener_t * __restrict dst, _In_ const dds_listener_t * __restrict src);
 | 
			
		||||
DDS_DEPRECATED_EXPORT void dds_listener_copy (_Out_ dds_listener_t * __restrict dst, _In_ const dds_listener_t * __restrict src);
 | 
			
		||||
DDS_EXPORT void dds_copy_listener (dds_listener_t * __restrict dst, const dds_listener_t * __restrict src);
 | 
			
		||||
DDS_DEPRECATED_EXPORT void dds_listener_copy (dds_listener_t * __restrict dst, const dds_listener_t * __restrict src);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Copy the listener callbacks from source to destination, unless already set
 | 
			
		||||
| 
						 | 
				
			
			@ -94,8 +91,8 @@ DDS_DEPRECATED_EXPORT void dds_listener_copy (_Out_ dds_listener_t * __restrict
 | 
			
		|||
 * @param[in,out] dst The pointer to the destination listener structure, where the content is merged
 | 
			
		||||
 * @param[in] src The pointer to the source listener structure to be copied
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_merge_listener (_Inout_ dds_listener_t * __restrict dst, _In_ const dds_listener_t * __restrict src);
 | 
			
		||||
DDS_DEPRECATED_EXPORT void dds_listener_merge (_Inout_ dds_listener_t * __restrict dst, _In_ const dds_listener_t * __restrict src);
 | 
			
		||||
DDS_EXPORT void dds_merge_listener (dds_listener_t * __restrict dst, const dds_listener_t * __restrict src);
 | 
			
		||||
DDS_DEPRECATED_EXPORT void dds_listener_merge (dds_listener_t * __restrict dst, const dds_listener_t * __restrict src);
 | 
			
		||||
 | 
			
		||||
/************************************************************************************************
 | 
			
		||||
 *  Setters
 | 
			
		||||
| 
						 | 
				
			
			@ -107,7 +104,7 @@ DDS_DEPRECATED_EXPORT void dds_listener_merge (_Inout_ dds_listener_t * __restri
 | 
			
		|||
 * @param listener The pointer to the listener structure, where the callback will be set
 | 
			
		||||
 * @param callback The callback to set in the listener, can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lset_inconsistent_topic (_Inout_ dds_listener_t * __restrict listener, _In_opt_ dds_on_inconsistent_topic_fn callback);
 | 
			
		||||
DDS_EXPORT void dds_lset_inconsistent_topic (dds_listener_t * __restrict listener, dds_on_inconsistent_topic_fn callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the liveliness_lost callback in the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -115,7 +112,7 @@ DDS_EXPORT void dds_lset_inconsistent_topic (_Inout_ dds_listener_t * __restrict
 | 
			
		|||
 * @param[out] listener The pointer to the listener structure, where the callback will be set
 | 
			
		||||
 * @param[in] callback The callback to set in the listener, can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lset_liveliness_lost (_Inout_ dds_listener_t * __restrict listener, _In_opt_ dds_on_liveliness_lost_fn callback);
 | 
			
		||||
DDS_EXPORT void dds_lset_liveliness_lost (dds_listener_t * __restrict listener, dds_on_liveliness_lost_fn callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the offered_deadline_missed callback in the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -123,7 +120,7 @@ DDS_EXPORT void dds_lset_liveliness_lost (_Inout_ dds_listener_t * __restrict li
 | 
			
		|||
 * @param[in,out] listener The pointer to the listener structure, where the callback will be set
 | 
			
		||||
 * @param[in] callback The callback to set in the listener, can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lset_offered_deadline_missed (_Inout_ dds_listener_t * __restrict listener, _In_opt_ dds_on_offered_deadline_missed_fn callback);
 | 
			
		||||
DDS_EXPORT void dds_lset_offered_deadline_missed (dds_listener_t * __restrict listener, dds_on_offered_deadline_missed_fn callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the offered_incompatible_qos callback in the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -131,7 +128,7 @@ DDS_EXPORT void dds_lset_offered_deadline_missed (_Inout_ dds_listener_t * __res
 | 
			
		|||
 * @param[in,out] listener The pointer to the listener structure, where the callback will be set
 | 
			
		||||
 * @param[in] callback The callback to set in the listener, can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lset_offered_incompatible_qos (_Inout_ dds_listener_t * __restrict listener, _In_opt_ dds_on_offered_incompatible_qos_fn callback);
 | 
			
		||||
DDS_EXPORT void dds_lset_offered_incompatible_qos (dds_listener_t * __restrict listener, dds_on_offered_incompatible_qos_fn callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the data_on_readers callback in the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -139,7 +136,7 @@ DDS_EXPORT void dds_lset_offered_incompatible_qos (_Inout_ dds_listener_t * __re
 | 
			
		|||
 * @param[in,out] listener The pointer to the listener structure, where the callback will be set
 | 
			
		||||
 * @param[in] callback The callback to set in the listener, can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lset_data_on_readers (_Inout_ dds_listener_t * __restrict listener, _In_opt_ dds_on_data_on_readers_fn callback);
 | 
			
		||||
DDS_EXPORT void dds_lset_data_on_readers (dds_listener_t * __restrict listener, dds_on_data_on_readers_fn callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the sample_lost callback in the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -147,7 +144,7 @@ DDS_EXPORT void dds_lset_data_on_readers (_Inout_ dds_listener_t * __restrict li
 | 
			
		|||
 * @param[in,out] listener The pointer to the listener structure, where the callback will be set
 | 
			
		||||
 * @param[in] callback The callback to set in the listener, can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lset_sample_lost (_Inout_ dds_listener_t * __restrict listener, _In_opt_ dds_on_sample_lost_fn callback);
 | 
			
		||||
DDS_EXPORT void dds_lset_sample_lost (dds_listener_t * __restrict listener, dds_on_sample_lost_fn callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the data_available callback in the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -155,7 +152,7 @@ DDS_EXPORT void dds_lset_sample_lost (_Inout_ dds_listener_t * __restrict listen
 | 
			
		|||
 * @param[in,out] listener The pointer to the listener structure, where the callback will be set
 | 
			
		||||
 * @param[in] callback The callback to set in the listener, can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lset_data_available (_Inout_ dds_listener_t * __restrict listener, _In_opt_ dds_on_data_available_fn callback);
 | 
			
		||||
DDS_EXPORT void dds_lset_data_available (dds_listener_t * __restrict listener, dds_on_data_available_fn callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the sample_rejected callback in the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -163,7 +160,7 @@ DDS_EXPORT void dds_lset_data_available (_Inout_ dds_listener_t * __restrict lis
 | 
			
		|||
 * @param[in,out] listener The pointer to the listener structure, where the callback will be set
 | 
			
		||||
 * @param[in] callback The callback to set in the listener, can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lset_sample_rejected (_Inout_ dds_listener_t * __restrict listener, _In_opt_ dds_on_sample_rejected_fn callback);
 | 
			
		||||
DDS_EXPORT void dds_lset_sample_rejected (dds_listener_t * __restrict listener, dds_on_sample_rejected_fn callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the liveliness_changed callback in the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -171,7 +168,7 @@ DDS_EXPORT void dds_lset_sample_rejected (_Inout_ dds_listener_t * __restrict li
 | 
			
		|||
 * @param[in,out] listener The pointer to the listener structure, where the callback will be set
 | 
			
		||||
 * @param[in] callback The callback to set in the listener, can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lset_liveliness_changed (_Inout_ dds_listener_t * __restrict listener, _In_opt_ dds_on_liveliness_changed_fn callback);
 | 
			
		||||
DDS_EXPORT void dds_lset_liveliness_changed (dds_listener_t * __restrict listener, dds_on_liveliness_changed_fn callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the requested_deadline_missed callback in the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -179,7 +176,7 @@ DDS_EXPORT void dds_lset_liveliness_changed (_Inout_ dds_listener_t * __restrict
 | 
			
		|||
 * @param[in,out] listener The pointer to the listener structure, where the callback will be set
 | 
			
		||||
 * @param[in] callback The callback to set in the listener, can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lset_requested_deadline_missed (_Inout_ dds_listener_t * __restrict listener, _In_opt_ dds_on_requested_deadline_missed_fn callback);
 | 
			
		||||
DDS_EXPORT void dds_lset_requested_deadline_missed (dds_listener_t * __restrict listener, dds_on_requested_deadline_missed_fn callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the requested_incompatible_qos callback in the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -187,7 +184,7 @@ DDS_EXPORT void dds_lset_requested_deadline_missed (_Inout_ dds_listener_t * __r
 | 
			
		|||
 * @param[in,out] listener The pointer to the listener structure, where the callback will be set
 | 
			
		||||
 * @param[in] callback The callback to set in the listener, can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lset_requested_incompatible_qos (_Inout_ dds_listener_t * __restrict listener, _In_opt_ dds_on_requested_incompatible_qos_fn callback);
 | 
			
		||||
DDS_EXPORT void dds_lset_requested_incompatible_qos (dds_listener_t * __restrict listener, dds_on_requested_incompatible_qos_fn callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the publication_matched callback in the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -195,7 +192,7 @@ DDS_EXPORT void dds_lset_requested_incompatible_qos (_Inout_ dds_listener_t * __
 | 
			
		|||
 * @param[in,out] listener The pointer to the listener structure, where the callback will be set
 | 
			
		||||
 * @param[in] callback The callback to set in the listener, can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lset_publication_matched (_Inout_ dds_listener_t * __restrict listener, _In_opt_ dds_on_publication_matched_fn callback);
 | 
			
		||||
DDS_EXPORT void dds_lset_publication_matched (dds_listener_t * __restrict listener, dds_on_publication_matched_fn callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the subscription_matched callback in the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -203,7 +200,7 @@ DDS_EXPORT void dds_lset_publication_matched (_Inout_ dds_listener_t * __restric
 | 
			
		|||
 * @param[in,out] listener The pointer to the listener structure, where the callback will be set
 | 
			
		||||
 * @param[in] callback The callback to set in the listener, can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lset_subscription_matched (_Inout_ dds_listener_t * __restrict listener, _In_opt_ dds_on_subscription_matched_fn callback);
 | 
			
		||||
DDS_EXPORT void dds_lset_subscription_matched (dds_listener_t * __restrict listener, dds_on_subscription_matched_fn callback);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/************************************************************************************************
 | 
			
		||||
| 
						 | 
				
			
			@ -216,7 +213,7 @@ DDS_EXPORT void dds_lset_subscription_matched (_Inout_ dds_listener_t * __restri
 | 
			
		|||
 * @param[in] listener The pointer to the listener structure, where the callback will be retrieved from
 | 
			
		||||
 * @param[in,out] callback Pointer where the retrieved callback can be stored; can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lget_inconsistent_topic (_In_ const dds_listener_t * __restrict listener, _Outptr_result_maybenull_ dds_on_inconsistent_topic_fn *callback);
 | 
			
		||||
DDS_EXPORT void dds_lget_inconsistent_topic (const dds_listener_t * __restrict listener, dds_on_inconsistent_topic_fn *callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the liveliness_lost callback from the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -224,7 +221,7 @@ DDS_EXPORT void dds_lget_inconsistent_topic (_In_ const dds_listener_t * __restr
 | 
			
		|||
 * @param[in] listener The pointer to the listener structure, where the callback will be retrieved from
 | 
			
		||||
 * @param[in,out] callback Pointer where the retrieved callback can be stored; can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lget_liveliness_lost (_In_ const dds_listener_t * __restrict listener, _Outptr_result_maybenull_ dds_on_liveliness_lost_fn *callback);
 | 
			
		||||
DDS_EXPORT void dds_lget_liveliness_lost (const dds_listener_t * __restrict listener, dds_on_liveliness_lost_fn *callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the offered_deadline_missed callback from the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -232,7 +229,7 @@ DDS_EXPORT void dds_lget_liveliness_lost (_In_ const dds_listener_t * __restrict
 | 
			
		|||
 * @param[in] listener The pointer to the listener structure, where the callback will be retrieved from
 | 
			
		||||
 * @param[in,out] callback Pointer where the retrieved callback can be stored; can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lget_offered_deadline_missed (_In_ const dds_listener_t * __restrict listener, _Outptr_result_maybenull_ dds_on_offered_deadline_missed_fn *callback);
 | 
			
		||||
DDS_EXPORT void dds_lget_offered_deadline_missed (const dds_listener_t * __restrict listener, dds_on_offered_deadline_missed_fn *callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the offered_incompatible_qos callback from the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -240,7 +237,7 @@ DDS_EXPORT void dds_lget_offered_deadline_missed (_In_ const dds_listener_t * __
 | 
			
		|||
 * @param[in] listener The pointer to the listener structure, where the callback will be retrieved from
 | 
			
		||||
 * @param[in,out] callback Pointer where the retrieved callback can be stored; can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lget_offered_incompatible_qos (_In_ const dds_listener_t * __restrict listener, _Outptr_result_maybenull_ dds_on_offered_incompatible_qos_fn *callback);
 | 
			
		||||
DDS_EXPORT void dds_lget_offered_incompatible_qos (const dds_listener_t * __restrict listener, dds_on_offered_incompatible_qos_fn *callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the data_on_readers callback from the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -248,7 +245,7 @@ DDS_EXPORT void dds_lget_offered_incompatible_qos (_In_ const dds_listener_t * _
 | 
			
		|||
 * @param[in] listener The pointer to the listener structure, where the callback will be retrieved from
 | 
			
		||||
 * @param[in,out] callback Pointer where the retrieved callback can be stored; can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lget_data_on_readers (_In_ const dds_listener_t * __restrict listener, _Outptr_result_maybenull_ dds_on_data_on_readers_fn *callback);
 | 
			
		||||
DDS_EXPORT void dds_lget_data_on_readers (const dds_listener_t * __restrict listener, dds_on_data_on_readers_fn *callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the sample_lost callback from the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -256,7 +253,7 @@ DDS_EXPORT void dds_lget_data_on_readers (_In_ const dds_listener_t * __restrict
 | 
			
		|||
 * @param[in] listener The pointer to the listener structure, where the callback will be retrieved from
 | 
			
		||||
 * @param[in,out] callback Pointer where the retrieved callback can be stored; can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lget_sample_lost (_In_ const dds_listener_t *__restrict listener, _Outptr_result_maybenull_ dds_on_sample_lost_fn *callback);
 | 
			
		||||
DDS_EXPORT void dds_lget_sample_lost (const dds_listener_t *__restrict listener, dds_on_sample_lost_fn *callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the data_available callback from the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -264,7 +261,7 @@ DDS_EXPORT void dds_lget_sample_lost (_In_ const dds_listener_t *__restrict list
 | 
			
		|||
 * @param[in] listener The pointer to the listener structure, where the callback will be retrieved from
 | 
			
		||||
 * @param[in,out] callback Pointer where the retrieved callback can be stored; can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lget_data_available (_In_ const dds_listener_t *__restrict listener, _Outptr_result_maybenull_ dds_on_data_available_fn *callback);
 | 
			
		||||
DDS_EXPORT void dds_lget_data_available (const dds_listener_t *__restrict listener, dds_on_data_available_fn *callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the sample_rejected callback from the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -272,7 +269,7 @@ DDS_EXPORT void dds_lget_data_available (_In_ const dds_listener_t *__restrict l
 | 
			
		|||
 * @param[in] listener The pointer to the listener structure, where the callback will be retrieved from
 | 
			
		||||
 * @param[in,out] callback Pointer where the retrieved callback can be stored; can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lget_sample_rejected (_In_ const dds_listener_t  *__restrict listener, _Outptr_result_maybenull_ dds_on_sample_rejected_fn *callback);
 | 
			
		||||
DDS_EXPORT void dds_lget_sample_rejected (const dds_listener_t  *__restrict listener, dds_on_sample_rejected_fn *callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the liveliness_changed callback from the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -280,7 +277,7 @@ DDS_EXPORT void dds_lget_sample_rejected (_In_ const dds_listener_t  *__restrict
 | 
			
		|||
 * @param[in] listener The pointer to the listener structure, where the callback will be retrieved from
 | 
			
		||||
 * @param[in,out] callback Pointer where the retrieved callback can be stored; can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lget_liveliness_changed (_In_ const dds_listener_t * __restrict listener, _Outptr_result_maybenull_ dds_on_liveliness_changed_fn *callback);
 | 
			
		||||
DDS_EXPORT void dds_lget_liveliness_changed (const dds_listener_t * __restrict listener, dds_on_liveliness_changed_fn *callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the requested_deadline_missed callback from the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -288,7 +285,7 @@ DDS_EXPORT void dds_lget_liveliness_changed (_In_ const dds_listener_t * __restr
 | 
			
		|||
 * @param[in] listener The pointer to the listener structure, where the callback will be retrieved from
 | 
			
		||||
 * @param[in,out] callback Pointer where the retrieved callback can be stored; can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lget_requested_deadline_missed (_In_ const dds_listener_t * __restrict listener, _Outptr_result_maybenull_ dds_on_requested_deadline_missed_fn *callback);
 | 
			
		||||
DDS_EXPORT void dds_lget_requested_deadline_missed (const dds_listener_t * __restrict listener, dds_on_requested_deadline_missed_fn *callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the requested_incompatible_qos callback from the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -296,7 +293,7 @@ DDS_EXPORT void dds_lget_requested_deadline_missed (_In_ const dds_listener_t *
 | 
			
		|||
 * @param[in] listener The pointer to the listener structure, where the callback will be retrieved from
 | 
			
		||||
 * @param[in,out] callback Pointer where the retrieved callback can be stored; can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lget_requested_incompatible_qos (_In_ const dds_listener_t * __restrict listener, _Outptr_result_maybenull_ dds_on_requested_incompatible_qos_fn *callback);
 | 
			
		||||
DDS_EXPORT void dds_lget_requested_incompatible_qos (const dds_listener_t * __restrict listener, dds_on_requested_incompatible_qos_fn *callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the publication_matched callback from the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -304,7 +301,7 @@ DDS_EXPORT void dds_lget_requested_incompatible_qos (_In_ const dds_listener_t *
 | 
			
		|||
 * @param[in] listener The pointer to the listener structure, where the callback will be retrieved from
 | 
			
		||||
 * @param[in,out] callback Pointer where the retrieved callback can be stored; can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lget_publication_matched (_In_ const dds_listener_t * __restrict listener, _Outptr_result_maybenull_ dds_on_publication_matched_fn *callback);
 | 
			
		||||
DDS_EXPORT void dds_lget_publication_matched (const dds_listener_t * __restrict listener, dds_on_publication_matched_fn *callback);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the subscription_matched callback from the listener structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -312,7 +309,7 @@ DDS_EXPORT void dds_lget_publication_matched (_In_ const dds_listener_t * __rest
 | 
			
		|||
 * @param[in] callback Pointer where the retrieved callback can be stored; can be NULL, ::DDS_LUNSET or a valid callback pointer
 | 
			
		||||
 * @param[in,out] listener The pointer to the listener structure, where the callback will be retrieved from
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_lget_subscription_matched (_In_ const dds_listener_t * __restrict listener, _Outptr_result_maybenull_ dds_on_subscription_matched_fn *callback);
 | 
			
		||||
DDS_EXPORT void dds_lget_subscription_matched (const dds_listener_t * __restrict listener, dds_on_subscription_matched_fn *callback);
 | 
			
		||||
 | 
			
		||||
#if defined (__cplusplus)
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -20,8 +20,7 @@
 | 
			
		|||
#ifndef DDS_QOS_H
 | 
			
		||||
#define DDS_QOS_H
 | 
			
		||||
 | 
			
		||||
#include "os/os_public.h"
 | 
			
		||||
#include "ddsc/dds_export.h"
 | 
			
		||||
#include "dds/export.h"
 | 
			
		||||
 | 
			
		||||
#if defined (__cplusplus)
 | 
			
		||||
extern "C" {
 | 
			
		||||
| 
						 | 
				
			
			@ -142,10 +141,8 @@ dds_presentation_access_scope_kind_t;
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - Pointer to the initialized dds_qos_t structure, NULL if unsuccessful.
 | 
			
		||||
 */
 | 
			
		||||
_Ret_notnull_
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
dds_qos_t * dds_create_qos (void);
 | 
			
		||||
_Ret_notnull_
 | 
			
		||||
DDS_DEPRECATED_EXPORT
 | 
			
		||||
dds_qos_t * dds_qos_create (void);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -154,14 +151,11 @@ dds_qos_t * dds_qos_create (void);
 | 
			
		|||
 *
 | 
			
		||||
 * @param[in] qos - Pointer to dds_qos_t structure
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_delete_qos (
 | 
			
		||||
    _In_ _Post_invalid_ dds_qos_t * __restrict qos
 | 
			
		||||
);
 | 
			
		||||
DDS_DEPRECATED_EXPORT
 | 
			
		||||
void dds_qos_delete (
 | 
			
		||||
    _In_ _Post_invalid_ dds_qos_t * __restrict qos
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_delete_qos (dds_qos_t * __restrict qos);
 | 
			
		||||
 | 
			
		||||
DDS_DEPRECATED_EXPORT void
 | 
			
		||||
dds_qos_delete (dds_qos_t * __restrict qos);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Reset a QoS-policies structure to default values
 | 
			
		||||
| 
						 | 
				
			
			@ -169,11 +163,10 @@ void dds_qos_delete (
 | 
			
		|||
 * @param[in,out] qos - Pointer to the dds_qos_t structure
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_reset_qos(
 | 
			
		||||
    _Out_ dds_qos_t * __restrict qos);
 | 
			
		||||
dds_reset_qos(dds_qos_t * __restrict qos);
 | 
			
		||||
 | 
			
		||||
DDS_DEPRECATED_EXPORT
 | 
			
		||||
void dds_qos_reset (
 | 
			
		||||
    _Out_ dds_qos_t * __restrict qos
 | 
			
		||||
void dds_qos_reset (dds_qos_t * __restrict qos
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -184,16 +177,11 @@ void dds_qos_reset (
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - Return-code indicating success or failure
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
dds_return_t dds_copy_qos (
 | 
			
		||||
    _Out_ dds_qos_t * __restrict dst,
 | 
			
		||||
    _In_ const dds_qos_t * __restrict src
 | 
			
		||||
);
 | 
			
		||||
DDS_DEPRECATED_EXPORT
 | 
			
		||||
dds_return_t dds_qos_copy (
 | 
			
		||||
    _Out_ dds_qos_t * __restrict dst,
 | 
			
		||||
    _In_ const dds_qos_t * __restrict src
 | 
			
		||||
);
 | 
			
		||||
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);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Copy all QoS-policies from one structure to another, unless already set
 | 
			
		||||
| 
						 | 
				
			
			@ -203,18 +191,11 @@ dds_return_t dds_qos_copy (
 | 
			
		|||
 * @param[in,out] dst - Pointer to the destination qos structure
 | 
			
		||||
 * @param[in] src - Pointer to the source qos structure
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_merge_qos
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict dst,
 | 
			
		||||
    _In_ const dds_qos_t * __restrict src
 | 
			
		||||
);
 | 
			
		||||
DDS_DEPRECATED_EXPORT
 | 
			
		||||
void dds_qos_merge
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict dst,
 | 
			
		||||
    _In_ 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);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Copy all QoS-policies from one structure to another, unless already set
 | 
			
		||||
| 
						 | 
				
			
			@ -224,12 +205,8 @@ void dds_qos_merge
 | 
			
		|||
 * @param[in,out] dst - Pointer to the destination qos structure
 | 
			
		||||
 * @param[in] src - Pointer to the source qos structure
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
bool dds_qos_equal
 | 
			
		||||
(
 | 
			
		||||
    _In_ const dds_qos_t * __restrict a,
 | 
			
		||||
    _In_ const dds_qos_t * __restrict b
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT bool
 | 
			
		||||
dds_qos_equal (const dds_qos_t * __restrict a, const dds_qos_t * __restrict b);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the userdata of a qos structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -238,13 +215,11 @@ bool dds_qos_equal
 | 
			
		|||
 * @param[in] value - Pointer to the userdata
 | 
			
		||||
 * @param[in] sz - Size of userdata stored in value
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_userdata
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_reads_bytes_opt_(sz) const void * __restrict value,
 | 
			
		||||
    _In_ size_t sz
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_qset_userdata (
 | 
			
		||||
  dds_qos_t * __restrict qos,
 | 
			
		||||
  const void * __restrict value,
 | 
			
		||||
  size_t sz);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the topicdata of a qos structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -253,13 +228,11 @@ void dds_qset_userdata
 | 
			
		|||
 * @param[in] value - Pointer to the topicdata
 | 
			
		||||
 * @param[in] sz - Size of the topicdata stored in value
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_topicdata
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_reads_bytes_opt_(sz) const void * __restrict value,
 | 
			
		||||
    _In_ size_t sz
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_qset_topicdata (
 | 
			
		||||
  dds_qos_t * __restrict qos,
 | 
			
		||||
  const void * __restrict value,
 | 
			
		||||
  size_t sz);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the groupdata of a qos structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -268,13 +241,11 @@ void dds_qset_topicdata
 | 
			
		|||
 * @param[in] value - Pointer to the group data
 | 
			
		||||
 * @param[in] sz - Size of groupdata stored in value
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_groupdata
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_reads_bytes_opt_(sz) const void * __restrict value,
 | 
			
		||||
    _In_ size_t sz
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_qset_groupdata (
 | 
			
		||||
  dds_qos_t * __restrict qos,
 | 
			
		||||
  const void * __restrict value,
 | 
			
		||||
  size_t sz);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the durability policy of a qos structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -282,12 +253,8 @@ void dds_qset_groupdata
 | 
			
		|||
 * @param[in,out] qos - Pointer to a dds_qos_t structure that will store the policy
 | 
			
		||||
 * @param[in] kind - Durability kind value \ref DCPS_QoS_Durability
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_durability
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_range_(DDS_DURABILITY_VOLATILE, DDS_DURABILITY_PERSISTENT) dds_durability_kind_t kind
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_qset_durability (dds_qos_t * __restrict qos, dds_durability_kind_t kind);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the history policy of a qos structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -296,13 +263,11 @@ void dds_qset_durability
 | 
			
		|||
 * @param[in] kind - History kind value \ref DCPS_QoS_History
 | 
			
		||||
 * @param[in] depth - History depth value \ref DCPS_QoS_History
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_history
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_range_(DDS_HISTORY_KEEP_LAST, DDS_HISTORY_KEEP_ALL) dds_history_kind_t kind,
 | 
			
		||||
    _In_range_(>=, DDS_LENGTH_UNLIMITED) int32_t depth
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_qset_history (
 | 
			
		||||
  dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_history_kind_t kind,
 | 
			
		||||
  int32_t depth);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the resource limits policy of a qos structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -312,15 +277,12 @@ void dds_qset_history
 | 
			
		|||
 * @param[in] max_instances - Number of instances resource-limit value
 | 
			
		||||
 * @param[in] max_samples_per_instance - Number of samples per instance resource-limit value
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_resource_limits
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_range_(>=, DDS_LENGTH_UNLIMITED) int32_t max_samples,
 | 
			
		||||
    _In_range_(>=, DDS_LENGTH_UNLIMITED) int32_t max_instances,
 | 
			
		||||
    _In_range_(>=, DDS_LENGTH_UNLIMITED) int32_t max_samples_per_instance
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
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);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the presentation policy of a qos structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -330,13 +292,12 @@ void dds_qset_resource_limits
 | 
			
		|||
 * @param[in] coherent_access - Coherent access enable value
 | 
			
		||||
 * @param[in] ordered_access - Ordered access enable value
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_qset_presentation
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_range_(DDS_PRESENTATION_INSTANCE, DDS_PRESENTATION_GROUP) dds_presentation_access_scope_kind_t access_scope,
 | 
			
		||||
    _In_ bool coherent_access,
 | 
			
		||||
    _In_ bool ordered_access
 | 
			
		||||
);
 | 
			
		||||
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);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the lifespan policy of a qos structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -344,12 +305,10 @@ DDS_EXPORT void dds_qset_presentation
 | 
			
		|||
 * @param[in,out] qos - Pointer to a dds_qos_t structure that will store the policy
 | 
			
		||||
 * @param[in] lifespan - Lifespan duration (expiration time relative to source timestamp of a sample)
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_lifespan
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_range_(0, DDS_INFINITY) dds_duration_t lifespan
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_qset_lifespan (
 | 
			
		||||
  dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_duration_t lifespan);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the deadline policy of a qos structure.
 | 
			
		||||
| 
						 | 
				
			
			@ -357,12 +316,10 @@ void dds_qset_lifespan
 | 
			
		|||
 * @param[in,out] qos - Pointer to a dds_qos_t structure that will store the policy
 | 
			
		||||
 * @param[in] deadline - Deadline duration
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_deadline
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_range_(0, DDS_INFINITY) dds_duration_t deadline
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_qset_deadline (
 | 
			
		||||
  dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_duration_t deadline);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the latency-budget policy of a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -370,12 +327,10 @@ void dds_qset_deadline
 | 
			
		|||
 * @param[in,out] qos - Pointer to a dds_qos_t structure that will store the policy
 | 
			
		||||
 * @param[in] duration - Latency budget duration
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_latency_budget
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_range_(0, DDS_INFINITY) dds_duration_t duration
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_qset_latency_budget (
 | 
			
		||||
  dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_duration_t duration);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the ownership policy of a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -383,12 +338,10 @@ void dds_qset_latency_budget
 | 
			
		|||
 * @param[in,out] qos - Pointer to a dds_qos_t structure that will store the policy
 | 
			
		||||
 * @param[in] kind - Ownership kind
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_ownership
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_range_(DDS_OWNERSHIP_SHARED, DDS_OWNERSHIP_EXCLUSIVE) dds_ownership_kind_t kind
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_qset_ownership (
 | 
			
		||||
  dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_ownership_kind_t kind);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the ownership strength policy of a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -396,12 +349,8 @@ void dds_qset_ownership
 | 
			
		|||
 * param[in,out] qos - Pointer to a dds_qos_t structure that will store the policy
 | 
			
		||||
 * param[in] value - Ownership strength value
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_ownership_strength
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_ int32_t value
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_qset_ownership_strength (dds_qos_t * __restrict qos, int32_t value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the liveliness policy of a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -410,13 +359,11 @@ void dds_qset_ownership_strength
 | 
			
		|||
 * param[in] kind - Liveliness kind
 | 
			
		||||
 * param[in[ lease_duration - Lease duration
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_liveliness
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_range_(DDS_LIVELINESS_AUTOMATIC, DDS_LIVELINESS_MANUAL_BY_TOPIC) dds_liveliness_kind_t kind,
 | 
			
		||||
    _In_range_(0, DDS_INFINITY) dds_duration_t lease_duration
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_qset_liveliness (
 | 
			
		||||
  dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_liveliness_kind_t kind,
 | 
			
		||||
  dds_duration_t lease_duration);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the time-based filter policy of a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -424,12 +371,10 @@ void dds_qset_liveliness
 | 
			
		|||
 * @param[in,out] qos - Pointer to a dds_qos_t structure that will store the policy
 | 
			
		||||
 * @param[in] minimum_separation - Minimum duration between sample delivery for an instance
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_time_based_filter
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_range_(0, DDS_INFINITY) dds_duration_t minimum_separation
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_qset_time_based_filter (
 | 
			
		||||
  dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_duration_t minimum_separation);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the partition policy of a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -438,13 +383,11 @@ void dds_qset_time_based_filter
 | 
			
		|||
 * @param[in] n - Number of partitions stored in ps
 | 
			
		||||
 * @param[in[ ps - Pointer to string(s) storing partition name(s)
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_partition
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_ uint32_t n,
 | 
			
		||||
    _In_count_(n) _Deref_pre_z_ const char ** __restrict ps
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_qset_partition (
 | 
			
		||||
  dds_qos_t * __restrict qos,
 | 
			
		||||
  uint32_t n,
 | 
			
		||||
  const char ** __restrict ps);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the reliability policy of a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -453,13 +396,11 @@ void dds_qset_partition
 | 
			
		|||
 * @param[in] kind - Reliability kind
 | 
			
		||||
 * @param[in] max_blocking_time - Max blocking duration applied when kind is reliable.
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_reliability
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_range_(DDS_RELIABILITY_BEST_EFFORT, DDS_RELIABILITY_RELIABLE) dds_reliability_kind_t kind,
 | 
			
		||||
    _In_range_(0, DDS_INFINITY) dds_duration_t max_blocking_time
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_qset_reliability (
 | 
			
		||||
  dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_reliability_kind_t kind,
 | 
			
		||||
  dds_duration_t max_blocking_time);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the transport-priority policy of a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -467,12 +408,8 @@ void dds_qset_reliability
 | 
			
		|||
 * @param[in,out] qos - Pointer to a dds_qos_t structure that will store the policy
 | 
			
		||||
 * @param[in] value - Priority value
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_transport_priority
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_ int32_t value
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_qset_transport_priority (dds_qos_t * __restrict qos, int32_t value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the destination-order policy of a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -480,13 +417,10 @@ void dds_qset_transport_priority
 | 
			
		|||
 * @param[in,out] qos - Pointer to a dds_qos_t structure that will store the policy
 | 
			
		||||
 * @param[in] kind - Destination-order kind
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_destination_order
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_range_(DDS_DESTINATIONORDER_BY_RECEPTION_TIMESTAMP,
 | 
			
		||||
        DDS_DESTINATIONORDER_BY_SOURCE_TIMESTAMP) dds_destination_order_kind_t kind
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_qset_destination_order (
 | 
			
		||||
  dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_destination_order_kind_t kind);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the writer data-lifecycle policy of a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -494,12 +428,8 @@ void dds_qset_destination_order
 | 
			
		|||
 * @param[in,out] qos - Pointer to a dds_qos_t structure that will store the policy
 | 
			
		||||
 * @param[in] autodispose_unregistered_instances - Automatic disposal of unregistered instances
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_writer_data_lifecycle
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_ bool autodispose
 | 
			
		||||
);
 | 
			
		||||
DDS_EXPORT void
 | 
			
		||||
dds_qset_writer_data_lifecycle (dds_qos_t * __restrict qos, bool autodispose);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the reader data-lifecycle policy of a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -508,13 +438,11 @@ void dds_qset_writer_data_lifecycle
 | 
			
		|||
 * @param[in] autopurge_nowriter_samples_delay - Delay for purging of samples from instances in a no-writers state
 | 
			
		||||
 * @param[in] autopurge_disposed_samples_delay - Delay for purging of samples from disposed instances
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_reader_data_lifecycle
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_range_(0, DDS_INFINITY) dds_duration_t autopurge_nowriter_samples_delay,
 | 
			
		||||
    _In_range_(0, DDS_INFINITY) dds_duration_t autopurge_disposed_samples_delay
 | 
			
		||||
);
 | 
			
		||||
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);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the durability-service policy of a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -527,17 +455,15 @@ void dds_qset_reader_data_lifecycle
 | 
			
		|||
 * @param[in] max_instances - Number of instances resource-limit policy applied by the durability service
 | 
			
		||||
 * @param[in] max_samples_per_instance - Number of samples per instance resource-limit policy applied by the durability service
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT
 | 
			
		||||
void dds_qset_durability_service
 | 
			
		||||
(
 | 
			
		||||
    _Inout_ dds_qos_t * __restrict qos,
 | 
			
		||||
    _In_range_(0, DDS_INFINITY) dds_duration_t service_cleanup_delay,
 | 
			
		||||
    _In_range_(DDS_HISTORY_KEEP_LAST, DDS_HISTORY_KEEP_ALL) dds_history_kind_t history_kind,
 | 
			
		||||
    _In_range_(>=, DDS_LENGTH_UNLIMITED) int32_t history_depth,
 | 
			
		||||
    _In_range_(>=, DDS_LENGTH_UNLIMITED) int32_t max_samples,
 | 
			
		||||
    _In_range_(>=, DDS_LENGTH_UNLIMITED) int32_t max_instances,
 | 
			
		||||
    _In_range_(>=, DDS_LENGTH_UNLIMITED) int32_t max_samples_per_instance
 | 
			
		||||
);
 | 
			
		||||
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);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the userdata from a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -603,7 +529,12 @@ DDS_EXPORT bool dds_qget_history (const dds_qos_t * __restrict qos, dds_history_
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - false iff any of the arguments is invalid or the qos is not present in the qos object
 | 
			
		||||
 */
 | 
			
		||||
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_resource_limits (
 | 
			
		||||
  const dds_qos_t * __restrict qos,
 | 
			
		||||
  int32_t *max_samples,
 | 
			
		||||
  int32_t *max_instances,
 | 
			
		||||
  int32_t *max_samples_per_instance);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the presentation policy from a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -615,7 +546,12 @@ DDS_EXPORT bool dds_qget_resource_limits (const dds_qos_t * __restrict qos, int3
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - false iff any of the arguments is invalid or the qos is not present in the qos object
 | 
			
		||||
 */
 | 
			
		||||
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_presentation (
 | 
			
		||||
  const dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_presentation_access_scope_kind_t *access_scope,
 | 
			
		||||
  bool *coherent_access,
 | 
			
		||||
  bool *ordered_access);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the lifespan policy from a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -625,7 +561,10 @@ DDS_EXPORT bool dds_qget_presentation (const dds_qos_t * __restrict qos, dds_pre
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - false iff any of the arguments is invalid or the qos is not present in the qos object
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT bool dds_qget_lifespan (const dds_qos_t * __restrict qos, dds_duration_t *lifespan);
 | 
			
		||||
DDS_EXPORT bool
 | 
			
		||||
dds_qget_lifespan (
 | 
			
		||||
  const dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_duration_t *lifespan);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the deadline policy from a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -635,7 +574,10 @@ DDS_EXPORT bool dds_qget_lifespan (const dds_qos_t * __restrict qos, dds_duratio
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - false iff any of the arguments is invalid or the qos is not present in the qos object
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT bool dds_qget_deadline (const dds_qos_t * __restrict qos, dds_duration_t *deadline);
 | 
			
		||||
DDS_EXPORT bool
 | 
			
		||||
dds_qget_deadline (
 | 
			
		||||
  const dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_duration_t *deadline);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the latency-budget policy from a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -645,7 +587,10 @@ DDS_EXPORT bool dds_qget_deadline (const dds_qos_t * __restrict qos, dds_duratio
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - false iff any of the arguments is invalid or the qos is not present in the qos object
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT bool dds_qget_latency_budget (const dds_qos_t * __restrict qos, dds_duration_t *duration);
 | 
			
		||||
DDS_EXPORT bool
 | 
			
		||||
dds_qget_latency_budget (
 | 
			
		||||
  const dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_duration_t *duration);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the ownership policy from a qos structure
 | 
			
		||||
| 
						 | 
				
			
			@ -655,7 +600,10 @@ DDS_EXPORT bool dds_qget_latency_budget (const dds_qos_t * __restrict qos, dds_d
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - false iff any of the arguments is invalid or the qos is not present in the qos object
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT bool dds_qget_ownership (const dds_qos_t * __restrict qos, dds_ownership_kind_t *kind);
 | 
			
		||||
DDS_EXPORT bool
 | 
			
		||||
dds_qget_ownership (
 | 
			
		||||
  const dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_ownership_kind_t *kind);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the ownership strength qos policy
 | 
			
		||||
| 
						 | 
				
			
			@ -665,7 +613,10 @@ DDS_EXPORT bool dds_qget_ownership (const dds_qos_t * __restrict qos, dds_owners
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - false iff any of the arguments is invalid or the qos is not present in the qos object
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT bool dds_qget_ownership_strength (const dds_qos_t * __restrict qos, int32_t *value);
 | 
			
		||||
DDS_EXPORT bool
 | 
			
		||||
dds_qget_ownership_strength (
 | 
			
		||||
  const dds_qos_t * __restrict qos,
 | 
			
		||||
  int32_t *value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the liveliness qos policy
 | 
			
		||||
| 
						 | 
				
			
			@ -676,7 +627,11 @@ DDS_EXPORT bool dds_qget_ownership_strength (const dds_qos_t * __restrict qos, i
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - false iff any of the arguments is invalid or the qos is not present in the qos object
 | 
			
		||||
 */
 | 
			
		||||
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_liveliness (
 | 
			
		||||
  const dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_liveliness_kind_t *kind,
 | 
			
		||||
  dds_duration_t *lease_duration);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the time-based filter qos policy
 | 
			
		||||
| 
						 | 
				
			
			@ -686,7 +641,10 @@ DDS_EXPORT bool dds_qget_liveliness (const dds_qos_t * __restrict qos, dds_livel
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - false iff any of the arguments is invalid or the qos is not present in the qos object
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT bool dds_qget_time_based_filter (const dds_qos_t * __restrict qos, dds_duration_t *minimum_separation);
 | 
			
		||||
DDS_EXPORT bool
 | 
			
		||||
dds_qget_time_based_filter (
 | 
			
		||||
  const dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_duration_t *minimum_separation);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the partition qos policy
 | 
			
		||||
| 
						 | 
				
			
			@ -697,7 +655,11 @@ DDS_EXPORT bool dds_qget_time_based_filter (const dds_qos_t * __restrict qos, dd
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - false iff any of the arguments is invalid or the qos is not present in the qos object
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT bool dds_qget_partition (const dds_qos_t * __restrict qos, uint32_t *n, char ***ps);
 | 
			
		||||
DDS_EXPORT bool
 | 
			
		||||
dds_qget_partition (
 | 
			
		||||
  const dds_qos_t * __restrict qos,
 | 
			
		||||
  uint32_t *n,
 | 
			
		||||
  char ***ps);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the reliability qos policy
 | 
			
		||||
| 
						 | 
				
			
			@ -708,7 +670,11 @@ DDS_EXPORT bool dds_qget_partition (const dds_qos_t * __restrict qos, uint32_t *
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - false iff any of the arguments is invalid or the qos is not present in the qos object
 | 
			
		||||
 */
 | 
			
		||||
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_reliability (
 | 
			
		||||
  const dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_reliability_kind_t *kind,
 | 
			
		||||
  dds_duration_t *max_blocking_time);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the transport priority qos policy
 | 
			
		||||
| 
						 | 
				
			
			@ -718,7 +684,10 @@ DDS_EXPORT bool dds_qget_reliability (const dds_qos_t * __restrict qos, dds_reli
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - false iff any of the arguments is invalid or the qos is not present in the qos object
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT bool dds_qget_transport_priority (const dds_qos_t * __restrict qos, int32_t *value);
 | 
			
		||||
DDS_EXPORT bool
 | 
			
		||||
dds_qget_transport_priority (
 | 
			
		||||
  const dds_qos_t * __restrict qos,
 | 
			
		||||
  int32_t *value);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the destination-order qos policy
 | 
			
		||||
| 
						 | 
				
			
			@ -728,7 +697,10 @@ DDS_EXPORT bool dds_qget_transport_priority (const dds_qos_t * __restrict qos, i
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - false iff any of the arguments is invalid or the qos is not present in the qos object
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT bool dds_qget_destination_order (const dds_qos_t * __restrict qos, dds_destination_order_kind_t *kind);
 | 
			
		||||
DDS_EXPORT bool
 | 
			
		||||
dds_qget_destination_order (
 | 
			
		||||
  const dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_destination_order_kind_t *kind);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the writer data-lifecycle qos policy
 | 
			
		||||
| 
						 | 
				
			
			@ -738,7 +710,10 @@ DDS_EXPORT bool dds_qget_destination_order (const dds_qos_t * __restrict qos, dd
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - false iff any of the arguments is invalid or the qos is not present in the qos object
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT bool dds_qget_writer_data_lifecycle (const dds_qos_t * __restrict qos, bool *autodispose);
 | 
			
		||||
DDS_EXPORT bool
 | 
			
		||||
dds_qget_writer_data_lifecycle (
 | 
			
		||||
  const dds_qos_t * __restrict qos,
 | 
			
		||||
  bool *autodispose);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the reader data-lifecycle qos policy
 | 
			
		||||
| 
						 | 
				
			
			@ -749,7 +724,11 @@ DDS_EXPORT bool dds_qget_writer_data_lifecycle (const dds_qos_t * __restrict qos
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - false iff any of the arguments is invalid or the qos is not present in the qos object
 | 
			
		||||
 */
 | 
			
		||||
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_reader_data_lifecycle (
 | 
			
		||||
  const dds_qos_t * __restrict qos,
 | 
			
		||||
  dds_duration_t *autopurge_nowriter_samples_delay,
 | 
			
		||||
  dds_duration_t *autopurge_disposed_samples_delay);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the durability-service qos policy values.
 | 
			
		||||
| 
						 | 
				
			
			@ -764,7 +743,15 @@ DDS_EXPORT bool dds_qget_reader_data_lifecycle (const dds_qos_t * __restrict qos
 | 
			
		|||
 *
 | 
			
		||||
 * @returns - false iff any of the arguments is invalid or the qos is not present in the qos object
 | 
			
		||||
 */
 | 
			
		||||
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_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);
 | 
			
		||||
 | 
			
		||||
#if defined (__cplusplus)
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -20,8 +20,7 @@
 | 
			
		|||
#ifndef DDS_STATUS_H
 | 
			
		||||
#define DDS_STATUS_H
 | 
			
		||||
 | 
			
		||||
#include "os/os_public.h"
 | 
			
		||||
#include "ddsc/dds_export.h"
 | 
			
		||||
#include "dds/export.h"
 | 
			
		||||
 | 
			
		||||
#if defined (__cplusplus)
 | 
			
		||||
extern "C" {
 | 
			
		||||
| 
						 | 
				
			
			@ -197,11 +196,10 @@ dds_inconsistent_topic_status_t;
 | 
			
		|||
 * @retval DDS_RETCODE_ALREADY_DELETED
 | 
			
		||||
 *                  The entity has already been deleted.
 | 
			
		||||
 */
 | 
			
		||||
_Pre_satisfies_((topic & DDS_ENTITY_KIND_MASK) == DDS_KIND_TOPIC)
 | 
			
		||||
DDS_EXPORT dds_return_t
 | 
			
		||||
dds_get_inconsistent_topic_status (
 | 
			
		||||
        _In_ dds_entity_t topic,
 | 
			
		||||
        _Out_opt_ dds_inconsistent_topic_status_t * status);
 | 
			
		||||
  dds_entity_t topic,
 | 
			
		||||
  dds_inconsistent_topic_status_t * status);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get PUBLICATION_MATCHED status
 | 
			
		||||
| 
						 | 
				
			
			@ -225,11 +223,10 @@ dds_get_inconsistent_topic_status (
 | 
			
		|||
 * @retval DDS_RETCODE_ALREADY_DELETED
 | 
			
		||||
 *                  The entity has already been deleted.
 | 
			
		||||
 */
 | 
			
		||||
_Pre_satisfies_(((writer & DDS_ENTITY_KIND_MASK) == DDS_KIND_WRITER))
 | 
			
		||||
DDS_EXPORT dds_return_t
 | 
			
		||||
dds_get_publication_matched_status (
 | 
			
		||||
        _In_ dds_entity_t writer,
 | 
			
		||||
        _Out_opt_ dds_publication_matched_status_t * status);
 | 
			
		||||
  dds_entity_t writer,
 | 
			
		||||
  dds_publication_matched_status_t * status);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get LIVELINESS_LOST status
 | 
			
		||||
| 
						 | 
				
			
			@ -253,10 +250,10 @@ dds_get_publication_matched_status (
 | 
			
		|||
 * @retval DDS_RETCODE_ALREADY_DELETED
 | 
			
		||||
 *                  The entity has already been deleted.
 | 
			
		||||
 */
 | 
			
		||||
_Pre_satisfies_(((writer & DDS_ENTITY_KIND_MASK) == DDS_KIND_WRITER))
 | 
			
		||||
DDS_EXPORT dds_return_t dds_get_liveliness_lost_status (
 | 
			
		||||
        _In_ dds_entity_t writer,
 | 
			
		||||
        _Out_opt_ dds_liveliness_lost_status_t * status);
 | 
			
		||||
DDS_EXPORT dds_return_t
 | 
			
		||||
dds_get_liveliness_lost_status (
 | 
			
		||||
  dds_entity_t writer,
 | 
			
		||||
  dds_liveliness_lost_status_t * status);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get OFFERED_DEADLINE_MISSED status
 | 
			
		||||
| 
						 | 
				
			
			@ -280,11 +277,10 @@ DDS_EXPORT dds_return_t dds_get_liveliness_lost_status (
 | 
			
		|||
 * @retval DDS_RETCODE_ALREADY_DELETED
 | 
			
		||||
 *                  The entity has already been deleted.
 | 
			
		||||
 */
 | 
			
		||||
_Pre_satisfies_(((writer & DDS_ENTITY_KIND_MASK) == DDS_KIND_WRITER))
 | 
			
		||||
DDS_EXPORT dds_return_t
 | 
			
		||||
dds_get_offered_deadline_missed_status(
 | 
			
		||||
        _In_  dds_entity_t writer,
 | 
			
		||||
        _Out_opt_ dds_offered_deadline_missed_status_t *status);
 | 
			
		||||
  dds_entity_t writer,
 | 
			
		||||
  dds_offered_deadline_missed_status_t *status);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get OFFERED_INCOMPATIBLE_QOS status
 | 
			
		||||
| 
						 | 
				
			
			@ -308,11 +304,10 @@ dds_get_offered_deadline_missed_status(
 | 
			
		|||
 * @retval DDS_RETCODE_ALREADY_DELETED
 | 
			
		||||
 *                  The entity has already been deleted.
 | 
			
		||||
 */
 | 
			
		||||
_Pre_satisfies_(((writer & DDS_ENTITY_KIND_MASK) == DDS_KIND_WRITER))
 | 
			
		||||
DDS_EXPORT dds_return_t
 | 
			
		||||
dds_get_offered_incompatible_qos_status (
 | 
			
		||||
        _In_  dds_entity_t writer,
 | 
			
		||||
        _Out_opt_ dds_offered_incompatible_qos_status_t * status);
 | 
			
		||||
  dds_entity_t writer,
 | 
			
		||||
  dds_offered_incompatible_qos_status_t * status);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get SUBSCRIPTION_MATCHED status
 | 
			
		||||
| 
						 | 
				
			
			@ -336,11 +331,10 @@ dds_get_offered_incompatible_qos_status (
 | 
			
		|||
 * @retval DDS_RETCODE_ALREADY_DELETED
 | 
			
		||||
 *                  The entity has already been deleted.
 | 
			
		||||
 */
 | 
			
		||||
_Pre_satisfies_((reader & DDS_ENTITY_KIND_MASK) == DDS_KIND_READER)
 | 
			
		||||
DDS_EXPORT dds_return_t
 | 
			
		||||
dds_get_subscription_matched_status (
 | 
			
		||||
        _In_  dds_entity_t reader,
 | 
			
		||||
        _Out_opt_ dds_subscription_matched_status_t * status);
 | 
			
		||||
  dds_entity_t reader,
 | 
			
		||||
  dds_subscription_matched_status_t * status);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get LIVELINESS_CHANGED status
 | 
			
		||||
| 
						 | 
				
			
			@ -364,11 +358,10 @@ dds_get_subscription_matched_status (
 | 
			
		|||
 * @retval DDS_RETCODE_ALREADY_DELETED
 | 
			
		||||
 *                  The entity has already been deleted.
 | 
			
		||||
 */
 | 
			
		||||
_Pre_satisfies_((reader & DDS_ENTITY_KIND_MASK) == DDS_KIND_READER)
 | 
			
		||||
DDS_EXPORT dds_return_t
 | 
			
		||||
dds_get_liveliness_changed_status (
 | 
			
		||||
        _In_ dds_entity_t reader,
 | 
			
		||||
        _Out_opt_ dds_liveliness_changed_status_t * status);
 | 
			
		||||
  dds_entity_t reader,
 | 
			
		||||
  dds_liveliness_changed_status_t * status);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get SAMPLE_REJECTED status
 | 
			
		||||
| 
						 | 
				
			
			@ -392,11 +385,10 @@ dds_get_liveliness_changed_status (
 | 
			
		|||
 * @retval DDS_RETCODE_ALREADY_DELETED
 | 
			
		||||
 *                  The entity has already been deleted.
 | 
			
		||||
 */
 | 
			
		||||
_Pre_satisfies_((reader & DDS_ENTITY_KIND_MASK) == DDS_KIND_READER)
 | 
			
		||||
DDS_EXPORT dds_return_t
 | 
			
		||||
dds_get_sample_rejected_status (
 | 
			
		||||
        _In_  dds_entity_t reader,
 | 
			
		||||
        _Out_opt_ dds_sample_rejected_status_t * status);
 | 
			
		||||
  dds_entity_t reader,
 | 
			
		||||
  dds_sample_rejected_status_t * status);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get SAMPLE_LOST status
 | 
			
		||||
| 
						 | 
				
			
			@ -421,11 +413,10 @@ dds_get_sample_rejected_status (
 | 
			
		|||
 * @retval DDS_RETCODE_ALREADY_DELETED
 | 
			
		||||
 *            The entity has already been deleted.
 | 
			
		||||
 */
 | 
			
		||||
_Pre_satisfies_((reader & DDS_ENTITY_KIND_MASK) == DDS_KIND_READER)
 | 
			
		||||
DDS_EXPORT dds_return_t
 | 
			
		||||
dds_get_sample_lost_status (
 | 
			
		||||
        _In_  dds_entity_t reader,
 | 
			
		||||
        _Out_opt_ dds_sample_lost_status_t * status);
 | 
			
		||||
  dds_entity_t reader,
 | 
			
		||||
  dds_sample_lost_status_t * status);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get REQUESTED_DEADLINE_MISSED status
 | 
			
		||||
| 
						 | 
				
			
			@ -450,11 +441,10 @@ dds_get_sample_lost_status (
 | 
			
		|||
 * @retval DDS_RETCODE_ALREADY_DELETED
 | 
			
		||||
 *            The entity has already been deleted.
 | 
			
		||||
 */
 | 
			
		||||
_Pre_satisfies_((reader & DDS_ENTITY_KIND_MASK) == DDS_KIND_READER)
 | 
			
		||||
DDS_EXPORT dds_return_t
 | 
			
		||||
dds_get_requested_deadline_missed_status (
 | 
			
		||||
        _In_  dds_entity_t reader,
 | 
			
		||||
        _Out_opt_ dds_requested_deadline_missed_status_t * status);
 | 
			
		||||
  dds_entity_t reader,
 | 
			
		||||
  dds_requested_deadline_missed_status_t * status);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get REQUESTED_INCOMPATIBLE_QOS status
 | 
			
		||||
| 
						 | 
				
			
			@ -479,11 +469,10 @@ dds_get_requested_deadline_missed_status (
 | 
			
		|||
 * @retval DDS_RETCODE_ALREADY_DELETED
 | 
			
		||||
 *            The entity has already been deleted.
 | 
			
		||||
 */
 | 
			
		||||
_Pre_satisfies_((reader & DDS_ENTITY_KIND_MASK) == DDS_KIND_READER)
 | 
			
		||||
DDS_EXPORT dds_return_t
 | 
			
		||||
dds_get_requested_incompatible_qos_status (
 | 
			
		||||
        _In_  dds_entity_t reader,
 | 
			
		||||
        _Out_opt_ dds_requested_incompatible_qos_status_t * status);
 | 
			
		||||
  dds_entity_t reader,
 | 
			
		||||
  dds_requested_incompatible_qos_status_t * status);
 | 
			
		||||
 | 
			
		||||
#if defined (__cplusplus)
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -20,9 +20,11 @@
 | 
			
		|||
#ifndef DDS_STREAM_H
 | 
			
		||||
#define DDS_STREAM_H
 | 
			
		||||
 | 
			
		||||
#include "os/os_public.h"
 | 
			
		||||
#include <stdbool.h>
 | 
			
		||||
#include "ddsc/dds_export.h"
 | 
			
		||||
#include <stddef.h>
 | 
			
		||||
#include <stdint.h>
 | 
			
		||||
 | 
			
		||||
#include "dds/export.h"
 | 
			
		||||
 | 
			
		||||
#if defined (__cplusplus)
 | 
			
		||||
extern "C" {
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
				
			
			@ -1,155 +0,0 @@
 | 
			
		|||
/*
 | 
			
		||||
 * 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
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/** @file
 | 
			
		||||
 *
 | 
			
		||||
 * @brief DDS C Error API
 | 
			
		||||
 *
 | 
			
		||||
 * This header file defines the public API of error values and convenience
 | 
			
		||||
 * functions in the CycloneDDS C language binding.
 | 
			
		||||
 */
 | 
			
		||||
#ifndef DDS_ERROR_H
 | 
			
		||||
#define DDS_ERROR_H
 | 
			
		||||
 | 
			
		||||
#include "os/os_public.h"
 | 
			
		||||
#include "ddsc/dds_export.h"
 | 
			
		||||
 | 
			
		||||
#if defined (__cplusplus)
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Error masks for returned status values */
 | 
			
		||||
 | 
			
		||||
#define DDS_ERR_NR_MASK       0x000000ff
 | 
			
		||||
#define DDS_ERR_LINE_MASK     0x003fff00
 | 
			
		||||
#define DDS_ERR_FILE_ID_MASK  0x7fc00000
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
  State is unchanged following a function call returning an error
 | 
			
		||||
  other than UNSPECIFIED, OUT_OF_RESOURCES and ALREADY_DELETED.
 | 
			
		||||
 | 
			
		||||
  Error handling functions. Three components to returned int status value.
 | 
			
		||||
 | 
			
		||||
  1 - The DDS_ERR_xxx error number
 | 
			
		||||
  2 - The file identifier
 | 
			
		||||
  3 - The line number
 | 
			
		||||
 | 
			
		||||
  All functions return >= 0 on success, < 0 on error
 | 
			
		||||
*/
 | 
			
		||||
/** @name Return codes
 | 
			
		||||
  @{**/
 | 
			
		||||
#define DDS_RETCODE_OK                   0 /**< Success */
 | 
			
		||||
#define DDS_RETCODE_ERROR                1 /**< Non specific error */
 | 
			
		||||
#define DDS_RETCODE_UNSUPPORTED          2 /**< Feature unsupported */
 | 
			
		||||
#define DDS_RETCODE_BAD_PARAMETER        3 /**< Bad parameter value */
 | 
			
		||||
#define DDS_RETCODE_PRECONDITION_NOT_MET 4 /**< Precondition for operation not met */
 | 
			
		||||
#define DDS_RETCODE_OUT_OF_RESOURCES     5 /**< When an operation fails because of a lack of resources */
 | 
			
		||||
#define DDS_RETCODE_NOT_ENABLED          6 /**< When a configurable feature is not enabled */
 | 
			
		||||
#define DDS_RETCODE_IMMUTABLE_POLICY     7 /**< When an attempt is made to modify an immutable policy */
 | 
			
		||||
#define DDS_RETCODE_INCONSISTENT_POLICY  8 /**< When a policy is used with inconsistent values */
 | 
			
		||||
#define DDS_RETCODE_ALREADY_DELETED      9 /**< When an attempt is made to delete something more than once */
 | 
			
		||||
#define DDS_RETCODE_TIMEOUT              10 /**< When a timeout has occurred */
 | 
			
		||||
#define DDS_RETCODE_NO_DATA              11 /**< When expected data is not provided */
 | 
			
		||||
#define DDS_RETCODE_ILLEGAL_OPERATION    12 /**< When a function is called when it should not be */
 | 
			
		||||
#define DDS_RETCODE_NOT_ALLOWED_BY_SECURITY 13 /**< When credentials are not enough to use the function */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/** @}*/
 | 
			
		||||
 | 
			
		||||
/* For backwards compatability */
 | 
			
		||||
 | 
			
		||||
#define DDS_SUCCESS DDS_RETCODE_OK
 | 
			
		||||
 | 
			
		||||
/** @name DDS_Error_Type
 | 
			
		||||
  @{**/
 | 
			
		||||
#define DDS_CHECK_REPORT 0x01
 | 
			
		||||
#define DDS_CHECK_FAIL 0x02
 | 
			
		||||
#define DDS_CHECK_EXIT 0x04
 | 
			
		||||
/** @}*/
 | 
			
		||||
 | 
			
		||||
/* Error code handling functions */
 | 
			
		||||
 | 
			
		||||
/** @name Macros for error handling
 | 
			
		||||
  @{**/
 | 
			
		||||
#define DDS_TO_STRING(n) #n
 | 
			
		||||
#define DDS_INT_TO_STRING(n) DDS_TO_STRING(n)
 | 
			
		||||
/** @}*/
 | 
			
		||||
 | 
			
		||||
/** Macro to extract error number */
 | 
			
		||||
#define dds_err_nr(e) ((-(e)) & DDS_ERR_NR_MASK)
 | 
			
		||||
 | 
			
		||||
/** Macro to extract line number */
 | 
			
		||||
#define dds_err_line(e) (((-(e)) & DDS_ERR_LINE_MASK) >> 8)
 | 
			
		||||
 | 
			
		||||
/** Macro to extract file identifier */
 | 
			
		||||
#define dds_err_file_id(e) (((-(e)) & DDS_ERR_FILE_ID_MASK) >> 22)
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Takes the error value and outputs a string corresponding to it.
 | 
			
		||||
 *
 | 
			
		||||
 * @param[in]  err  Error value to be converted to a string
 | 
			
		||||
 * @returns  String corresponding to the error value
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT const char * dds_err_str (dds_return_t err);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Takes the error number, error type and filename and line number and formats it to
 | 
			
		||||
 * a string which can be used for debugging.
 | 
			
		||||
 *
 | 
			
		||||
 * @param[in]  err    Error value
 | 
			
		||||
 * @param[in]  flags  Indicates Fail, Exit or Report
 | 
			
		||||
 * @param[in]  where  File and line number
 | 
			
		||||
 * @returns  true - True
 | 
			
		||||
 * @returns  false - False
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
DDS_EXPORT bool dds_err_check (dds_return_t err, unsigned flags, const char * where);
 | 
			
		||||
 | 
			
		||||
/** Macro that defines dds_err_check function */
 | 
			
		||||
#define DDS_ERR_CHECK(e, f) (dds_err_check ((e), (f), __FILE__ ":" DDS_INT_TO_STRING(__LINE__)))
 | 
			
		||||
 | 
			
		||||
/* Failure handling */
 | 
			
		||||
 | 
			
		||||
/** Failure handler */
 | 
			
		||||
typedef void (*dds_fail_fn) (const char *, const char *);
 | 
			
		||||
 | 
			
		||||
/** Macro that defines dds_fail function */
 | 
			
		||||
#define DDS_FAIL(m) (dds_fail (m, __FILE__ ":" DDS_INT_TO_STRING (__LINE__)))
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Set the failure function
 | 
			
		||||
 *
 | 
			
		||||
 * @param[in]  fn  Function to invoke on failure
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_fail_set (dds_fail_fn fn);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Get the failure function
 | 
			
		||||
 *
 | 
			
		||||
 * @returns Failure function
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT dds_fail_fn dds_fail_get (void);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Handles failure through an installed failure handler
 | 
			
		||||
 *
 | 
			
		||||
 * @params[in]  msg  String containing failure message
 | 
			
		||||
 * @params[in]  where  String containing file and location
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_fail (const char * msg, const char * where);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if defined (__cplusplus)
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -1,96 +0,0 @@
 | 
			
		|||
/*
 | 
			
		||||
 * 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
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/** @file
 | 
			
		||||
 *
 | 
			
		||||
 * @brief DDS C Time support API
 | 
			
		||||
 *
 | 
			
		||||
 * This header file defines the public API of the in the
 | 
			
		||||
 * Eclipse Cyclone DDS C language binding.
 | 
			
		||||
 */
 | 
			
		||||
#ifndef DDS_TIME_H
 | 
			
		||||
#define DDS_TIME_H
 | 
			
		||||
 | 
			
		||||
#include "os/os_public.h"
 | 
			
		||||
#include "ddsc/dds_export.h"
 | 
			
		||||
 | 
			
		||||
#if defined (__cplusplus)
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
  Times are represented using a 64-bit signed integer, encoding
 | 
			
		||||
  nanoseconds since the epoch. Considering the nature of these
 | 
			
		||||
  systems, one would best use TAI, International Atomic Time, rather
 | 
			
		||||
  than something UTC, but availability may be limited.
 | 
			
		||||
 | 
			
		||||
  Valid times are non-negative and times up to 2**63-2 can be
 | 
			
		||||
  represented. 2**63-1 is defined to represent, essentially, "never".
 | 
			
		||||
  This is good enough for a couple of centuries.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
/** Absolute Time definition */
 | 
			
		||||
typedef int64_t dds_time_t;
 | 
			
		||||
 | 
			
		||||
/** Relative Time definition */
 | 
			
		||||
typedef int64_t dds_duration_t;
 | 
			
		||||
 | 
			
		||||
/** @name Macro definition for time units in nanoseconds.
 | 
			
		||||
  @{**/
 | 
			
		||||
#define DDS_NSECS_IN_SEC 1000000000LL
 | 
			
		||||
#define DDS_NSECS_IN_MSEC 1000000LL
 | 
			
		||||
#define DDS_NSECS_IN_USEC 1000LL
 | 
			
		||||
/** @}*/
 | 
			
		||||
 | 
			
		||||
/** @name Infinite timeout for indicate absolute time */
 | 
			
		||||
#define DDS_NEVER ((dds_time_t) INT64_MAX)
 | 
			
		||||
 | 
			
		||||
/** @name Infinite timeout for relative time */
 | 
			
		||||
#define DDS_INFINITY ((dds_duration_t) INT64_MAX)
 | 
			
		||||
 | 
			
		||||
/** @name Macro definition for time conversion from nanoseconds
 | 
			
		||||
  @{**/
 | 
			
		||||
#define DDS_SECS(n) ((n) * DDS_NSECS_IN_SEC)
 | 
			
		||||
#define DDS_MSECS(n) ((n) * DDS_NSECS_IN_MSEC)
 | 
			
		||||
#define DDS_USECS(n) ((n) * DDS_NSECS_IN_USEC)
 | 
			
		||||
/** @}*/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Description : This operation returns the current time (in nanoseconds)
 | 
			
		||||
 *
 | 
			
		||||
 * Arguments :
 | 
			
		||||
 *   -# Returns current time
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT dds_time_t dds_time (void);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Description : This operation blocks the calling thread until the relative time
 | 
			
		||||
 * n has elapsed
 | 
			
		||||
 *
 | 
			
		||||
 * Arguments :
 | 
			
		||||
 *   -# n Relative Time to block a thread
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_sleepfor (dds_duration_t n);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Description : This operation blocks the calling thread until the absolute time
 | 
			
		||||
 * n has elapsed
 | 
			
		||||
 *
 | 
			
		||||
 * Arguments :
 | 
			
		||||
 *   -# n absolute Time to block a thread
 | 
			
		||||
 */
 | 
			
		||||
DDS_EXPORT void dds_sleepuntil (dds_time_t n);
 | 
			
		||||
 | 
			
		||||
#if defined (__cplusplus)
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue