Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
f887546
Refs #13384. Test DomainParticipant::create_publisher
richiware Feb 23, 2022
0e45ad6
Refs #13384. Add DomainParticipant::create_subsriber
richiware Feb 24, 2022
71bd18c
Refs #13980. Add DomainParticipant::create_topic
richiware Feb 28, 2022
0a11a3a
Refs #13980. Add DomainParticipant::set_listener
richiware Feb 28, 2022
c4e9ecd
Refs #13980. Add DomainParticipant::find_topic
richiware Feb 28, 2022
f278759
Refs #13980. Add DomainParticipant::ignore_*
richiware Feb 28, 2022
558a9cd
Refs #13384. Add DomainParticipant::set_qos
richiware Mar 1, 2022
3489a34
Refs #13384. Add DomainParticipant::enable
richiware Mar 1, 2022
d546841
Refs #13384. Add DomainParticipant::delete_contained_entities
richiware Mar 1, 2022
0af520c
Refs #13384. Add DomainParticipant::get_participant_names
richiware Mar 1, 2022
db805d2
Refs #13384. Add DomainParticipant::contains_entity
richiware Mar 1, 2022
93f839e
Refs #13384. Fix test_qos
richiware Mar 1, 2022
61414a0
Refs #13384. Initial publisher subscriber api
richiware Mar 1, 2022
d78e8a5
Refs #13384. Add Publisher::set_listener
richiware Mar 1, 2022
75d4ab2
Refs #13384. Add Publisher::create_datawriter
richiware Mar 1, 2022
bd4be94
Refs #13384. Add Publisher::lookup_datawriter
richiware Mar 1, 2022
d3b9616
Refs #13384. Add Publisher::suspend_publications
richiware Mar 1, 2022
bcb36ec
Refs #13384. Add Publisher::wait_for_acknowledgments
richiware Mar 1, 2022
e0718e7
Refs #13384. Add Publisher::delete_contained_entities
richiware Mar 2, 2022
1393d48
Refs #13384. Add Publisher::get_instance_handle
richiware Mar 2, 2022
ee98171
Refs #13384. Add Publisher::get_datawriters
richiware Mar 2, 2022
5c1d388
Refs #13384. Add waitsets
richiware Mar 2, 2022
c88c58d
Refs #13384. Add DataWriter::write
richiware Mar 7, 2022
30c65cb
Refs #13384. Add DataWriter::register_instance.
richiware Mar 7, 2022
0f62d16
Refs #13384. Add DataWriter::get_key_value
richiware Mar 7, 2022
b60e9a3
Refs #13384. Add DataWriter::lookup_instance
richiware Mar 7, 2022
ad1d777
Refs #13384. Add DataWriter::get_instance_handle
richiware Mar 7, 2022
2fad4f3
Refs #13384. Add DataWriter::get_type
richiware Mar 7, 2022
2a26db7
Refs #13384. Add DataWriter::wait_for_acknowledgments
richiware Mar 7, 2022
79d9027
Refs #13384. Add DataWriter::get_offered_deadline_missed_status
richiware Mar 7, 2022
732b0de
Res #13384. Add DataWriter::get_offered_incompatible_qos_status
richiware Mar 7, 2022
037059f
Refs #13384. Add DataWriter::get_publication_matched_status
richiware Mar 7, 2022
63a7bbe
Refs #13384. Add DataWriter::set_listener
richiware Mar 7, 2022
e08bfb4
Refs #13384. Add DataWriter::dispose
richiware Mar 7, 2022
a5c0e60
Refs #13384. Add DataWriter::get_liveliness_lost_status
richiware Mar 7, 2022
fed2315
Refs #13384. Add DataWriter::get_publisher
richiware Mar 8, 2022
e947594
Refs #13384. Add DataWrter::assert_liveliness
richiware Mar 8, 2022
03d1d78
Refs #13384. Add DataWriter::get_matched_subscription_data
richiware Mar 8, 2022
3d82a6a
Refs #13384. Add DataWriter::get_matched_subscriptions
richiware Mar 8, 2022
b509d18
Refs #13384. Add DataWriter::clear_history
richiware Mar 8, 2022
1619f04
Refs #13384. Add DataWriter::get_sending_locators
richiware Mar 8, 2022
355b26c
Refs #13384. Add DataReader::wait_for_unread_message
richiware Mar 8, 2022
304a5ac
Refs #13384. Add DataReader::wait_for_historical_data
richiware Mar 9, 2022
d38aa4d
Refs #13384. Fix test failure
richiware Mar 9, 2022
fcda10b
Refs #13384: Remove comment
richiware Mar 9, 2022
18cfb40
Refs #13384. Add DataReader::read_next_sample
richiware Mar 9, 2022
b22e6d4
Refs #13384. Add DataReader::take_next_sample
richiware Mar 9, 2022
5a55f67
Refs #13384. Add DataReader::get_key_value
richiware Mar 9, 2022
cca88af
Refs #13384. Add DataReader::lookup_instance
richiware Mar 9, 2022
c80f883
Refs #13384. Add DataReader::get_first_untaken_info
richiware Mar 9, 2022
33f9e98
Refs #13384. Add DataReader::get_unread_count
richiware Mar 9, 2022
c612779
Refs #13384. Add DataReader::get_instance_handle
richiware Mar 9, 2022
b670cf4
Refs #13384. Add DataReader::type
richiware Mar 9, 2022
b3aa344
Refs #13384. Add DataReader::set_listener
richiware Mar 9, 2022
aeb9c23
Refs #13384. Add DataReader.get_liveliness_changed_status
richiware Mar 9, 2022
52b4031
Refs #13384. Add DataReader::get_sample_lost_status
richiware Mar 9, 2022
dc91a15
Refs #13384. Add DataReader::get_sample_rejected_status
richiware Mar 9, 2022
41245ba
Refs #13384. Add DataReader::get_subscription_matched_status
richiware Mar 9, 2022
8235cd8
Refs #13384. Add DataReader::get_requested_deadline_missed_status
richiware Mar 9, 2022
0ac2b76
Refs #13384. Add DataReader::get_matched_publication_data
richiware Mar 9, 2022
b38084f
Refs #13384. Add DataReader::get_matched_publications
richiware Mar 9, 2022
fad8d12
Refs #13384. Add DataReader::get_listening_locators
richiware Mar 9, 2022
5f5db6a
Refs #13384. Add DataReader::get_subscriber
richiware Mar 9, 2022
3426eb2
Refs #13384. Add DataReader::is_sample_valid
richiware Mar 9, 2022
1fc6fd6
Refs 13384: Remove debugging traces
EduPonz Mar 9, 2022
d11362e
Refs 13384: Unify DomainParticipant StatusMask tests
EduPonz Mar 9, 2022
6b31d9d
Refs 13384: Simplify test_get_instance_handle
EduPonz Mar 9, 2022
ba9e8af
Refs 13384: Simplify test_get_set_listener
EduPonz Mar 9, 2022
4daece5
Refs 13384: Test delete_participant with contained entities
EduPonz Mar 9, 2022
0078bfc
Refs 13384: Negative test for participant.contains_entity
EduPonz Mar 9, 2022
63e03d2
Refs #13384.
richiware Mar 9, 2022
b71baf0
Refs #13384. Add DataReader::create_querycondition
richiware Mar 9, 2022
4c42034
Refs 13384: Simplify test_create_and_delete_datawriter
EduPonz Mar 9, 2022
ff3d37f
Refs 13384: Test delete_publisher with contained entities
EduPonz Mar 9, 2022
1f6e639
Refs 13384: Simplify test_get_instance_handle
EduPonz Mar 9, 2022
d379edf
Refs 13384: Check publisher.has_datawriters with no datawriters
EduPonz Mar 9, 2022
59ceaa2
Refs 13384: Simplify test_get_set_listener
EduPonz Mar 9, 2022
32aa92a
Refs 13384: Simplify test_create_and_delete_datareader
EduPonz Mar 9, 2022
6f54223
Refs 13384: Test delete_subscriber with contained entities
EduPonz Mar 9, 2022
7a6e276
Refs 13384: Check subscriber.has_datareaders with no datareaders
EduPonz Mar 9, 2022
d4089ef
Refs #13384: Simplify test_get_instance_handle
EduPonz Mar 9, 2022
8dddf22
Refs #13384: Simplify test_get_set_listener
EduPonz Mar 9, 2022
78da514
Refs #13384: Commented check for delete_topic of a found topic
EduPonz Mar 9, 2022
f2c627f
Refs #13384: datawriter test suggestions
EduPonz Mar 9, 2022
d11eb9d
Refs #13384. Fixes for windows
richiware Mar 10, 2022
2e33481
Refs #13384. Quick fix
richiware Mar 10, 2022
678d50b
Refs #13384: Apply suggestions
EduPonz Mar 10, 2022
63404ff
Refs #13384: Fix tests with statistics is enabled
EduPonz Mar 10, 2022
397361d
Refs #13384: Fix teke_next_sample test
EduPonz Mar 10, 2022
44b2307
Refs #13384: Apply suggestions
EduPonz Mar 10, 2022
2b96f2e
Refs #13384: Bump version
EduPonz Mar 10, 2022
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
2 changes: 1 addition & 1 deletion fastdds_python/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ if(POLICY CMP0086)
cmake_policy(SET CMP0086 NEW)
endif()

