Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[20592] Fix hidden overloaded virtual methods (backport #4516) #4593

Closed
wants to merge 1 commit into from
Closed
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
4 changes: 4 additions & 0 deletions .github/workflows/reusable-ubuntu-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,11 @@ jobs:
colcon_meta_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/ci.meta
colcon_build_args: ${{ inputs.colcon-args }}
cmake_args: ${{ inputs.cmake-args }}
<<<<<<< HEAD
cmake_args_default: -DCMAKE_CXX_FLAGS="-Werror -Wall"
=======
cmake_args_default: -DCMAKE_CXX_FLAGS="-Werror -Wall -Wextra -Wpedantic -Wunused-value -Woverloaded-virtual" -DFASTDDS_EXAMPLE_TESTS=ON
>>>>>>> 63cc242b2 (Fix hidden overloaded virtual methods (#4516))
cmake_build_type: ${{ matrix.cmake-build-type }}
workspace: ${{ github.workspace }}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,8 @@ class HelloWorldPublisher

private:

using eprosima::fastdds::dds::DomainParticipantListener::on_participant_discovery;

//! Number of DataReaders matched to the associated DataWriter
std::atomic<std::uint32_t> matched_;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,8 @@ class HelloWorldSubscriber

private:

using eprosima::fastdds::dds::DomainParticipantListener::on_participant_discovery;

HelloWorld hello_;

//! Number of DataWriters matched to the associated DataReader
Expand Down
6 changes: 6 additions & 0 deletions examples/C++/DDS/LivelinessQoS/LivelinessSubscriber.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,15 @@ class LivelinessSubscriber

class PartListener : public eprosima::fastdds::dds::DomainParticipantListener
{
public:

virtual void on_participant_discovery(
eprosima::fastdds::dds::DomainParticipant* participant,
eprosima::fastrtps::rtps::ParticipantDiscoveryInfo&& info) override;

private:

using eprosima::fastdds::dds::DomainParticipantListener::on_participant_discovery;
};

PartListener part_listener_;
Expand Down
9 changes: 9 additions & 0 deletions examples/C++/RTPSTest_persistent/TestReaderPersistent.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,16 @@ class TestReaderPersistent
};
uint32_t n_received;
uint32_t n_matched;
<<<<<<< HEAD:examples/C++/RTPSTest_persistent/TestReaderPersistent.h
}m_listener;
=======

private:

using eprosima::fastrtps::rtps::ReaderListener::onReaderMatched;
}
m_listener;
>>>>>>> 63cc242b2 (Fix hidden overloaded virtual methods (#4516)):examples/cpp/rtps/Persistent/TestReaderPersistent.h
};

#endif /* TESTREADERPERSISTENT_H_ */
9 changes: 9 additions & 0 deletions examples/C++/RTPSTest_persistent/TestWriterPersistent.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,16 @@ class TestWriterPersistent {
++n_matched;
}
int n_matched;
<<<<<<< HEAD:examples/C++/RTPSTest_persistent/TestWriterPersistent.h
}m_listener;
=======

private:

using eprosima::fastrtps::rtps::WriterListener::onWriterMatched;
}
m_listener;
>>>>>>> 63cc242b2 (Fix hidden overloaded virtual methods (#4516)):examples/cpp/rtps/Persistent/TestWriterPersistent.h
};

#endif /* TESTWRITERPERSISTENT_H_ */
9 changes: 9 additions & 0 deletions examples/C++/RTPSTest_registered/TestReaderRegistered.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,16 @@ class TestReaderRegistered
};
uint32_t n_received;
uint32_t n_matched;
<<<<<<< HEAD:examples/C++/RTPSTest_registered/TestReaderRegistered.h
}m_listener;
=======

private:

using eprosima::fastrtps::rtps::ReaderListener::onReaderMatched;
}
m_listener;
>>>>>>> 63cc242b2 (Fix hidden overloaded virtual methods (#4516)):examples/cpp/rtps/Registered/TestReaderRegistered.h
};

#endif /* TESTREADER_H_ */
9 changes: 9 additions & 0 deletions examples/C++/RTPSTest_registered/TestWriterRegistered.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,16 @@ class TestWriterRegistered {
++n_matched;
}
int n_matched;
<<<<<<< HEAD:examples/C++/RTPSTest_registered/TestWriterRegistered.h
}m_listener;
=======

private:

