1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*
use serde::{Serialize, Deserialize};

use crate::structure::{guid::*, locator::LocatorList};

use crate::messages::{protocol_version::ProtocolVersion, vendor_id::VendorId};

/// Defines ParticipantProxyAttributes

#[derive(Debug, Serialize, Deserialize)]
pub struct ParticipantProxyAttributes {
  /// Identifies the DDS domainId of the associated DDS DomainParticipant
  pub domain_id: EntityId,

  /// Identifies the DDSTag of the associated DDS DomainParticipant
  pub domain_tag: String,

  /// Identifies the RTPS protocol version used by the Participant
  pub protocol_version: ProtocolVersion,

  /// The common GuidPrefix_t of the Participant and all the Endpoints contained
  /// within the Participant.
  pub guid_prefix: GuidPrefix,

  /// Identifies the vendor of the DDS middleware that contains the Participant.
  pub vendor_id: VendorId,

  /// Describes whether the Readers within the Participant
  /// expect that the QoS values that apply to each data
  /// modification are encapsulated included with each Data.
  pub expects_inline_qos: bool,

  /// List of unicast locators (transport, address, port
  /// combinations) that can be used to send messages to
  /// the built-in Endpoints contained in the Participant.
  pub metatraffic_unicast_locator_list: LocatorList,

  /// List of multicast locators (transport, address, port
  /// combinations) that can be used to send messages to
  /// the built-in Endpoints contained in the Participant.
  pub metatraffic_multicast_locator_list: LocatorList,

  /// Default list of unicast locators (transport, address, port
  /// combinations) that can be used to send messages to
  /// the user-defined Endpoints contained in the
  /// Participant.
  /// These are the unicast locators that will be used in case
  /// the Endpoint does not specify its own set of Locators, so
  /// at least one Locator must be present
  pub default_unicast_locator_list: LocatorList,

  /// Default list of multicast locators (transport, address,
  /// port combinations) that can be used to send messages to
  /// the user-defined Endpoints contained in the Participant.
  /// These are the multicast locators that will be used in case
  /// the Endpoint does not specify its own set of Locators.
  pub default_multicast_locator_list: LocatorList,

  /// All Participants must support the SEDP. This attribute
  /// identifies the kinds of built-in SEDP Endpoints that are
  /// available in the Participant. This allows a Participant to
  /// indicate that it only contains a subset of the possible
  /// built- in Endpoints. See also 8.5.4.3.
  /// Possible members in the BuiltinEndpointSet_t are:
  /// PUBLICATIONS_DETECTOR,
  /// PUBLICATIONS_ANNOUNCER,
  /// SUBSCRIPTIONS_DETECTOR,
  /// SUBSCRIPTIONS_ANNOUNCER,
  /// TOPICS_DETECTOR, TOPICS_ANNOUNCER
  /// PARTICIPANT_MESSAGE_READER
  /// PARTICIPANT_MESSAGE_WRITER
  /// Vendor specific extensions may
  //available_builtin_endpoints: BuiltinEndpointsSet,

  /// Used to implement MANUAL_BY_PARTICIPANT
  /// liveliness QoS.
  /// When liveliness is asserted, the manualLivelinessCount
  /// is incremented and a new
  /// SPDPdiscoveredParticipantDatais sent.
  pub manual_liveliness_count: i32,
}
*/
// pub trait ParticipantProxy {
//   fn as_participant_proxy(&self) -> &ParticipantProxyAttributes;
// }