Skip to content
Merged
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
1 change: 0 additions & 1 deletion fastdds_python/src/swig/fastdds.i
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ bool has_statistics()
return false;
#endif
}

%}

bool has_statistics();
Expand Down
167 changes: 167 additions & 0 deletions fastdds_python/src/swig/fastdds/dds/domain/DomainParticipant.i
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,175 @@
#include "fastdds/dds/domain/DomainParticipant.hpp"
%}

%extend eprosima::fastdds::dds::DomainParticipant
{
ReturnCode_t set_listener(
DomainParticipantListener* listener)
{
eprosima::fastdds::dds::DomainParticipantListener* old_listener =
const_cast<eprosima::fastdds::dds::DomainParticipantListener*>(self->get_listener());

eprosima::fastrtps::types::ReturnCode_t ret = self->set_listener(listener);

if ( (eprosima::fastrtps::types::ReturnCode_t::RETCODE_OK == ret) && (listener != old_listener) )
{

SWIG_PYTHON_THREAD_BEGIN_BLOCK;
if (nullptr != listener)
{
Swig::Director* director = SWIG_DIRECTOR_CAST(listener);

if (nullptr != director)
{
Py_INCREF(director->swig_get_self());
}
}
if (nullptr != old_listener)
{
Swig::Director* director = SWIG_DIRECTOR_CAST(old_listener);

if (nullptr != director)
{
Py_DECREF(director->swig_get_self());
}
}
SWIG_PYTHON_THREAD_END_BLOCK;

}

return ret;
}

ReturnCode_t set_listener(
DomainParticipantListener* listener,
const StatusMask& mask)
{
eprosima::fastdds::dds::DomainParticipantListener* old_listener =
const_cast<eprosima::fastdds::dds::DomainParticipantListener*>(self->get_listener());

eprosima::fastrtps::types::ReturnCode_t ret = self->set_listener(listener, mask);

if ( (eprosima::fastrtps::types::ReturnCode_t::RETCODE_OK == ret) && (listener != old_listener) )
{

SWIG_PYTHON_THREAD_BEGIN_BLOCK;
if (nullptr != listener)
{
Swig::Director* director = SWIG_DIRECTOR_CAST(listener);

if (nullptr != director)
{
Py_INCREF(director->swig_get_self());
}
}
if (nullptr != old_listener)
{
Swig::Director* director = SWIG_DIRECTOR_CAST(old_listener);

if (nullptr != director)
{
Py_DECREF(director->swig_get_self());
}
}
SWIG_PYTHON_THREAD_END_BLOCK;

}

return ret;
}

Publisher* create_publisher(
const PublisherQos& qos,
PublisherListener* 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_publisher(qos, listener, mask);
}

ReturnCode_t delete_publisher(
const Publisher* publisher)
{
eprosima::fastdds::dds::PublisherListener* listener =
const_cast<eprosima::fastdds::dds::PublisherListener*>(publisher->get_listener());
eprosima::fastrtps::types::ReturnCode_t ret = self->delete_publisher(publisher);

if (nullptr != listener)
{
Swig::Director* director = SWIG_DIRECTOR_CAST(listener);

if (nullptr != director)
{
SWIG_PYTHON_THREAD_BEGIN_BLOCK;
Py_DECREF(director->swig_get_self());
SWIG_PYTHON_THREAD_END_BLOCK;
}
}

return ret;
}

Subscriber* create_subscriber(
const SubscriberQos& qos,
SubscriberListener* 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_subscriber(qos, listener, mask);
}

ReturnCode_t delete_subscriber(
const Subscriber* subscriber)
{
eprosima::fastdds::dds::SubscriberListener* listener =
const_cast<eprosima::fastdds::dds::SubscriberListener*>(subscriber->get_listener());
eprosima::fastrtps::types::ReturnCode_t ret = self->delete_subscriber(subscriber);

if (nullptr != listener)
{
Swig::Director* director = SWIG_DIRECTOR_CAST(listener);

if (nullptr != director)
{
SWIG_PYTHON_THREAD_BEGIN_BLOCK;
Py_DECREF(director->swig_get_self());
SWIG_PYTHON_THREAD_END_BLOCK;
}
}

return ret;
}
}

