zerodds_dcps_async/
factory.rs1use zerodds_dcps::{DomainParticipantFactory, DomainParticipantQos, Result};
6
7use crate::AsyncDomainParticipant;
8
9pub struct AsyncDomainParticipantFactory {
13 inner: &'static DomainParticipantFactory,
14}
15
16impl AsyncDomainParticipantFactory {
17 #[must_use]
19 pub fn instance() -> Self {
20 Self {
21 inner: DomainParticipantFactory::instance(),
22 }
23 }
24
25 #[must_use]
27 pub fn create_participant_offline(&self, domain_id: i32) -> AsyncDomainParticipant {
28 let p = self
29 .inner
30 .create_participant_offline(domain_id, DomainParticipantQos::default());
31 AsyncDomainParticipant::from_sync(p)
32 }
33
34 pub fn create_participant(&self, domain_id: i32) -> Result<AsyncDomainParticipant> {
39 let p = self
40 .inner
41 .create_participant(domain_id, DomainParticipantQos::default())?;
42 Ok(AsyncDomainParticipant::from_sync(p))
43 }
44
45 pub fn create_participant_with_qos(
50 &self,
51 domain_id: i32,
52 qos: DomainParticipantQos,
53 ) -> Result<AsyncDomainParticipant> {
54 let p = self.inner.create_participant(domain_id, qos)?;
55 Ok(AsyncDomainParticipant::from_sync(p))
56 }
57}
58
59impl Default for AsyncDomainParticipantFactory {
60 fn default() -> Self {
61 Self::instance()
62 }
63}