Class DomainParticipantFactory
Defined in File DomainParticipantFactory.hpp
Class Documentation
-
class DomainParticipantFactory
Class DomainParticipantFactory
Public Functions
- RTPS_DllAPI DomainParticipant * create_participant (DomainId_t domain_id, const DomainParticipantQos &qos, DomainParticipantListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
Create a Participant.
- Parameters
domain_id – Domain Id.
qos – DomainParticipantQos Reference.
listener – DomainParticipantListener Pointer (default: nullptr)
mask – StatusMask Reference (default: all)
- Returns
DomainParticipant pointer. (nullptr if not created.)
- RTPS_DllAPI DomainParticipant * create_participant_with_profile (DomainId_t domain_id, const std::string &profile_name, DomainParticipantListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
Create a Participant.
- Parameters
domain_id – Domain Id.
profile_name – Participant profile name.
listener – DomainParticipantListener Pointer (default: nullptr)
mask – StatusMask Reference (default: all)
- Returns
DomainParticipant pointer. (nullptr if not created.)
- RTPS_DllAPI DomainParticipant * create_participant_with_profile (const std::string &profile_name, DomainParticipantListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
Create a Participant.
- Parameters
profile_name – Participant profile name.
listener – DomainParticipantListener Pointer (default: nullptr)
mask – StatusMask Reference (default: all)
- Returns
DomainParticipant pointer. (nullptr if not created.)
- RTPS_DllAPI DomainParticipant * lookup_participant (DomainId_t domain_id) const
This operation retrieves a previously created DomainParticipant belonging to specified domain_id. If no such DomainParticipant exists, the operation will return ‘nullptr’. If multiple DomainParticipant entities belonging to that domain_id exist, then the operation will return one of them. It is not specified which one.
- Parameters
domain_id –
- Returns
previously created DomainParticipant within the specified domain
- RTPS_DllAPI std::vector< DomainParticipant * > lookup_participants (DomainId_t domain_id) const
Returns all participants that belongs to the specified domain_id.
- Parameters
domain_id –
- Returns
previously created DomainParticipants within the specified domain
- RTPS_DllAPI ReturnCode_t get_default_participant_qos (DomainParticipantQos &qos) const
This operation retrieves the default value of the DomainParticipant QoS, that is, the QoS policies which will be used for newly created DomainParticipant entities in the case where the QoS policies are defaulted in the create_participant operation. The values retrieved get_default_participant_qos will match the set of values specified on the last successful call to set_default_participant_qos, or else, if the call was never made, the default values.
- Parameters
qos – DomainParticipantQos where the qos is returned
- Returns
RETCODE_OK
- RTPS_DllAPI const DomainParticipantQos & get_default_participant_qos () const
This operation retrieves the default value of the DomainParticipant QoS, that is, the QoS policies which will be used for newly created DomainParticipant entities in the case where the QoS policies are defaulted in the create_participant operation. The values retrieved get_default_participant_qos will match the set of values specified on the last successful call to set_default_participant_qos, or else, if the call was never made, the default values.
- Returns
A reference to the default DomainParticipantQos
- RTPS_DllAPI ReturnCode_t set_default_participant_qos (const DomainParticipantQos &qos)
This operation sets a default value of the DomainParticipant QoS policies which will be used for newly created DomainParticipant entities in the case where the QoS policies are defaulted in the create_participant operation.
This operation will check that the resulting policies are self consistent; if they are not, the operation will have no effect and return INCONSISTENT_POLICY.
The special value PARTICIPANT_QOS_DEFAULT may be passed to this operation to indicate that the default QoS should be reset back to the initial values the factory would use, that is the values that would be used if the set_default_participant_qos operation had never been called.
- Parameters
qos – DomainParticipantQos to be set
- Returns
RETCODE_INCONSISTENT_POLICY if the Qos is not self consistent and RETCODE_OK if the qos is changed correctly.
- RTPS_DllAPI ReturnCode_t get_participant_qos_from_profile (const std::string &profile_name, DomainParticipantQos &qos) const
Fills the DomainParticipantQos with the values of the XML profile.
- Parameters
profile_name – DomainParticipant profile name.
qos – DomainParticipantQos object where the qos is returned.
- Returns
RETCODE_OK if the profile exists. RETCODE_BAD_PARAMETER otherwise.
- RTPS_DllAPI ReturnCode_t delete_participant (DomainParticipant *part)
Remove a Participant and all associated publishers and subscribers.
- Parameters
part – Pointer to the participant.
- Returns
RETCODE_PRECONDITION_NOT_MET if the participant has active entities, RETCODE_OK if the participant is correctly deleted and RETCODE_ERROR otherwise.
- RTPS_DllAPI ReturnCode_t load_profiles ()
Load profiles from default XML file.
- Returns
RETCODE_OK
- RTPS_DllAPI ReturnCode_t load_XML_profiles_file (const std::string &xml_profile_file)
Load profiles from XML file.
- Parameters
xml_profile_file – XML profile file.
- Returns
RETCODE_OK if it is correctly loaded, RETCODE_ERROR otherwise.
- RTPS_DllAPI ReturnCode_t load_XML_profiles_string (const char *data, size_t length)
Load profiles from XML string.
- Parameters
data – buffer containing xml data.
length – length of data
- Returns
RETCODE_OK if it is correctly loaded, RETCODE_ERROR otherwise.
- RTPS_DllAPI ReturnCode_t check_xml_static_discovery (std::string &xml_file)
Check the validity of the provided static discovery XML file
- Parameters
xml_file – xml file path
- Returns
RETCODE_OK if the validation is successful, RETCODE_ERROR otherwise.
- RTPS_DllAPI ReturnCode_t get_qos (DomainParticipantFactoryQos &qos) const
This operation returns the value of the DomainParticipantFactory QoS policies.
- Parameters
qos – DomaParticipantFactoryQos reference where the qos is returned
- Returns
RETCODE_OK
- RTPS_DllAPI ReturnCode_t set_qos (const DomainParticipantFactoryQos &qos)
This operation sets the value of the DomainParticipantFactory QoS policies. These policies control the behavior of the object a factory for entities.
Note that despite having QoS, the DomainParticipantFactory is not an Entity.
This operation will check that the resulting policies are self consistent; if they are not, the operation will have no effect and return INCONSISTENT_POLICY.
- Parameters
qos – DomainParticipantFactoryQos to be set.
- Returns
RETCODE_IMMUTABLE_POLICY if any of the Qos cannot be changed, RETCODE_INCONSISTENT_POLICY if the Qos is not self consistent and RETCODE_OK if the qos is changed correctly.
Public Static Functions
- static RTPS_DllAPI DomainParticipantFactory * get_instance ()
Returns the DomainParticipantFactory singleton instance.
- Returns
A raw pointer to the DomainParticipantFactory singleton instance.
- static RTPS_DllAPI std::shared_ptr< DomainParticipantFactory > get_shared_instance ()
Returns the DomainParticipantFactory singleton instance.
- Returns
A shared pointer to the DomainParticipantFactory singleton instance.
Protected Functions
-
DomainParticipantFactory()
-
virtual ~DomainParticipantFactory()
-
DomainParticipantFactory(const DomainParticipantFactory&) = delete
-
void operator=(const DomainParticipantFactory&) = delete
-
void reset_default_participant_qos()
-
void participant_has_been_deleted(DomainParticipantImpl *part)
Protected Attributes
-
std::map<DomainId_t, std::vector<DomainParticipantImpl*>> participants_
-
mutable std::mutex mtx_participants_
-
mutable bool default_xml_profiles_loaded
-
DomainParticipantFactoryQos factory_qos_
-
DomainParticipantQos default_participant_qos_
-
std::shared_ptr<fastrtps::rtps::detail::TopicPayloadPoolRegistry> topic_pool_
-
std::shared_ptr<fastrtps::rtps::RTPSDomainImpl> rtps_domain_
-
std::shared_ptr<detail::LogResources> log_resources_
Protected Static Functions
-
static void set_qos(DomainParticipantFactoryQos &to, const DomainParticipantFactoryQos &from, bool first_time)
-
static ReturnCode_t check_qos(const DomainParticipantFactoryQos &qos)
-
static bool can_qos_be_updated(const DomainParticipantFactoryQos &to, const DomainParticipantFactoryQos &from)
Friends
- friend class DomainParticipant