Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/dds/statusevents.rs
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,7 @@ pub struct EndpointDescription {
pub topic_name: String,
pub type_name: String,
pub qos: QosPolicies,
pub user_data: Vec<u8>,
}

#[derive(Debug, Clone)]
Expand Down
4 changes: 4 additions & 0 deletions src/discovery/discovery_db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -662,6 +662,7 @@ impl DiscoveryDB {
reader_proxy: ReaderProxy::from(reader_proxy),
subscription_topic_data: subscription_data,
content_filter,
user_data: Vec::new(),
};

self
Expand Down Expand Up @@ -943,6 +944,7 @@ mod tests {
reader_proxy: reader1.clone(),
subscription_topic_data: reader1sub.clone(),
content_filter: None,
user_data: Vec::new(),
};
discovery_db.update_subscription(&dreader1);

Expand All @@ -954,6 +956,7 @@ mod tests {
reader_proxy: reader2,
subscription_topic_data: reader2sub,
content_filter: None,
user_data: Vec::new(),
};
discovery_db.update_subscription(&dreader2);

Expand All @@ -963,6 +966,7 @@ mod tests {
reader_proxy: reader3,
subscription_topic_data: reader3sub,
content_filter: None,
user_data: Vec::new(),
};
discovery_db.update_subscription(&dreader3);

Expand Down
22 changes: 22 additions & 0 deletions src/discovery/sedp_messages.rs
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,7 @@ pub struct DiscoveredReaderData {
pub reader_proxy: ReaderProxy,
pub subscription_topic_data: SubscriptionBuiltinTopicData,
pub content_filter: Option<ContentFilterProperty>,
pub user_data: Vec<u8>,
}

impl DiscoveredReaderData {
Expand All @@ -321,6 +322,7 @@ impl DiscoveredReaderData {
reader_proxy,
subscription_topic_data,
content_filter: None,
user_data: Vec::new(),
}
}
}
Expand Down Expand Up @@ -404,6 +406,12 @@ impl PlCdrDeserialize for DiscoveredReaderData {

let qos = QosPolicies::from_parameter_list(ctx, &pl_map)?;

let user_data = pl_map
.get(&ParameterId::PID_USER_DATA)
.and_then(|v| v.first())
.map(|p| p.value.clone())
.unwrap_or_default();

Ok(DiscoveredReaderData {
reader_proxy: ReaderProxy::new(
guid,
Expand All @@ -420,6 +428,7 @@ impl PlCdrDeserialize for DiscoveredReaderData {
security_info,
),
content_filter,
user_data,
})
}
}
Expand Down Expand Up @@ -476,6 +485,7 @@ impl ParameterListable for DiscoveredReaderData {
security_info,
},
content_filter,
user_data: _,
} = self;

let mut pl = ParameterList::new();
Expand Down Expand Up @@ -747,6 +757,7 @@ pub struct DiscoveredWriterData {

pub writer_proxy: WriterProxy,
pub publication_topic_data: PublicationBuiltinTopicData,
pub user_data: Vec<u8>,
}

impl Keyed for DiscoveredWriterData {
Expand Down Expand Up @@ -781,6 +792,7 @@ impl DiscoveredWriterData {
last_updated: Instant::now(),
writer_proxy,
publication_topic_data,
user_data: Vec::new(),
}
}
}
Expand Down Expand Up @@ -847,6 +859,12 @@ impl PlCdrDeserialize for DiscoveredWriterData {

let qos = QosPolicies::from_parameter_list(ctx, &pl_map)?;

let user_data = pl_map
.get(&ParameterId::PID_USER_DATA)
.and_then(|v| v.first())
.map(|p| p.value.clone())
.unwrap_or_default();

Ok(DiscoveredWriterData {
last_updated: Instant::now(),
writer_proxy: WriterProxy {
Expand All @@ -855,6 +873,7 @@ impl PlCdrDeserialize for DiscoveredWriterData {
multicast_locator_list,
data_max_size_serialized,
},
user_data,
publication_topic_data: PublicationBuiltinTopicData::new_with_qos(
guid,
participant_guid,
Expand Down Expand Up @@ -918,6 +937,7 @@ impl ParameterListable for DiscoveredWriterData {
#[cfg(feature = "security")]
security_info,
},
user_data: _,
} = self;

let mut pl = ParameterList::new();
Expand Down Expand Up @@ -1350,6 +1370,7 @@ mod tests {
reader_proxy,
subscription_topic_data: sub_topic_data,
content_filter: Some(content_filter),
user_data: Vec::new(),
};

// serialize
Expand Down Expand Up @@ -1406,6 +1427,7 @@ mod tests {
last_updated: Instant::now(),
writer_proxy,
publication_topic_data: pub_topic_data,
user_data: Vec::new(),
};

let sdata = dwd
Expand Down
2 changes: 2 additions & 0 deletions src/rtps/dp_event_loop.rs
Original file line number Diff line number Diff line change
Expand Up @@ -710,6 +710,7 @@ impl DPEventLoop {
topic_name: remote_reader.subscription_topic_data.topic_name.clone(),
type_name: remote_reader.subscription_topic_data.type_name().clone(),
qos: remote_reader.subscription_topic_data.qos(),
user_data: remote_reader.user_data.clone(),
},
})
.unwrap_or_else(|e| error!("Cannot report participant status: {e:?}"));
Expand Down Expand Up @@ -798,6 +799,7 @@ impl DPEventLoop {
topic_name: remote_writer.publication_topic_data.topic_name.clone(),
type_name: remote_writer.publication_topic_data.type_name.clone(),
qos: remote_writer.publication_topic_data.qos(),
user_data: remote_writer.user_data.clone(),
},
})
.unwrap_or_else(|e| error!("Cannot report participant status: {e:?}"));
Expand Down
Loading