Safe DDS
eprosima::safedds::dds::SafeDomainParticipantFactory Class Reference

DDS Domain Participant factory for Safety Profile. More...

#include <SafeDomainParticipantFactory.hpp>

Public Member Functions

 SafeDomainParticipantFactory (memory::IByteArrayView &allocation_buffer, const transport::TransportAllocConfig &transport_alloc_config, uint32_t reception_buffer_size, uint32_t max_sending_size) noexcept
 DomainParticipantFactory constructor. More...
 
 ~SafeDomainParticipantFactory () noexcept override=default
 Protected destructor. More...
 
 SafeDomainParticipantFactory (const SafeDomainParticipantFactory &) noexcept=delete
 Copy deleted. More...
 
 SafeDomainParticipantFactory (SafeDomainParticipantFactory &&) noexcept=delete
 Movement deleted. More...
 
SafeDomainParticipantFactoryoperator= (const SafeDomainParticipantFactory &) noexcept=delete
 Copy operator deleted. More...
 
SafeDomainParticipantFactoryoperator= (SafeDomainParticipantFactory &&) noexcept=delete
 Movement operator deleted due private references. More...
 
DomainParticipantcreate_participant (DomainId domain_id, const DomainParticipantQos &qos, DomainParticipantListener &listener) noexcept
 Creates a DomainParticipant. More...
 
DomainParticipantcreate_participant (DomainId domain_id, const DomainParticipantQos &qos) noexcept
 Creates a DomainParticipant. More...
 
ReturnCode on_participant_pre_enable (BaseDomainParticipant &participant) noexcept override
 
execution::ISpinnablecreate_default_executor () noexcept override
 Creates a default executor. More...
 
virtual bool safedds_safety_manual_check (BaseDomainParticipant &participant) const noexcept
 Safety checks on participant. More...
 
virtual bool safedds_safety_manual_subscriber_check (const SubscriberQos &qos) const noexcept
 Safety checks on Subscriber QoS. More...
 
virtual bool safedds_safety_manual_publisher_check (const PublisherQos &qos) const noexcept
 Safety checks on Publisher QoS. More...
 
virtual bool safedds_safety_manual_datareader_check (const DataReaderQos &qos) const noexcept
 Safety checks on DataReader QoS. More...
 
virtual bool safedds_safety_manual_datawriter_check (const DataWriterQos &qos) const noexcept
 Safety checks on DataWriter QoS. More...
 
virtual bool safedds_safety_manual_topic_check (const TopicQos &qos) const noexcept
 Safety checks on Topic QoS. More...
 
virtual bool safedds_safety_manual_participant_check (const DomainParticipantQos &qos) const noexcept
 Safety checks on DomainParticipant QoS. More...
 
ReturnCode decommission_contained_entities () noexcept override
 Remove contained entities. More...
 
- Public Member Functions inherited from eprosima::safedds::dds::SafeDomainParticipantFactoryAllocator
 SafeDomainParticipantFactoryAllocator (const SafeDomainParticipantFactoryAllocator &) noexcept=delete
 Copy deleted. More...
 
 SafeDomainParticipantFactoryAllocator (SafeDomainParticipantFactoryAllocator &&) noexcept=delete
 Movement deleted. More...
 
SafeDomainParticipantFactoryAllocatoroperator= (const SafeDomainParticipantFactoryAllocator &) noexcept=delete
 Copy operator deleted. More...
 
SafeDomainParticipantFactoryAllocatoroperator= (SafeDomainParticipantFactoryAllocator &&) noexcept=delete
 Movement operator deleted due private references. More...
 
void * allocate (uint32_t size, uint32_t alignment) noexcept override
 Allocate memory. More...
 
uint32_t get_used_bytes () const noexcept
 Retrieve the used bytes from the provided buffer. More...
 
- Public Member Functions inherited from eprosima::safedds::dds::DomainParticipantFactory
 DomainParticipantFactory () noexcept
 DomainParticipantFactory constructor. More...
 
 DomainParticipantFactory (platform::IAllocator &allocator) noexcept
 DomainParticipantFactory constructor. More...
 
 DomainParticipantFactory (transport::ITransport &transport_implementation) noexcept
 DomainParticipantFactory constructor. More...
 
 DomainParticipantFactory (platform::IAllocator &allocator, transport::ITransport &transport_implementation) noexcept
 DomainParticipantFactory constructor. More...
 
