DDS (Data Distribution Service) 数据分发服务-规范中文翻译_009
2.以数据为中心的订阅发布(DCPS)
2.2 平台无关模型(Platform Independent Model ,PIM)
2.2.2 平台无关模型(PIM)描述
2.2.2.2 域模块
2.2.2.2.2 DomainParticipantFactory类
此类的唯一目的是创建和销毁DomainParticipant对象。
DomainParticipantFactory本身没有工厂。它是一个预先存在的单例对象,可以通过DomainParticipantFactory上的get_instance类方法进行访问。
以下子小节提供了有关方法的详细信息。
2.2.2.2.2.1 create_participant
此方法将创建一个新的DomainParticipant对象。该DomainParticipant对象的创建意味着调用此方法的应用程序打算加入domain_id参数标识的域。
如果指定的QoS策略不一致,则方法调用将失败,并且不会创建DomainParticipant对象。
特殊值PARTICIPANT_QOS_DEFAULT表明应使用工厂中设置的默认DomainParticipant QoS创建DomainParticipant。使用此值等同于应用程序通过get_default_participant_qos(2.2.2.2.2.6)方法获取默认DomainParticipant QoS并使用返回的QoS创建DomainParticipant。
如果调用失败,将返回“nil”值(由平台指定)。
2.2.2.2.2.2 delete_participant
此方法将删除现有的DomainParticipant。只有在属于该参与者的所有域实体都被删除的情况下,才能调用此方法。否则返回错误PRECONDITION_NOT_MET。
除标准错误代码外,还可能返回错误代码:PRECONDITION_NOT_MET。
2.2.2.2.2.3 get_instance
此方法返回DomainParticipantFactory单例。该方法是幂等的,也就是说它可以被多次调用而没有副作用,返回相同的DomainParticipantFactory实例。
get_instance方法是使用本机语言的语法实现的静态方法,因此不能在IDL PSM中表示。
预定义值TheParticipantFactory也可以用作get_instance方法返回的单例工厂的别名。
2.2.2.2.2.4 lookup_participant
此方法获取之前创建的属于特定domain_id的DomainParticipant对象。如果不存在此类DomainParticipant对象,将返回“nil”值。
如果存在属于该domain_id的多个DomainParticipant对象,则返回其中一个对象,并不具体指定为哪一个。
2.2.2.2.2.5 set_default_participant_qos
此方法设置DomainParticipant QoS策略的默认值,在调用create_participant方法时作为默认QoS策略用于新创建的DomainParticipant实体。
此方法将检查生成的策略是否是自相容的; 如果不是,则方法无效并返回INCONSISTENT_POLICY。
2.2.2.2.2.6 get_default_participant_qos
此方法获取DomainParticipant QoS的默认值,即在create_participant方法使用默认QoS策略的情况下,用于新创建的DomainParticipant的QoS策略。
通过此方法获取到的值将与上次成功调用get_default_participant_qos时指定的值集保持一致;如果get_default_participant_qos从未被调用,默认值在2.2.3 支持的QoS中的QoS表中列出。
2.2.2.2.2.7 set_qos
此方法设置DomainParticipantFactory QoS策略的值。这些策略控制实体的工厂对象的行为。
请注意,尽管具有QoS,但DomainParticipantFactory不是实体。
此方法将检查生成的策略是否是自相容的; 如果不是,则方法无效并返回INCONSISTENT_POLICY。
2.2.2.2.2.8 get_qos
此方法返回DomainParticipantFactory QoS策略的值。