diff --git a/fastdds_python/src/swig/fastdds/dds/domain/DomainParticipantFactory.i b/fastdds_python/src/swig/fastdds/dds/domain/DomainParticipantFactory.i index 51a0e3dc..950579bc 100644 --- a/fastdds_python/src/swig/fastdds/dds/domain/DomainParticipantFactory.i +++ b/fastdds_python/src/swig/fastdds/dds/domain/DomainParticipantFactory.i @@ -48,6 +48,34 @@ return self->create_participant(domain_id, qos, listener, mask); } + /** + * Create a Participant. + * + * @param extended_qos DomainParticipantExtendedQos Reference. + * @param listener DomainParticipantListener Pointer (default: nullptr) + * @param mask StatusMask Reference (default: all) + * @return DomainParticipant pointer. (nullptr if not created.) + */ + DomainParticipant* create_participant( + const DomainParticipantExtendedQos& extended_qos, + DomainParticipantListener* listener = nullptr, + const StatusMask& mask = eprosima::fastdds::dds::StatusMask::all()) + { + if (nullptr != listener) + { + Swig::Director* director = SWIG_DIRECTOR_CAST(listener); + + if (nullptr != director) + { + SWIG_PYTHON_THREAD_BEGIN_BLOCK; + Py_INCREF(director->swig_get_self()); + SWIG_PYTHON_THREAD_END_BLOCK; + } + } + + return self->create_participant(extended_qos.domainId(), extended_qos, listener, mask); + } + /** * Create a Participant. *