Skip to content

Commit

Permalink
Split Time_t.i in dds::Time_t and rtps::Time_t (#164)
Browse files Browse the repository at this point in the history
Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
  • Loading branch information
Mario-DL authored Jul 23, 2024
1 parent 976dcd6 commit ae2dfc6
Show file tree
Hide file tree
Showing 3 changed files with 96 additions and 74 deletions.
1 change: 1 addition & 0 deletions fastdds_python/src/swig/fastdds.i
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
95 changes: 95 additions & 0 deletions fastdds_python/src/swig/fastdds/dds/core/Time_t.i
Original file line number Diff line number Diff line change
@@ -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 <fastdds/dds/core/Time_t.hpp>
%}

// 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 <fastdds/dds/core/Time_t.hpp>

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
74 changes: 0 additions & 74 deletions fastdds_python/src/swig/fastdds/rtps/common/Time_t.i
Original file line number Diff line number Diff line change
Expand Up @@ -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 <fastdds/rtps/common/Time_t.hpp>

// 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

0 comments on commit ae2dfc6

Please sign in to comment.