From ae2dfc65925da057da5777e5037ac51578a61596 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20Dom=C3=ADnguez=20L=C3=B3pez?= <116071334+Mario-DL@users.noreply.github.com> Date: Tue, 23 Jul 2024 15:30:31 +0200 Subject: [PATCH] Split `Time_t.i` in `dds::Time_t` and `rtps::Time_t` (#164) Signed-off-by: Mario Dominguez --- fastdds_python/src/swig/fastdds.i | 1 + .../src/swig/fastdds/dds/core/Time_t.i | 95 +++++++++++++++++++ .../src/swig/fastdds/rtps/common/Time_t.i | 74 --------------- 3 files changed, 96 insertions(+), 74 deletions(-) create mode 100644 fastdds_python/src/swig/fastdds/dds/core/Time_t.i diff --git a/fastdds_python/src/swig/fastdds.i b/fastdds_python/src/swig/fastdds.i index f97b00c8..ffcd92cb 100644 --- a/fastdds_python/src/swig/fastdds.i +++ b/fastdds_python/src/swig/fastdds.i @@ -173,6 +173,7 @@ namespace xtypes { %include "fastdds/dds/core/status/StatusMask.i" %include "fastdds/dds/core/policy/ParameterTypes.i" %include "fastdds/dds/core/policy/QosPolicies.i" +%include "fastdds/dds/core/Time_t.i" %include "fastdds/dds/topic/IContentFilter.i" %include "fastdds/dds/topic/TopicDataType.i" %include "fastdds/dds/topic/IContentFilterFactory.i" diff --git a/fastdds_python/src/swig/fastdds/dds/core/Time_t.i b/fastdds_python/src/swig/fastdds/dds/core/Time_t.i new file mode 100644 index 00000000..cddbbf47 --- /dev/null +++ b/fastdds_python/src/swig/fastdds/dds/core/Time_t.i @@ -0,0 +1,95 @@ +// Copyright 2022 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%{ +#include +%} + +// Also ignore the insertion/exraction operator of the remaining Time_t, +// as it makes no sense on the target language +%ignore eprosima::fastdds::dds::operator<<(std::ostream&, const Time_t&); +%ignore eprosima::fastdds::dds::operator>>(std::istream&, Time_t&); + +// Ignore the global comparison and arithmetic operators +// and make them class-internal +%ignore eprosima::fastdds::dds::operator==(const Time_t&, const Time_t&); +%ignore eprosima::fastdds::dds::operator!=(const Time_t&, const Time_t&); +%ignore eprosima::fastdds::dds::operator<(const Time_t&, const Time_t&); +%ignore eprosima::fastdds::dds::operator<=(const Time_t&, const Time_t&); +%ignore eprosima::fastdds::dds::operator>(const Time_t&, const Time_t&); +%ignore eprosima::fastdds::dds::operator>=(const Time_t&, const Time_t&); +%ignore eprosima::fastdds::dds::operator+(const Time_t&, const Time_t&); +%ignore eprosima::fastdds::dds::operator-(const Time_t&, const Time_t&); + +// Declare the comparison operators as internal to the class +%extend eprosima::fastdds::dds::Time_t { + bool operator==(const eprosima::fastdds::dds::Time_t& other) const + { + return *$self == other; + } + + bool operator!=(const eprosima::fastdds::dds::Time_t& other) const + { + return *$self != other; + } + + bool operator<(const eprosima::fastdds::dds::Time_t& other) const + { + return *$self < other; + } + + bool operator>(const eprosima::fastdds::dds::Time_t& other) const + { + return *$self > other; + } + + bool operator<=(const eprosima::fastdds::dds::Time_t& other) const + { + return *$self <= other; + } + + bool operator>=(const eprosima::fastdds::dds::Time_t& other) const + { + return *$self >= other; + } + + eprosima::fastdds::dds::Time_t operator+ (const eprosima::fastdds::dds::Time_t& other) const + { + return *$self + other; + } + + eprosima::fastdds::dds::Time_t operator- (const eprosima::fastdds::dds::Time_t& other) const + { + return *$self - other; + } +} + +%include + +namespace eprosima { +namespace fastdds { +namespace dds { + +struct Duration_t : public Time_t +{ + Duration_t(); + + Duration_t( + int32_t sec, + uint32_t nsec); +}; + +} // namespace dds +} // namespace fastdds +} // namespace eprosima diff --git a/fastdds_python/src/swig/fastdds/rtps/common/Time_t.i b/fastdds_python/src/swig/fastdds/rtps/common/Time_t.i index 34152235..b1d32816 100644 --- a/fastdds_python/src/swig/fastdds/rtps/common/Time_t.i +++ b/fastdds_python/src/swig/fastdds/rtps/common/Time_t.i @@ -32,78 +32,4 @@ %ignore eprosima::fastdds::rtps::operator<<(std::ostream&, const Time_t&); %ignore eprosima::fastdds::rtps::operator>>(std::istream&, Time_t&); -// Also ignore the insertion/exraction operator of the remaining Time_t, -// as it makes no sense on the target language -%ignore eprosima::fastdds::operator<<(std::ostream&, const Time_t&); -%ignore eprosima::fastdds::operator>>(std::istream&, Time_t&); - -// Ignore the global comparison and arithmetic operators -// and make them class-internal -%ignore eprosima::fastdds::operator==(const Time_t&, const Time_t&); -%ignore eprosima::fastdds::operator!=(const Time_t&, const Time_t&); -%ignore eprosima::fastdds::operator<(const Time_t&, const Time_t&); -%ignore eprosima::fastdds::operator<=(const Time_t&, const Time_t&); -%ignore eprosima::fastdds::operator>(const Time_t&, const Time_t&); -%ignore eprosima::fastdds::operator>=(const Time_t&, const Time_t&); -%ignore eprosima::fastdds::operator+(const Time_t&, const Time_t&); -%ignore eprosima::fastdds::operator-(const Time_t&, const Time_t&); - %include - -// Declare the comparison operators as internal to the class -%extend eprosima::fastdds::Time_t { - bool operator==(const eprosima::fastdds::Time_t& other) const - { - return *$self == other; - } - - bool operator!=(const eprosima::fastdds::Time_t& other) const - { - return *$self != other; - } - - bool operator<(const eprosima::fastdds::Time_t& other) const - { - return *$self < other; - } - - bool operator>(const eprosima::fastdds::Time_t& other) const - { - return *$self > other; - } - - bool operator<=(const eprosima::fastdds::Time_t& other) const - { - return *$self <= other; - } - - bool operator>=(const eprosima::fastdds::Time_t& other) const - { - return *$self >= other; - } - - eprosima::fastdds::Time_t operator+ (const eprosima::fastdds::Time_t& other) const - { - return *$self + other; - } - - eprosima::fastdds::Time_t operator- (const eprosima::fastdds::Time_t& other) const - { - return *$self - other; - } -} - -namespace eprosima { -namespace fastdds { - -struct Duration_t : public Time_t -{ - Duration_t(); - - Duration_t( - int32_t sec, - uint32_t nsec); -}; - -} // namespace fastdds -} // namespace eprosima