-
Notifications
You must be signed in to change notification settings - Fork 791
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix hidden overloaded virtual methods (#4516)
* Refs #20592: Fix for test Signed-off-by: EduPonz <eduardoponz@eprosima.com> * Refs #20592: Fix for examples Signed-off-by: EduPonz <eduardoponz@eprosima.com> * Refs #20592: Add more warning flags to Ubuntu CI Signed-off-by: EduPonz <eduardoponz@eprosima.com> * Refs #20592: Remove default values on overloaded PDPClient::announceParticipantState Signed-off-by: EduPonz <eduardoponz@eprosima.com> --------- Signed-off-by: EduPonz <eduardoponz@eprosima.com> (cherry picked from commit 63cc242) # Conflicts: # .github/workflows/reusable-ubuntu-ci.yml # examples/cpp/dds/DiscoveryServerExample/DiscoveryServerPublisher.h # examples/cpp/dds/DiscoveryServerExample/DiscoveryServerServer.h # examples/cpp/dds/DiscoveryServerExample/DiscoveryServerSubscriber.h # test/blackbox/common/DDSBlackboxTestsDataRepresentationQos.cpp # test/blackbox/common/DDSBlackboxTestsDiscovery.cpp # test/dds/communication/security/PublisherModule.hpp # test/dds/communication/security/SubscriberModule.hpp # test/unittest/statistics/dds/StatisticsDomainParticipantStatusQueryableTests.cpp
- Loading branch information
1 parent
4d6539b
commit 3be63a0
Showing
41 changed files
with
1,369 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
126 changes: 126 additions & 0 deletions
126
examples/cpp/dds/DiscoveryServerExample/DiscoveryServerPublisher.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,126 @@ | ||
// 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 DiscoveryServerPublisher.h | ||
* | ||
*/ | ||
|
||
#ifndef _EPROSIMA_FASTDDS_EXAMPLES_CPP_DDS_DISCOVERYSERVEREXAMPLE_DISCOVERYSERVERPUBLISHER_H_ | ||
#define _EPROSIMA_FASTDDS_EXAMPLES_CPP_DDS_DISCOVERYSERVEREXAMPLE_DISCOVERYSERVERPUBLISHER_H_ | ||
|
||
#include <atomic> | ||
|
||
#include <fastdds/dds/domain/DomainParticipant.hpp> | ||
#include <fastdds/dds/domain/DomainParticipantListener.hpp> | ||
#include <fastdds/dds/topic/TypeSupport.hpp> | ||
|
||
#include "types/HelloWorldPubSubTypes.h" | ||
#include "common.h" | ||
|
||
/** | ||
* Class used to group into a single working unit a Publisher with a DataWriter, its listener, and a TypeSupport member | ||
* corresponding to the HelloWorld datatype | ||
*/ | ||
class HelloWorldPublisher | ||
{ | ||
public: | ||
|
||
HelloWorldPublisher(); | ||
|
||
virtual ~HelloWorldPublisher(); | ||
|
||
//! Initialize the publisher | ||
bool init( | ||
const std::string& topic_name, | ||
const std::string& server_address, | ||
unsigned short server_port, | ||
unsigned short server_id, | ||
TransportKind transport); | ||
|
||
//! Publish a sample | ||
void publish(); | ||
|
||
//! Run for number samples, publish every sleep seconds | ||
void run( | ||
uint32_t number, | ||
uint32_t sleep); | ||
|
||
//! Return the current state of execution | ||
static bool is_stopped(); | ||
|
||
//! Trigger the end of execution | ||
static void stop(); | ||
|
||
private: | ||
|
||
HelloWorld hello_; | ||
|
||
eprosima::fastdds::dds::DomainParticipant* participant_; | ||
|
||
eprosima::fastdds::dds::Publisher* publisher_; | ||
|
||
eprosima::fastdds::dds::Topic* topic_; | ||
|
||
eprosima::fastdds::dds::DataWriter* writer_; | ||
|
||
eprosima::fastdds::dds::TypeSupport type_; | ||
|
||
/** | ||
* Class handling discovery events | ||
*/ | ||
class PubListener : public eprosima::fastdds::dds::DomainParticipantListener | ||
{ | ||
public: | ||
|
||
PubListener() | ||
: matched_(0) | ||
{ | ||
} | ||
|
||
~PubListener() override | ||
{ | ||
} | ||
|
||
//! Callback executed when a DataReader is matched or unmatched | ||
void on_publication_matched( | ||
eprosima::fastdds::dds::DataWriter* writer, | ||
const eprosima::fastdds::dds::PublicationMatchedStatus& info) 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; | ||
|
||
//! Number of DataReaders matched to the associated DataWriter | ||
std::atomic<std::uint32_t> matched_; | ||
} | ||
listener_; | ||
|
||
//! Run thread for number samples, publish every sleep seconds | ||
void runThread( | ||
uint32_t number, | ||
uint32_t sleep); | ||
|
||
//! Member used for control flow purposes | ||
static std::atomic<bool> stop_; | ||
}; | ||
|
||
|
||
|
||
#endif /* _EPROSIMA_FASTDDS_EXAMPLES_CPP_DDS_DISCOVERYSERVEREXAMPLE_DISCOVERYSERVERPUBLISHER_H_ */ |
106 changes: 106 additions & 0 deletions
106
examples/cpp/dds/DiscoveryServerExample/DiscoveryServerServer.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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_ */ |
140 changes: 140 additions & 0 deletions
140
examples/cpp/dds/DiscoveryServerExample/DiscoveryServerSubscriber.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,140 @@ | ||
// 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 DiscoveryServerSubscriber.h | ||
* | ||
*/ | ||
|
||
#ifndef _EPROSIMA_FASTDDS_EXAMPLES_CPP_DDS_DISCOVERYSERVEREXAMPLE_DISCOVERYSERVERSUBSCRIBER_H_ | ||
#define _EPROSIMA_FASTDDS_EXAMPLES_CPP_DDS_DISCOVERYSERVEREXAMPLE_DISCOVERYSERVERSUBSCRIBER_H_ | ||
|
||
#include <atomic> | ||
#include <condition_variable> | ||
#include <mutex> | ||
|
||
#include <fastdds/dds/core/status/SubscriptionMatchedStatus.hpp> | ||
#include <fastdds/dds/domain/DomainParticipant.hpp> | ||
#include <fastdds/dds/domain/DomainParticipantListener.hpp> | ||
|
||
#include "types/HelloWorldPubSubTypes.h" | ||
#include "common.h" | ||
|
||
/** | ||
* Class used to group into a single working unit a Subscriber with a DataReader, its listener, and a TypeSupport member | ||
* corresponding to the HelloWorld datatype | ||
*/ | ||
class HelloWorldSubscriber | ||
{ | ||
public: | ||
|
||
HelloWorldSubscriber(); | ||
|
||
virtual ~HelloWorldSubscriber(); | ||
|
||
//! Initialize the subscriber | ||
bool init( | ||
const std::string& topic_name, | ||
uint32_t max_messages, | ||
const std::string& server_address, | ||
unsigned short server_port, | ||
unsigned short server_id, | ||
TransportKind transport); | ||
|
||
//! RUN the subscriber until number samples are received | ||
void run( | ||
uint32_t number); | ||
|
||
//! Return the current state of execution | ||
static bool is_stopped(); | ||
|
||
//! Trigger the end of execution | ||
static void stop(); | ||
|
||
private: | ||
|
||
eprosima::fastdds::dds::DomainParticipant* participant_; | ||
|
||
eprosima::fastdds::dds::Subscriber* subscriber_; | ||
|
||
eprosima::fastdds::dds::Topic* topic_; | ||
|
||
eprosima::fastdds::dds::DataReader* reader_; | ||
|
||
eprosima::fastdds::dds::TypeSupport type_; | ||
|
||
/** | ||
* Class handling discovery and dataflow events | ||
*/ | ||
class SubListener : public eprosima::fastdds::dds::DomainParticipantListener | ||
{ | ||
public: | ||
|
||
SubListener() | ||
: matched_(0) | ||
, samples_(0) | ||
, max_messages_(0) | ||
{ | ||
} | ||
|
||
~SubListener() override | ||
{ | ||
} | ||
|
||
//! Set the maximum number of messages to receive before exiting | ||
void set_max_messages( | ||
uint32_t max_messages); | ||
|
||
//! Callback executed when a new sample is received | ||
void on_data_available( | ||
eprosima::fastdds::dds::DataReader* reader) override; | ||
|
||
//! Callback executed when a DataWriter is matched or unmatched | ||
void on_subscription_matched( | ||
eprosima::fastdds::dds::DataReader* reader, | ||
const eprosima::fastdds::dds::SubscriptionMatchedStatus& info) 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; | ||
|
||
HelloWorld hello_; | ||
|
||
//! Number of DataWriters matched to the associated DataReader | ||
int matched_; | ||
|
||
//! Number of samples received | ||
uint32_t samples_; | ||
|
||
//! Number of messages to be received before triggering termination of execution | ||
uint32_t max_messages_; | ||
} | ||
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_DISCOVERYSERVERSUBSCRIBER_H_ */ |
Oops, something went wrong.