%ignore eprosima::fastdds::dds::DomainParticipant::has_active_entities;
%ignore eprosima::fastdds::dds::DomainParticipant::DomainParticipant;
%ignore eprosima::fastdds::dds::DomainParticipant::~DomainParticipant;
%ignore eprosima::fastdds::dds::DomainParticipant::set_listener;
%ignore eprosima::fastdds::dds::DomainParticipant::create_publisher;
%ignore eprosima::fastdds::dds::DomainParticipant::create_subscriber;
%ignore eprosima::fastdds::dds::DomainParticipant::delete_publisher;
%ignore eprosima::fastdds::dds::DomainParticipant::delete_subscriber;

%include "fastdds/dds/domain/DomainParticipant.hpp"
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,58 @@
#include "fastdds/dds/domain/DomainParticipantFactory.hpp"
%}

/*
%extend eprosima::fastdds::dds::DomainParticipantFactory
{
}
*/
%extend eprosima::fastdds::dds::DomainParticipantFactory
{
DomainParticipant* create_participant(
DomainId_t domain_id,
const DomainParticipantQos& 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(domain_id, qos, listener, mask);
}

ReturnCode_t delete_participant(
DomainParticipant* part)
{
eprosima::fastdds::dds::DomainParticipantListener* listener =
const_cast<eprosima::fastdds::dds::DomainParticipantListener*>(part->get_listener());
eprosima::fastrtps::types::ReturnCode_t ret = self->delete_participant(part);

if (nullptr != listener)
{
Swig::Director* director = SWIG_DIRECTOR_CAST(listener);

if (nullptr != director)
{
SWIG_PYTHON_THREAD_BEGIN_BLOCK;
Py_DECREF(director->swig_get_self());
SWIG_PYTHON_THREAD_END_BLOCK;
}
}

return ret;
}
}

%ignore eprosima::fastdds::dds::DomainParticipantFactory::create_participant;
%ignore eprosima::fastdds::dds::DomainParticipantFactory::delete_participant;

%include "fastdds/dds/domain/DomainParticipantFactory.hpp"
77 changes: 77 additions & 0 deletions fastdds_python/src/swig/fastdds/dds/publisher/DataWriter.i
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,84 @@
eprosima::fastrtps::types::ReturnCode_t ret = self->clear_history(removed);
return ret;
}

ReturnCode_t set_listener(
DataWriterListener* listener)
{
eprosima::fastdds::dds::DataWriterListener* old_listener =
const_cast<eprosima::fastdds::dds::DataWriterListener*>(self->get_listener());

eprosima::fastrtps::types::ReturnCode_t ret = self->set_listener(listener);

if ( (eprosima::fastrtps::types::ReturnCode_t::RETCODE_OK == ret) && (listener != old_listener) )
{

SWIG_PYTHON_THREAD_BEGIN_BLOCK;
if (nullptr != listener)
{
Swig::Director* director = SWIG_DIRECTOR_CAST(listener);

if (nullptr != director)
{
Py_INCREF(director->swig_get_self());
}
}
if (nullptr != old_listener)
{
Swig::Director* director = SWIG_DIRECTOR_CAST(old_listener);

if (nullptr != director)
{
Py_DECREF(director->swig_get_self());
}
}
SWIG_PYTHON_THREAD_END_BLOCK;

}

return ret;
}

ReturnCode_t set_listener(
DataWriterListener* listener,
const StatusMask& mask)
{
eprosima::fastdds::dds::DataWriterListener* old_listener =
const_cast<eprosima::fastdds::dds::DataWriterListener*>(self->get_listener());

eprosima::fastrtps::types::ReturnCode_t ret = self->set_listener(listener, mask);

if ( (eprosima::fastrtps::types::ReturnCode_t::RETCODE_OK == ret) && (listener != old_listener) )
{

SWIG_PYTHON_THREAD_BEGIN_BLOCK;
if (nullptr != listener)
{
Swig::Director* director = SWIG_DIRECTOR_CAST(listener);

if (nullptr != director)
{
Py_INCREF(director->swig_get_self());
}
}
if (nullptr != old_listener)
{
Swig::Director* director = SWIG_DIRECTOR_CAST(old_listener);

if (nullptr != director)
{
Py_DECREF(director->swig_get_self());
}
}
SWIG_PYTHON_THREAD_END_BLOCK;

}

return ret;
}
}

%ignore eprosima::fastdds::dds::DataWriter::set_listener;
%ignore eprosima::fastdds::dds::DataWriter::clear_history(size_t*);

// Template for std::vector<DataWriter*>
Expand Down
Loading