diff --git a/src/cpp/rtps/security/SecurityManager.cpp b/src/cpp/rtps/security/SecurityManager.cpp index 5ffdbdcedde..020b12aa2fd 100644 --- a/src/cpp/rtps/security/SecurityManager.cpp +++ b/src/cpp/rtps/security/SecurityManager.cpp @@ -1263,7 +1263,7 @@ bool SecurityManager::create_participant_volatile_message_secure_writer() RTPSWriter* wout = nullptr; if (participant_->createWriter(&wout, watt, participant_volatile_message_secure_pool_, participant_volatile_message_secure_writer_history_, - nullptr, participant_volatile_message_secure_writer_entity_id, true)) + this, participant_volatile_message_secure_writer_entity_id, true)) { participant_->set_endpoint_rtps_protection_supports(wout, false); participant_volatile_message_secure_writer_ = dynamic_cast(wout); @@ -4341,3 +4341,16 @@ bool SecurityManager::DiscoveredParticipantInfo::check_guid_comes_from( } return ret; } + +void SecurityManager::onWriterChangeReceivedByAll( + RTPSWriter* writer, + CacheChange_t* change) +{ + static_cast(writer); + assert(writer == participant_volatile_message_secure_writer_); + + if (nullptr != participant_volatile_message_secure_writer_history_) + { + participant_volatile_message_secure_writer_history_->remove_change(change); + } +} diff --git a/src/cpp/rtps/security/SecurityManager.h b/src/cpp/rtps/security/SecurityManager.h index 9fec2491387..2e3b1f9dc09 100644 --- a/src/cpp/rtps/security/SecurityManager.h +++ b/src/cpp/rtps/security/SecurityManager.h @@ -37,6 +37,7 @@ #include #include #include +#include #include #include @@ -45,6 +46,7 @@ namespace fastrtps { namespace rtps { class RTPSParticipantImpl; +class RTPSWriter; class StatelessWriter; class StatelessReader; class StatefulWriter; @@ -66,7 +68,7 @@ struct EndpointSecurityAttributes; * * @ingroup SECURITY_MODULE */ -class SecurityManager +class SecurityManager : private WriterListener { public: @@ -874,6 +876,10 @@ class SecurityManager } } + void onWriterChangeReceivedByAll( + RTPSWriter* writer, + CacheChange_t* change) override; + /** * Syncronization object for plugin initialization, mutex_ protection is not necessary to guarantee plugin * availability.