project(fastdds_python VERSION 0.2.0)
project(fastdds_python VERSION 1.0.0)

###############################################################################
# Dependencies
Expand Down
4 changes: 4 additions & 0 deletions fastdds_python/src/swig/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@ SWIG_ADD_LIBRARY(${PROJECT_NAME}
SOURCES ${${PROJECT_NAME}_FILES}
)

if(UNIX AND CMAKE_SIZEOF_VOID_P EQUAL 8)
set_property(TARGET ${PROJECT_NAME} PROPERTY SWIG_COMPILE_DEFINITIONS SWIGWORDSIZE64)
endif()

SWIG_LINK_LIBRARIES(${PROJECT_NAME}
Python3::Module
fastrtps
Expand Down
38 changes: 28 additions & 10 deletions fastdds_python/src/swig/fastdds.i
Original file line number Diff line number Diff line change
Expand Up @@ -56,15 +56,27 @@
%include "std_vector.i"
%include "typemaps.i"

%{
#include "fastrtps/config.h"

bool has_statistics()
{
#ifdef FASTDDS_STATISTICS
return true;
#else
return false;
#endif
}

%}

bool has_statistics();

// Some operators are ignored, as there is no such thing in Python.
// Trying to export them issues a warning
%ignore *::operator=;
%ignore *::operator++;
%ignore *::operator!;
%ignore *::operator==;
%ignore *::operator!=;
%ignore *::operator<<;
%ignore *::operator>>;

// This ensures that the returned string references can be used with the string API
// Otherwise, they will be wrapped objects without API
Expand All @@ -83,6 +95,9 @@
#define FASTDDS_DEPRECATED_UNTIL(major, entity_name, msg)
#define FASTDDS_TODO_BEFORE(major, minor, msg)

// Defined template for std::vector<std::string>
%template(StringVector) std::vector<std::string>;

// Predeclaration of namespaces and/or classes not exported to the target language,
// but that are part of the Fast DDS public API
// SWIG will make an empty wrapper around these, but still needs to know they exists
Expand Down Expand Up @@ -116,6 +131,7 @@ namespace builtin {
%include "fastdds/rtps/common/GuidPrefix_t.i"
%include "fastdds/rtps/common/Guid.i"
%include "fastdds/rtps/common/PortParameters.i"
%include "fastdds/rtps/common/InstanceHandle.i"
%include "fastrtps/types/TypesBase.i"
%include "fastdds/rtps/resources/ResourceManagement.i"
%include "fastrtps/utils/collections/ResourceLimitedContainerConfig.i"
Expand All @@ -128,6 +144,9 @@ namespace builtin {
%include "fastdds/rtps/attributes/ServerAttributes.i"
%include "fastdds/rtps/attributes/ReaderAttributes.i"
%include "fastdds/rtps/attributes/WriterAttributes.i"
%include "fastdds/rtps/common/SequenceNumber.i"
%include "fastdds/rtps/common/SampleIdentity.i"
%include "fastdds/rtps/common/WriteParams.i"

/*
%include "fastdds/rtps/common/SerializedPayload.i"
Expand All @@ -141,10 +160,7 @@ namespace builtin {
%include "fastdds/rtps/common/MatchingInfo.i"
%include "fastdds/rtps/common/ChangeKind_t.i"
%include "fastdds/rtps/common/LocatorsIterator.i"
%include "fastdds/rtps/common/SampleIdentity.i"
%include "fastdds/rtps/common/SequenceNumber.i"
%include "fastdds/rtps/common/RemoteLocators.i"
%include "fastdds/rtps/common/WriteParams.i"

%include "fastrtps/rtps/common/LocatorListComparisons.i"
%include "fastrtps/rtps/common/PortParameters.i"
Expand Down Expand Up @@ -407,18 +423,20 @@ namespace builtin {
%include "fastrtps/Domain.i"
*/

%include "fastdds/dds/core/status/StatusMask.i"
%include "fastdds/dds/common/InstanceHandle.i"
%include "fastdds/dds/core/status/StatusMask.i"
%include "fastdds/dds/core/policy/ParameterTypes.i"
%include "fastdds/dds/core/policy/QosPolicies.i"
%include "fastdds/dds/topic/IContentFilter.i"
%include "fastdds/dds/topic/TopicDataType.i"
%include "fastdds/dds/topic/IContentFilterFactory.i"
%include "fastdds/dds/topic/TypeSupport.i"
%include "fastdds/dds/builtin/topic/BuiltinTopicKey.i"
%include "fastdds/dds/builtin/topic/ParticipantBuiltinTopicData.i"
%include "fastdds/dds/builtin/topic/SubscriptionBuiltinTopicData.i"
%include "fastdds/dds/builtin/topic/PublicationBuiltinTopicData.i"
%include "fastdds/dds/core/condition/Condition.i"
%include "fastdds/dds/core/condition/StatusCondition.i"
%include "fastdds/dds/core/Entity.i"
%include "fastdds/dds/core/condition/GuardCondition.i"
%include "fastdds/dds/core/condition/WaitSet.i"
%include "fastdds/dds/core/LoanableTypedCollection.i"
%include "fastdds/dds/core/StackAllocatedSequence.i"
Expand Down
60 changes: 2 additions & 58 deletions fastdds_python/src/swig/fastdds/dds/common/InstanceHandle.i
Original file line number Diff line number Diff line change
Expand Up @@ -13,64 +13,8 @@
// limitations under the License.

%{
#include "fastdds/rtps/common/InstanceHandle.h"

// Define a hash method in global scope for GuidPrefix_t types
// This is necessary if we want other classes to hash an internal GuidPrefix_t
long hash(const eprosima::fastrtps::rtps::InstanceHandle_t& handle)
{
long ret = 0;
for (unsigned int i = 0; i < 16; ++i)
{
ret = (ret * 31) ^ handle.value[i];
}
return ret;
}

#include "fastdds/dds/common/InstanceHandle.hpp"
%}

// SWIG does not support type conversion operators correctly unless converted to a normal method
%rename(get_guid) eprosima::fastrtps::rtps::InstanceHandle_t::operator const GUID_t&;

%ignore eprosima::fastrtps::rtps::InstanceHandleValue_t::operator [] const;
%rename(read_pointer_cast) eprosima::fastrtps::rtps::InstanceHandleValue_t::operator const octet* () const;
%rename(write_pointer_cast) eprosima::fastrtps::rtps::InstanceHandleValue_t::operator octet* ();

%include "fastdds/rtps/common/InstanceHandle.h"

namespace eprosima {
namespace fastdds {
namespace dds {

using InstanceHandle_t = eprosima::fastrtps::rtps::InstanceHandle_t;

} // namespace dds
} // namespace fastdds
} // namespace eprosima

// Declare the comparison operators as internal to the class
%extend eprosima::fastrtps::rtps::InstanceHandle_t {

bool operator==(const eprosima::fastrtps::rtps::InstanceHandle_t& other) const
{
return *$self == other;
}

bool operator!=(const eprosima::fastrtps::rtps::InstanceHandle_t& other) const
{
return *$self != other;
}

std::string __str__() const
{
std::ostringstream out;
out << *$self;
return out.str();
}

// Define the hash method using the global one
long __hash__() const
{
return hash(*$self);
}
}
%include "fastdds/dds/common/InstanceHandle.hpp"
102 changes: 102 additions & 0 deletions fastdds_python/src/swig/fastdds/dds/core/condition/Condition.i
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,108 @@

%{
#include "fastdds/dds/core/condition/Condition.hpp"
#include "fastdds/dds/core/condition/StatusCondition.hpp"
#include "fastdds/dds/core/condition/GuardCondition.hpp"
%}

%exception eprosima::fastdds::dds::Condition::to_status_condition()
{
try
{
$action
}
catch(std::bad_cast ex)
{
SWIG_exception(SWIG_TypeError, "Bad cast of Condition");
}
}

%exception eprosima::fastdds::dds::Condition::to_guard_condition()
{
try
{
$action
}
catch(std::bad_cast ex)
{
SWIG_exception(SWIG_TypeError, "Bad cast of Condition");
}
}

%extend eprosima::fastdds::dds::Condition
{
std::string __str__()
{
if (nullptr != dynamic_cast<eprosima::fastdds::dds::StatusCondition*>(self))
{
return "StatusCondition";
}
else if (nullptr != dynamic_cast<eprosima::fastdds::dds::GuardCondition*>(self))
{
return "GuardCondition";
}

return "None";
}

eprosima::fastdds::dds::StatusCondition* to_status_condition()
{
eprosima::fastdds::dds::StatusCondition* status_cond =
dynamic_cast<eprosima::fastdds::dds::StatusCondition*>(self);

if (nullptr == status_cond)
{
throw std::bad_cast();
}

return status_cond;
}

eprosima::fastdds::dds::GuardCondition* to_guard_condition()
{
eprosima::fastdds::dds::GuardCondition* guard_cond =
dynamic_cast<eprosima::fastdds::dds::GuardCondition*>(self);

if (nullptr == guard_cond)
{
throw std::bad_cast();
}

return guard_cond;
}
}

%extend eprosima::fastdds::dds::StatusCondition
{
std::string __str__()
{
return "StatusCondition";
}

bool __eq__(
const eprosima::fastdds::dds::StatusCondition* s1)
{
return s1 == self;
}
}

%extend eprosima::fastdds::dds::GuardCondition
{
std::string __str__()
{
return "GuardCondition";
}

bool __eq__(
const eprosima::fastdds::dds::GuardCondition* s1)
{
return s1 == self;
}
}

// Template for ConditionSeq
%template(ConditionSeq) std::vector<eprosima::fastdds::dds::Condition*>;

%include "fastdds/dds/core/condition/Condition.hpp"
%include "fastdds/dds/core/condition/StatusCondition.hpp"
%include "fastdds/dds/core/condition/GuardCondition.hpp"

This file was deleted.

49 changes: 46 additions & 3 deletions fastdds_python/src/swig/fastdds/dds/core/policy/QosPolicies.i
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ public:
catch (OctetResourceLimitedVectorStopIterator)
{
PyErr_SetString(PyExc_StopIteration, "End of iterator");
return NULL;
return nullptr;
}
}

Expand All @@ -108,15 +108,53 @@ public:
}
}