using eprosima::fastrtps::rtps::WriterListener::onWriterMatched;
}
m_listener;
>>>>>>> 63cc242b2 (Fix hidden overloaded virtual methods (#4516)):examples/cpp/rtps/Registered/TestWriterRegistered.h
};

#endif /* TESTWRITER_H_ */
106 changes: 106 additions & 0 deletions examples/cpp/dds/DiscoveryServerExample/DiscoveryServerServer.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
// Copyright 2021 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.

/**
* @file DiscoveryServerServer.h
*
*/

#ifndef _EPROSIMA_FASTDDS_EXAMPLES_CPP_DDS_DISCOVERYSERVEREXAMPLE_DISCOVERYSERVERSERVER_H_
#define _EPROSIMA_FASTDDS_EXAMPLES_CPP_DDS_DISCOVERYSERVEREXAMPLE_DISCOVERYSERVERSERVER_H_

#include <atomic>
#include <condition_variable>
#include <mutex>

#include <fastdds/dds/domain/DomainParticipant.hpp>
#include <fastdds/dds/domain/DomainParticipantListener.hpp>

#include "common.h"

/**
* Class with a partipant configured to function as server in the Discovery Server mechanism
*/
class DiscoveryServer
{
public:

DiscoveryServer();

virtual ~DiscoveryServer();

//! Initialize the server
bool init(
const std::string& server_address,
unsigned short server_port,
unsigned short server_id,
TransportKind transport,
bool has_connection_server,
const std::string& connection_server_address,
unsigned short connection_server_port,
unsigned short connection_server_id);

//! Run
void run(
unsigned int timeout);

//! Return the current state of execution
static bool is_stopped();

//! Trigger the end of execution
static void stop();

private:

eprosima::fastdds::dds::DomainParticipant* participant_;

/**
* Class handling discovery events
*/
class ServerListener : public eprosima::fastdds::dds::DomainParticipantListener
{
public:

ServerListener()
{
}

~ServerListener() override
{
}

//! Callback executed when a DomainParticipant is discovered, dropped or removed
void on_participant_discovery(
eprosima::fastdds::dds::DomainParticipant* /*participant*/,
eprosima::fastrtps::rtps::ParticipantDiscoveryInfo&& info) override;

private:

using eprosima::fastdds::dds::DomainParticipantListener::on_participant_discovery;
}
listener_;

//! Member used for control flow purposes
static std::atomic<bool> stop_;

//! Protects terminate condition variable
static std::mutex terminate_cv_mtx_;

//! Waits during execution until SIGINT or max_messages_ samples are received
static std::condition_variable terminate_cv_;
};



#endif /* _EPROSIMA_FASTDDS_EXAMPLES_CPP_DDS_DISCOVERYSERVEREXAMPLE_DISCOVERYSERVERSERVER_H_ */
4 changes: 2 additions & 2 deletions src/cpp/rtps/builtin/discovery/participant/PDPClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,8 @@ class PDPClient : public PDP
*/
void announceParticipantState(
bool new_change,
bool dispose = false,
WriteParams& wparams = WriteParams::WRITE_PARAM_DEFAULT) override;
bool dispose,
WriteParams& wparams) override;

/**
* These methods wouldn't be needed under perfect server operation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,15 @@ bool DSClientEvent::event()
// This marks to announceParticipantState that the announcement is only meant for missing servers,
// so it is not a periodic announcement
mp_PDP->_serverPing = true;
<<<<<<< HEAD
mp_PDP->announceParticipantState(false);
logInfo(CLIENT_PDP_THREAD, "Client " << mp_PDP->getRTPSParticipant()->getGuid() << " PDP announcement");
=======
WriteParams __wp = WriteParams::write_params_default();
mp_PDP->announceParticipantState(false, false, __wp);
EPROSIMA_LOG_INFO(CLIENT_PDP_THREAD,
"Client " << mp_PDP->getRTPSParticipant()->getGuid() << " PDP announcement");
>>>>>>> 63cc242b2 (Fix hidden overloaded virtual methods (#4516))
}

return restart;
Expand Down
2 changes: 2 additions & 0 deletions test/blackbox/api/dds-pim/PubSubParticipant.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,8 @@ class PubSubParticipant

private:

using eprosima::fastdds::dds::DomainParticipantListener::on_participant_discovery;

ParticipantListener& operator =(
const ParticipantListener&) = delete;
PubSubParticipant* participant_;
Expand Down
3 changes: 3 additions & 0 deletions test/blackbox/api/dds-pim/PubSubReader.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,9 @@ class PubSubReader

private:

using eprosima::fastdds::dds::DomainParticipantListener::on_participant_discovery;
using eprosima::fastdds::dds::DomainParticipantListener::on_publisher_discovery;

ParticipantListener& operator =(
const ParticipantListener&) = delete;
PubSubReader& reader_;
Expand Down
4 changes: 4 additions & 0 deletions test/blackbox/api/dds-pim/PubSubWriter.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,10 @@ class PubSubWriter

private:

using eprosima::fastdds::dds::DomainParticipantListener::on_participant_discovery;
using eprosima::fastdds::dds::DomainParticipantListener::on_publisher_discovery;
using eprosima::fastdds::dds::DomainParticipantListener::on_subscriber_discovery;

ParticipantListener& operator =(
const ParticipantListener&) = delete;

Expand Down
4 changes: 4 additions & 0 deletions test/blackbox/api/dds-pim/PubSubWriterReader.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,10 @@ class PubSubWriterReader

private:

using eprosima::fastdds::dds::DomainParticipantListener::on_participant_discovery;
using eprosima::fastdds::dds::DomainParticipantListener::on_publisher_discovery;
using eprosima::fastdds::dds::DomainParticipantListener::on_subscriber_discovery;

//! Mutex guarding all info collections
mutable std::mutex info_mutex_;
//! The discovered participants excluding the participant this listener is listening to
Expand Down
Loading