virtual ~DomainParticipantFactory () noexcept=default
 Default destructor. More...
 
 DomainParticipantFactory (const DomainParticipantFactory &) noexcept=delete
 Copy deleted. More...
 
 DomainParticipantFactory (DomainParticipantFactory &&) noexcept=delete
 Movement deleted. More...
 
DomainParticipantFactoryoperator= (const DomainParticipantFactory &) noexcept=delete
 Copy operator deleted. More...
 
DomainParticipantFactoryoperator= (DomainParticipantFactory &&) noexcept=delete
 Movement operator deleted due private references. More...
 
virtual DomainParticipantcreate_participant (DomainId domain_id, const DomainParticipantQos &qos, DomainParticipantListener *listener, const StatusMask &mask) noexcept
 Creates a DomainParticipant. More...
 
ReturnCode get_qos (DomainParticipantFactoryQos &qos) noexcept
 Get the DomainParticipantFactoryQos. More...
 
ReturnCode on_participant_pre_enable (BaseDomainParticipant &participant) noexcept override
 

Protected Member Functions

BaseDomainParticipant * create_base_domain_participant (DomainId domain_id, const DomainParticipantQos &qos, DomainParticipantListener *listener, const StatusMask &mask, protocol::IMessageSink &sink, discovery::ILocatorObserver &locator_processor, ILocalParticipantObserver &local_participant_observer, transport::IFileDescriptorSelector *fd_selector) noexcept override
 Construct a BaseDomainParticipant. More...
 
- Protected Member Functions inherited from eprosima::safedds::dds::SafeDomainParticipantFactoryAllocator
 SafeDomainParticipantFactoryAllocator (memory::IByteArrayView &allocation_buffer) noexcept
 SafeDomainParticipantFactoryAllocator constructor. More...
 
 ~SafeDomainParticipantFactoryAllocator () noexcept=default
 Default destructor protected. More...
 
- Protected Member Functions inherited from eprosima::safedds::platform::IAllocator
 ~IAllocator () noexcept=default
 Default destructor. More...
 
 IAllocator () noexcept=default
 Default creation. More...
 
 IAllocator (const IAllocator &) noexcept=delete
 Copy deleted. More...
 
 IAllocator (IAllocator &&) noexcept=delete
 Movement deleted. More...
 
IAllocatoroperator= (const IAllocator &) noexcept=delete
 Copy operator deleted. More...
 
IAllocatoroperator= (IAllocator &&) noexcept=delete
 Movement operator deleted. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from eprosima::safedds::dds::DomainParticipantFactory
static ReturnCode delete_participant (DomainParticipant *participant) noexcept
 Deletes a DomainParticipant. More...
 
static DomainParticipantlookup_participant (DomainId domain_id) noexcept
 Lookup a DomainParticipant. More...
 
static ReturnCode get_default_participant_qos (DomainParticipantQos &qos) noexcept
 Get the default DomainParticipantQos. More...
 
static ReturnCode set_default_participant_qos (const DomainParticipantQos &qos) noexcept
 Set the default DomainParticipantQos. More...
 
static ReturnCode set_qos (const DomainParticipantFactoryQos &qos) noexcept
 Set the DomainParticipantFactoryQos. More...
 
static void prepare_participant_qos (uint32_t participant_id, DomainParticipantQos &qos) noexcept
 Prepares a DomainParticipant QoS to be used. More...
 
- Protected Attributes inherited from eprosima::safedds::dds::SafeDomainParticipantFactoryAllocator
bool operational_phase_flag_ = false
 Operational phase flag. More...
 
- Protected Attributes inherited from eprosima::safedds::dds::DomainParticipantFactory
platform::IAllocatorallocator_
 Allocator implementation. More...
 
memory::container::PreallocReferenceList< BaseDomainParticipant > created_base_participants_
 List of created participants. More...
 
memory::container::PreallocMap< transport::Locator, BaseDomainTransportDispatcher::CreatedParticipantsBitmap > prealloc_locator_to_participant_database_
 Declaration of the locator to participant index bitmap. More...
 