%extend eprosima::fastrtps::ResourceLimitedVector<eprosima::fastrtps::rtps::octet> {
%exception eprosima::fastrtps::ResourceLimitedVector<eprosima::fastrtps::rtps::octet>::__getitem__
{
try
{
$action
}
catch(std::out_of_range)
{
SWIG_exception(SWIG_IndexError, "Index out of bounds");
}
}

%extend eprosima::fastrtps::ResourceLimitedVector<eprosima::fastrtps::rtps::octet>
{
OctetResourceLimitedVectorIterator __iter__()
{
// return a constructed Iterator object
return OctetResourceLimitedVectorIterator($self->begin(), $self->end());
}

size_t __len__() const
{
return self->size();
}

eprosima::fastrtps::rtps::octet __getitem__(int i)
{
if (self->size() <= i)
{
throw std::out_of_range("Index out of bounds");
}
return (*self)[i];
}
}

%exception eprosima::fastdds::dds::PartitionQosPolicy::__getitem__
{
try
{
$action
}
catch(std::out_of_range)
{
SWIG_exception(SWIG_IndexError, "Index out of bounds");
}
}

// TODO (richiware) missing exceptions
%extend eprosima::fastdds::dds::PartitionQosPolicy
{
size_t __len__() const
Expand All @@ -126,6 +164,11 @@ public:

std::string __getitem__(int i)
{
if (self->size() <= i)
{
throw std::out_of_range("Index out of bounds");
}

auto it = self->begin();
for (int count = 0; count < i; ++count)
{
Expand Down
Loading