解释代码nDomainParticipant-DomainParticipantFactorycreate_participantn--------DomainId_t-didn--------const-DomainParticipantQos&-qosn--------DomainParticipantListener-listenn--------const-StatusMask&-masknn----load_profiles;nn----const-DomainParticipantQ
这段代码是FastDDS中的DomainParticipantFactory类中的一个成员函数create_participant,用于创建一个DomainParticipant实例。
在函数中,首先调用了load_profiles()函数,加载了一些配置文件。
然后,根据传入的参数qos,如果qos指向PARTICIPANT_QOS_DEFAULT,则使用默认的配置;否则使用传入的配置。接着,创建一个新的DomainParticipant实例,并根据是否定义了FASTDDS_STATISTICS宏选择不同的实现方式。
接下来,通过一个互斥锁保护,将新创建的DomainParticipant实例添加到map对象participants_中,该map对象以DomainId_t为键,以vector<DomainParticipantImpl*>为值,表示同一DomainId_t下的所有DomainParticipant实例。如果该DomainId_t在map中不存在,则需要先创建一个新的vector对象,再插入到map中。
最后,如果factory_qos_.entity_factory().autoenable_created_entities为true,则自动开启创建的DomainParticipant实例;否则需要手动调用enable()函数开启。
最终,函数返回新创建的DomainParticipant实例。
原文地址: http://www.cveoy.top/t/topic/rDr 著作权归作者所有。请勿转载和采集!