bool enabled_ = false
 Enabled flag. More...
 

Detailed Description

DDS Domain Participant factory for Safety Profile.

Constructor & Destructor Documentation

◆ SafeDomainParticipantFactory() [1/3]

eprosima::safedds::dds::SafeDomainParticipantFactory::SafeDomainParticipantFactory ( memory::IByteArrayView allocation_buffer,
const transport::TransportAllocConfig &  transport_alloc_config,
uint32_t  reception_buffer_size,
uint32_t  max_sending_size 
)
noexcept

DomainParticipantFactory constructor.

Parameters
allocation_bufferBuffer to allocate the Safe DDS memory
transport_alloc_configMemory configuration for transport allocations
reception_buffer_sizeSize of the reception buffer
max_sending_sizeMaximum size of the sending buffer

◆ ~SafeDomainParticipantFactory()

eprosima::safedds::dds::SafeDomainParticipantFactory::~SafeDomainParticipantFactory ( )
overridedefaultnoexcept

Protected destructor.

◆ SafeDomainParticipantFactory() [2/3]

eprosima::safedds::dds::SafeDomainParticipantFactory::SafeDomainParticipantFactory ( const SafeDomainParticipantFactory )
deletenoexcept

Copy deleted.

◆ SafeDomainParticipantFactory() [3/3]

eprosima::safedds::dds::SafeDomainParticipantFactory::SafeDomainParticipantFactory ( SafeDomainParticipantFactory &&  )
deletenoexcept

Movement deleted.

Member Function Documentation

◆ create_base_domain_participant()

BaseDomainParticipant* eprosima::safedds::dds::SafeDomainParticipantFactory::create_base_domain_participant ( DomainId  domain_id,
const DomainParticipantQos qos,
DomainParticipantListener listener,
const StatusMask mask,
protocol::IMessageSink sink,
discovery::ILocatorObserver locator_processor,
ILocalParticipantObserver &  local_participant_observer,
transport::IFileDescriptorSelector *  fd_selector 
)
overrideprotectedvirtualnoexcept

Construct a BaseDomainParticipant.

Parameters
domain_idDomain id.
qosDomain participant Qos.
listenerDomain participant listener. Ownership is not taken.
maskStatus mask.
sinkMessage sink. Ownership is not taken.
locator_processorLocator processor. Ownership is not taken.
local_participant_observerLocal participant observer. Ownership is not taken.
fd_selectorFile descriptor selector. May be nullptr.
Returns
A pointer to the created BaseDomainParticipant.

Reimplemented from eprosima::safedds::dds::DomainParticipantFactory.

◆ create_default_executor()

execution::ISpinnable* eprosima::safedds::dds::SafeDomainParticipantFactory::create_default_executor ( )
overridevirtualnoexcept

Creates a default executor.

Returns
Default executor.

Reimplemented from eprosima::safedds::dds::DomainParticipantFactory.

◆ create_participant() [1/2]

DomainParticipant* eprosima::safedds::dds::SafeDomainParticipantFactory::create_participant ( DomainId  domain_id,
const DomainParticipantQos qos 
)
noexcept

Creates a DomainParticipant.

Parameters
domain_idThe domain ID to be used by the DomainParticipant.
qosThe QoS to be used by the DomainParticipant.
Returns
A pointer to the created DomainParticipant.

◆ create_participant() [2/2]

DomainParticipant* eprosima::safedds::dds::SafeDomainParticipantFactory::create_participant ( DomainId  domain_id,
const DomainParticipantQos qos,
DomainParticipantListener listener 
)
noexcept

Creates a DomainParticipant.

Parameters
domain_idThe domain ID to be used by the DomainParticipant.
qosThe QoS to be used by the DomainParticipant.
listenerThe listener to be used by the DomainParticipant. Ownership is not taken.
Returns
A pointer to the created DomainParticipant.

◆ decommission_contained_entities()

ReturnCode eprosima::safedds::dds::SafeDomainParticipantFactory::decommission_contained_entities ( )
overridevirtualnoexcept

Remove contained entities.

Note
This method will remove all contained entities.
Returns
ReturnCode. If any participant deletion fails, the code of the first failed operation; otherwise OK.

Reimplemented from eprosima::safedds::dds::DomainParticipantFactory.

◆ on_participant_pre_enable()

ReturnCode eprosima::safedds::dds::SafeDomainParticipantFactory::on_participant_pre_enable ( BaseDomainParticipant &  participant)
overridenoexcept

◆ operator=() [1/2]

SafeDomainParticipantFactory& eprosima::safedds::dds::SafeDomainParticipantFactory::operator= ( const SafeDomainParticipantFactory )
deletenoexcept

Copy operator deleted.

◆ operator=() [2/2]

SafeDomainParticipantFactory& eprosima::safedds::dds::SafeDomainParticipantFactory::operator= ( SafeDomainParticipantFactory &&  )
deletenoexcept

Movement operator deleted due private references.

◆ safedds_safety_manual_check()

virtual bool eprosima::safedds::dds::SafeDomainParticipantFactory::safedds_safety_manual_check ( BaseDomainParticipant &  participant) const
virtualnoexcept

Safety checks on participant.

Note
This method checks the Safe DDS Safety Manual guidelines that can be checked at runtime.
Parameters
participantParticipant to check
Returns
True if the participant is safe according to Safe DDS Safety Manual guidelines, false otherwise

◆ safedds_safety_manual_datareader_check()

virtual bool eprosima::safedds::dds::SafeDomainParticipantFactory::safedds_safety_manual_datareader_check ( const DataReaderQos qos) const
virtualnoexcept

Safety checks on DataReader QoS.

Note
This method checks the Safe DDS Safety Manual guidelines that can be checked at runtime.
Parameters
qosQoS to check
Returns
True if the QoS is safe according to Safe DDS Safety Manual guidelines, false otherwise

◆ safedds_safety_manual_datawriter_check()

virtual bool eprosima::safedds::dds::SafeDomainParticipantFactory::safedds_safety_manual_datawriter_check ( const DataWriterQos qos) const
virtualnoexcept

Safety checks on DataWriter QoS.

Note
This method checks the Safe DDS Safety Manual guidelines that can be checked at runtime.
Parameters
qosQoS to check
Returns
True if the QoS is safe according to Safe DDS Safety Manual guidelines, false otherwise

◆ safedds_safety_manual_participant_check()

virtual bool eprosima::safedds::dds::SafeDomainParticipantFactory::safedds_safety_manual_participant_check ( const DomainParticipantQos qos) const
virtualnoexcept

Safety checks on DomainParticipant QoS.

Note
This method checks the Safe DDS Safety Manual guidelines that can be checked at runtime.
Parameters
qosQoS to check
Returns
True if the QoS is safe according to Safe DDS Safety Manual guidelines, false otherwise

◆ safedds_safety_manual_publisher_check()

virtual bool eprosima::safedds::dds::SafeDomainParticipantFactory::safedds_safety_manual_publisher_check ( const PublisherQos qos) const
virtualnoexcept

Safety checks on Publisher QoS.

Note
This method checks the Safe DDS Safety Manual guidelines that can be checked at runtime.
Parameters
qosQoS to check
Returns
True if the QoS is safe according to Safe DDS Safety Manual guidelines, false otherwise

◆ safedds_safety_manual_subscriber_check()

virtual bool eprosima::safedds::dds::SafeDomainParticipantFactory::safedds_safety_manual_subscriber_check ( const SubscriberQos qos) const
virtualnoexcept

Safety checks on Subscriber QoS.

Note
This method checks the Safe DDS Safety Manual guidelines that can be checked at runtime.
Parameters
qosQoS to check
Returns
True if the QoS is safe according to Safe DDS Safety Manual guidelines, false otherwise

◆ safedds_safety_manual_topic_check()

virtual bool eprosima::safedds::dds::SafeDomainParticipantFactory::safedds_safety_manual_topic_check ( const TopicQos qos) const
virtualnoexcept

Safety checks on Topic QoS.

Note
This method checks the Safe DDS Safety Manual guidelines that can be checked at runtime.
Parameters
qosQoS to check
Returns
True if the QoS is safe according to Safe DDS Safety Manual guidelines, false otherwise

The documentation for this class was generated from the following file: