Merge branch 'master' into security
Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
commit
ad58db0721
158 changed files with 6915 additions and 3361 deletions
|
@ -50,6 +50,8 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
struct dds_rhc;
|
||||
struct ddsi_plist;
|
||||
struct ddsi_sertopic;
|
||||
struct ddsi_serdata;
|
||||
|
||||
#define DDS_MIN_PSEUDO_HANDLE ((dds_entity_t) 0x7fff0000)
|
||||
|
@ -555,7 +557,9 @@ dds_set_enabled_status(dds_entity_t entity, uint32_t mask);
|
|||
* @param[in] entity Entity on which to get qos.
|
||||
* @param[out] qos Pointer to the qos structure that returns the set policies.
|
||||
*
|
||||
* @returns A dds_return_t indicating success or failure.
|
||||
* @returns A dds_return_t indicating success or failure. The QoS object will have
|
||||
* at least all QoS relevant for the entity present and the corresponding dds_qget_...
|
||||
* will return true.
|
||||
*
|
||||
* @retval DDS_RETCODE_OK
|
||||
* The existing set of QoS policy values applied to the entity
|
||||
|
@ -962,7 +966,9 @@ dds_lookup_participant(
|
|||
* @brief Creates a new topic with default type handling.
|
||||
*
|
||||
* The type name for the topic is taken from the generated descriptor. Topic
|
||||
* matching is done on a combination of topic name and type name.
|
||||
* matching is done on a combination of topic name and type name. Each successful
|
||||
* call to dds_create_topic creates a new topic entity sharing the same QoS
|
||||
* settings with all other topics of the same name.
|
||||
*
|
||||
* @param[in] participant Participant on which to create the topic.
|
||||
* @param[in] descriptor An IDL generated topic descriptor.
|
||||
|
@ -970,14 +976,20 @@ dds_lookup_participant(
|
|||
* @param[in] qos QoS to set on the new topic (can be NULL).
|
||||
* @param[in] listener Any listener functions associated with the new topic (can be NULL).
|
||||
*
|
||||
* @returns A valid topic handle or an error code.
|
||||
* @returns A valid, unique topic handle or an error code.
|
||||
*
|
||||
* @retval >=0
|
||||
* A valid topic handle.
|
||||
* A valid unique topic handle.
|
||||
* @retval DDS_RETCODE_BAD_PARAMETER
|
||||
* Either participant, descriptor, name or qos is invalid.
|
||||
* @retval DDS_RETCODE_BAD_PARAMETER
|
||||
* Either participant, descriptor, name or qos is invalid.
|
||||
* @retval DDS_RETCODE_INCONSISTENT_POLICY
|
||||
* QoS mismatch between qos and an existing topic's QoS.
|
||||
* @retval DDS_RETCODE_PRECONDITION_NOT_MET
|
||||
* Mismatch between type name in descriptor and pre-existing
|
||||
* topic's type name.
|
||||
*/
|
||||
/* TODO: Check list of retcodes is complete. */
|
||||
DDS_EXPORT dds_entity_t
|
||||
dds_create_topic(
|
||||
dds_entity_t participant,
|
||||
|
@ -986,13 +998,17 @@ dds_create_topic(
|
|||
const dds_qos_t *qos,
|
||||
const dds_listener_t *listener);
|
||||
|
||||
struct ddsi_sertopic;
|
||||
struct nn_plist;
|
||||
/**
|
||||
* @brief Creates a new topic with arbitrary type handling.
|
||||
*
|
||||
* The type name for the topic is taken from the provided "sertopic" object. Topic
|
||||
* matching is done on a combination of topic name and type name.
|
||||
* matching is done on a combination of topic name and type name. Each successful
|
||||
* call to dds_create_topic creates a new topic entity sharing the same QoS
|
||||
* settings with all other topics of the same name.
|
||||
*
|
||||
* If sertopic is not yet known in the domain, it is added and its refcount
|
||||
* incremented; if an equivalent sertopic object is already known, then the known
|
||||
* one is used instead.
|
||||
*
|
||||
* @param[in] participant Participant on which to create the topic.
|
||||
* @param[in] sertopic Internal description of the topic type (includes name).
|
||||
|
@ -1000,21 +1016,27 @@ struct nn_plist;
|
|||
* @param[in] listener Any listener functions associated with the new topic (can be NULL).
|
||||
* @param[in] sedp_plist Topic description to be published as part of discovery (if NULL, not published).
|
||||
*
|
||||
* @returns A valid topic handle or an error code.
|
||||
* @returns A valid, unique topic handle or an error code.
|
||||
*
|
||||
* @retval >=0
|
||||
* A valid topic handle.
|
||||
* A valid unique topic handle.
|
||||
* @retval DDS_RETCODE_BAD_PARAMETER
|
||||
* Either participant, descriptor, name or qos is invalid.
|
||||
* @retval DDS_RETCODE_BAD_PARAMETER
|
||||
* Either participant, descriptor, name or qos is invalid.
|
||||
* @retval DDS_RETCODE_INCONSISTENT_POLICY
|
||||
* QoS mismatch between qos and an existing topic's QoS.
|
||||
* @retval DDS_RETCODE_PRECONDITION_NOT_MET
|
||||
* Mismatch between type name in sertopic and pre-existing
|
||||
* topic's type name.
|
||||
*/
|
||||
/* TODO: Check list of retcodes is complete. */
|
||||
DDS_EXPORT dds_entity_t
|
||||
dds_create_topic_arbitrary (
|
||||
dds_entity_t participant,
|
||||
struct ddsi_sertopic *sertopic,
|
||||
const dds_qos_t *qos,
|
||||
const dds_listener_t *listener,
|
||||
const struct nn_plist *sedp_plist);
|
||||
const struct ddsi_plist *sedp_plist);
|
||||
|
||||
/**
|
||||
* @brief Finds a named topic.
|
||||
|
@ -1030,8 +1052,9 @@ dds_create_topic_arbitrary (
|
|||
* A valid topic handle.
|
||||
* @retval DDS_RETCODE_BAD_PARAMETER
|
||||
* Participant was invalid.
|
||||
* @retval DDS_RETCODE_PRECONDITION_NOT_MET
|
||||
* No topic of this name existed yet in the participant
|
||||
*/
|
||||
/* TODO: Check list of retcodes is complete. */
|
||||
DDS_EXPORT dds_entity_t
|
||||
dds_find_topic(dds_entity_t participant, const char *name);
|
||||
|
||||
|
@ -1047,8 +1070,6 @@ dds_find_topic(dds_entity_t participant, const char *name);
|
|||
* @retval DDS_RETCODE_OK
|
||||
* Success.
|
||||
*/
|
||||
/* TODO: do we need a convenience version as well that allocates and add a _s suffix to this one? */
|
||||
/* TODO: Check annotation. Could be _Out_writes_to_(size, return + 1) as well. */
|
||||
DDS_EXPORT dds_return_t
|
||||
dds_get_name(dds_entity_t topic, char *name, size_t size);
|
||||
|
||||
|
@ -1324,7 +1345,7 @@ dds_create_writer(
|
|||
*
|
||||
* This operation registers an instance with a key value to the data writer and
|
||||
* returns an instance handle that could be used for successive write & dispose
|
||||
* operations. When the handle is not allocated, the function will return and
|
||||
* operations. When the handle is not allocated, the function will return an
|
||||
* error and the handle will be un-touched.
|
||||
*
|
||||
* @param[in] writer The writer to which instance has be associated.
|
||||
|
@ -2035,7 +2056,7 @@ dds_waitset_attach(
|
|||
* @returns A dds_return_t indicating success or failure.
|
||||
*
|
||||
* @retval DDS_RETCODE_OK
|
||||
* Entity attached.
|
||||
* Entity detached.
|
||||
* @retval DDS_RETCODE_ERROR
|
||||
* An internal error has occurred.
|
||||
* @retval DDS_RETCODE_BAD_PARAMETER
|
||||
|
@ -2072,7 +2093,7 @@ dds_waitset_detach(
|
|||
* @returns A dds_return_t indicating success or failure.
|
||||
*
|
||||
* @retval DDS_RETCODE_OK
|
||||
* Entity attached.
|
||||
* Trigger value set.
|
||||
* @retval DDS_RETCODE_ERROR
|
||||
* An internal error has occurred.
|
||||
* @retval DDS_RETCODE_BAD_PARAMETER
|
||||
|
|
44
src/core/ddsc/include/dds/ddsc/dds_internal_api.h
Normal file
44
src/core/ddsc/include/dds/ddsc/dds_internal_api.h
Normal file
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
* Copyright(c) 2006 to 2020 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
|
||||
* WARNING This file is only needed for the work around for https://github.com/eclipse-cyclonedds/cyclonedds/issues/74
|
||||
* Do not include this file in an application! Once issue #74 is solved this header file should be removed.
|
||||
*/
|
||||
|
||||
#ifndef DDS_INTERNAL_API_H
|
||||
#define DDS_INTERNAL_API_H
|
||||
|
||||
#if defined (__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define DDS_READ_WITHOUT_LOCK (0xFFFFFFED)
|
||||
/*
|
||||
* @private
|
||||
* dds_reader_lock_samples: Returns number of samples in read cache and locks the
|
||||
* reader cache to make sure that the samples content doesn't change.
|
||||
* Because the cache is locked, you should be able to read/take without having to
|
||||
* lock first. This is done by passing the DDS_READ_WITHOUT_LOCK value to the
|
||||
* read/take call as maxs. Then the read/take will not lock but still unlock.
|
||||
*
|
||||
* CycloneDDS doesn't support a read/take that just returns all
|
||||
* available samples issue #74. As a work around to support LENGTH_UNLIMITED in C++.
|
||||
* dds_reader_lock_samples() and DDS_READ_WITHOUT_LOCK are needed.
|
||||
*/
|
||||
DDS_EXPORT uint32_t
|
||||
dds_reader_lock_samples (dds_entity_t entity);
|
||||
|
||||
#if defined (__cplusplus)
|
||||
}
|
||||
#endif
|
||||
#endif
|
|
@ -112,6 +112,7 @@ typedef enum dds_entity_kind
|
|||
DDS_KIND_DOMAIN,
|
||||
DDS_KIND_CYCLONEDDS
|
||||
} dds_entity_kind_t;
|
||||
#define DDS_KIND_MAX DDS_KIND_CYCLONEDDS
|
||||
|
||||
/* Handles are opaque pointers to implementation types */
|
||||
typedef uint64_t dds_instance_handle_t;
|
||||
|
|
|
@ -149,6 +149,8 @@ dds_qset_durability (dds_qos_t * __restrict qos, dds_durability_kind_t kind);
|
|||
|
||||
/**
|
||||
* @brief Set the history policy of a qos structure.
|
||||
*
|
||||
* Note that depth is only relevant for keep last. If you want limited history for keep all, use dds_qset_resource_limits().
|
||||
*
|
||||
* @param[in,out] qos - Pointer to a dds_qos_t structure that will store the policy
|
||||
* @param[in] kind - History kind value \ref DCPS_QoS_History
|
||||
|
@ -297,7 +299,7 @@ dds_qset_partition1 (
|
|||
*
|
||||
* @param[in,out] qos - Pointer to a dds_qos_t structure that will store the policy
|
||||
* @param[in] kind - Reliability kind
|
||||
* @param[in] max_blocking_time - Max blocking duration applied when kind is reliable.
|
||||
* @param[in] max_blocking_time - Max blocking duration applied when kind is reliable. This is how long the writer will block when its history is full.
|
||||
*/
|
||||
DDS_EXPORT void
|
||||
dds_qset_reliability (
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue