Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions CLA/CLA_Rocket_Software.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# OMG DDS INTEROPERABILITY REPOSITORY - CONTRIBUTOR LICENSE AGREEMENT

**This Contributor License Agreement ("Agreement") specifies the terms under which the individual or corporate entity specified in the signature block below (“You”) agree to make intellectual property contributions to the OMG DDS Interoperability Repository. BY SIGNING BELOW YOU ARE AGREEING TO BE BOUND BY THE TERMS OF THIS AGREEMENT. If You are signing this Agreement in Your capacity as an employee, THEN YOUR EMPLOYER AND YOU ARE BOTH BOUND BY THIS AGREEMENT.**

1. Definitions

1. "OMG DDS Interoperability Repository" (or “Repository”) means the Git repository [https://github.com/omg-dds/dds-rtps](https://github.com/omg-dds/dds-rtps).

2. "Moderator" means an entity or individual responsible for authorizing changes to the Repository.

3. "Submit" (or “Submitted”) means any submission, including source code, binaries, code, pull requests, issue reports, comments, etc., made to the Moderators for inclusion in the Repository either through the Git repository interface or through electronic file transfer.

4. A "Contribution" is any original work of authorship, including any modifications or additions to an existing work, that You Submit to the DDS Interoperability Repository.

5. A "User" is anyone who accesses the Repository.

2. Allowable Contribution Representations

1. You represent that You have the necessary rights to the Contribution(s) to meet the obligations of this Agreement. If You are employed, Your employer has authorized Contribution(s) under this Agreement.

2. You represent that you have no knowledge of third-party intellectual property rights that are likely to be infringed by the Contribution(s). You represent that you have no knowledge that such infringement or any allegation of misappropriation of intellectual property rights is likely to be claimed or has already been claimed.

3. License

You grant Moderators a perpetual, worldwide, non-exclusive, assignable, paid-up license to publish, display, and redistribute the Contribution as part of the Repository. You also license to Moderators under the same terms any other intellectual property rights required to publish, display, and redistribute the Contributions as part of the Repository. You further grant all Users of the Repository a license to the Contribution under the terms of the [OMG DDS Interoperability Testing License](../LICENSE.md) included in the Repository. Moderators are under no obligation to publish Contributions.

4. No Warranty, Consequential Damages. Limited Liability

Other than explicitly stated herein, You provide the Contribution(s) "as is" with no warranty nor claims of fitness to any purpose. Neither party shall be liable for consequential or special damages of any kind. Other than for breach of warranty or representations herein, the liability of either party to the other shall be limited to $1000.

5. General

1. If You are an agency of the United States Government, then this Agreement will be governed by the United States federal common law. Otherwise, this Agreement will be governed by the laws of the State of California except with regard to its choice of law rules.

2. A party may assign this Agreement to an entity acquiring essentially all of the party’s relevant business.

6. Electronic Signatures

"Electronic Signature" means any electronic sound, symbol, or process attached to or logically associated with a record and executed and adopted by a party with the intent to sign such record.

Each party agrees that the Electronic Signatures, whether digital or encrypted, of the parties included in this Agreement are intended to authenticate this writing and to have the same force and effect as manual signatures.


IN WITNESS WHEREOF, You, intending to be legally bound, have executed this Agreement or caused Your employer’s proper and duly authorized officer to execute and deliver this Agreement, for good and valuable consideration, the sufficiency of which is hereby acknowledged, as of the day and year first written below.

**For:**

Entity Name: Rocket Software

Address: 77 4th Avenue, Waltham, MA 02451, USA

("**You**")

**By:**

Name: Puneet Kohli

Title: President, Application Modernization

Date: March 20, 2026

4 changes: 4 additions & 0 deletions doc/test_description.template.rst
Original file line number Diff line number Diff line change
Expand Up @@ -102,4 +102,8 @@ product versions.

* Content Filtered Topic disabled

* **CycloneDDS**:

* Durability Service QoS requires explicit setting when History Depth is set

|TEST_DESCRIPTION|
4 changes: 4 additions & 0 deletions generate_xlsx_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ def get_company_name(product:str) -> str:
return 'eProsima'
elif 'dust' in product.lower():
return 'S2E Software Systems'
elif 'cyclone' in product.lower():
return 'Eclipse Foundation'
else:
raise RuntimeError('Impossible to get company name: ' + product)

Expand All @@ -100,6 +102,8 @@ def get_product_name(product:str) -> str:
return 'FastDDS ' + re.search(r'([\d.]+)', product).group(1)
elif 'dust_dds' in product.lower():
return 'Dust DDS ' + re.search(r'([\d.]+)', product).group(1)
elif 'cyclone' in product.lower():
return 'Cyclone DDS'
else:
raise RuntimeError('Impossible to get product name: ' + product)

Expand Down
3 changes: 3 additions & 0 deletions interoperability_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,9 @@ def run_publisher_shape_main(
# Therefore, that sample is added to samples_sent.
pub_string = re.search(r'[0-9]+ [0-9]+ \[[0-9]+\]',
child_pub.before + child_pub.after)
if not pub_string:
produced_code[produced_code_index] = ReturnCode.DATA_NOT_CORRECT
break
last_sample = pub_string.group(0)
samples_sent.put(last_sample)
index = child_pub.expect([
Expand Down
2 changes: 1 addition & 1 deletion rtps_test_utilities.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ def no_check(child_sub, samples_sent, last_sample_saved, timeout):

def basic_check(child_sub, samples_sent, last_sample_saved, timeout):
""" Only checks that the data is well formed and size is not zero."""
sub_string = re.search('\w\s+\w+\s+[0-9]+ [0-9]+ \[([0-9]+)\]',
sub_string = re.search(r'\w\s+\w+\s+[0-9]+ [0-9]+ \[([0-9]+)\]',
child_sub.before + child_sub.after)

if sub_string is None:
Expand Down
13 changes: 13 additions & 0 deletions srcC/cyclone-dds-cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
cmake_minimum_required(VERSION 3.16)
project(shape LANGUAGES C)

# Find the CycloneDDS package.
find_package(CycloneDDS REQUIRED)
set(EXECUTABLE_NAME "eclipse_cyclone-${CycloneDDS_VERSION}_shape_main_linux")
idlc_generate(TARGET shape_lib FILES "../shape.idl" WARNINGS no-implicit-extensibility)

add_executable(${EXECUTABLE_NAME} ../shape_main.c)

target_compile_definitions(${EXECUTABLE_NAME} PUBLIC -DCYCLONE_DDS)

target_link_libraries(${EXECUTABLE_NAME} shape_lib CycloneDDS::ddsc m)
9 changes: 9 additions & 0 deletions srcC/shape.idl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
@appendable
struct ShapeType {
@key
string<128> color;
int32 x;
int32 y;
int32 shapesize;
sequence<uint8> additional_payload_size;
};
9 changes: 9 additions & 0 deletions srcC/shape_bounded.idl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
@appendable
struct ShapeType {
@key
string<128> color;
long x;
long y;
long shapesize;
sequence<uint8, 100000> additional_payload_size;
};
50 changes: 50 additions & 0 deletions srcC/shape_configurator_cyclone_dds.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#ifndef _SHAPE_CONFIG_CYCLONE_
#define _SHAPE_CONFIG_CYCLONE_

#include "shape.h"
#include "dds/dds.h"
#include <string.h>
#include <dds/ddsc/dds_public_qosdefs.h>
#include <dds/ddsc/dds_public_status.h>
#include <dds/ddsc/dds_public_qosdefs.h>
#include <dds/ddsrt/time.h>
#include <stddef.h>
#include <stdint.h>

const char* get_qos_policy_name(uint32_t last_policy_id) {

switch (last_policy_id) {
case DDS_INVALID_QOS_POLICY_ID: return "INVALID";
case DDS_USERDATA_QOS_POLICY_ID: return "USERDATA";
case DDS_DURABILITY_QOS_POLICY_ID: return "DURABILITY";
case DDS_PRESENTATION_QOS_POLICY_ID: return "PRESENTATION";
case DDS_DEADLINE_QOS_POLICY_ID: return "DEADLINE";
case DDS_LATENCYBUDGET_QOS_POLICY_ID: return "LATENCYBUDGET";
case DDS_OWNERSHIP_QOS_POLICY_ID: return "OWNERSHIP";
case DDS_OWNERSHIPSTRENGTH_QOS_POLICY_ID: return "OWNERSHIPSTRENGTH";
case DDS_LIVELINESS_QOS_POLICY_ID: return "LIVELINESS";
case DDS_TIMEBASEDFILTER_QOS_POLICY_ID: return "TIMEBASEDFILTER";
case DDS_PARTITION_QOS_POLICY_ID: return "PARTITION";
case DDS_RELIABILITY_QOS_POLICY_ID: return "RELIABILITY";
case DDS_DESTINATIONORDER_QOS_POLICY_ID: return "DESTINATIONORDER";
case DDS_HISTORY_QOS_POLICY_ID: return "HISTORY";
case DDS_RESOURCELIMITS_QOS_POLICY_ID: return "RESOURCELIMITS";
case DDS_ENTITYFACTORY_QOS_POLICY_ID: return "ENTITYFACTORY";
case DDS_WRITERDATALIFECYCLE_QOS_POLICY_ID: return "WRITERDATALIFECYCLE";
case DDS_READERDATALIFECYCLE_QOS_POLICY_ID: return "READERDATALIFECYCLE";
case DDS_TOPICDATA_QOS_POLICY_ID: return "TOPICDATA";
case DDS_GROUPDATA_QOS_POLICY_ID: return "GROUPDATA";
case DDS_TRANSPORTPRIORITY_QOS_POLICY_ID: return "TRANSPORTPRIORITY";
case DDS_LIFESPAN_QOS_POLICY_ID: return "LIFESPAN";
case DDS_DURABILITYSERVICE_QOS_POLICY_ID: return "DURABILITYSERVICE";
case DDS_PROPERTY_QOS_POLICY_ID: return "PROPERTY";
case DDS_TYPE_CONSISTENCY_ENFORCEMENT_QOS_POLICY_ID: return "TYPE_CONSISTENCY_ENFORCEMENT";
case DDS_DATA_REPRESENTATION_QOS_POLICY_ID: return "DATAREPRESENTATION";
default:
return 0;
}
}

#endif


Loading