[−][src]Struct rustdds::dds::no_key::DataWriter
DDS DataWriter for no key topics
Examples
use serde::{Serialize, Deserialize}; use rustdds::dds::DomainParticipant; use rustdds::dds::qos::QosPolicyBuilder; use rustdds::dds::data_types::TopicKind; use rustdds::dds::No_Key_DataWriter as DataWriter; use rustdds::serialization::CDRSerializerAdapter; let domain_participant = DomainParticipant::new(0); let qos = QosPolicyBuilder::new().build(); let publisher = domain_participant.create_publisher(&qos).unwrap(); #[derive(Serialize, Deserialize)] struct SomeType {} // NoKey is important let topic = domain_participant.create_topic("some_topic", "SomeType", &qos, TopicKind::NoKey).unwrap(); let data_writer = publisher.create_datawriter_no_key::<SomeType, CDRSerializerAdapter<_>>(None, topic, None);
Implementations
impl<D, SA> DataWriter<D, SA> where
D: Serialize,
SA: SerializerAdapter<D>, [src]
D: Serialize,
SA: SerializerAdapter<D>,
pub fn write(&self, data: D, source_timestamp: Option<Timestamp>) -> Result<()>[src]
Writes single data instance to a topic.
Examples
let domain_participant = DomainParticipant::new(0); let qos = QosPolicyBuilder::new().build(); let publisher = domain_participant.create_publisher(&qos).unwrap(); // NoKey is important let topic = domain_participant.create_topic("some_topic", "SomeType", &qos, TopicKind::NoKey).unwrap(); let data_writer = publisher.create_datawriter_no_key::<SomeType, CDRSerializerAdapter<_>>(None, topic, None).unwrap(); let some_data = SomeType {}; data_writer.write(some_data, None).unwrap();
pub fn wait_for_acknowledgments(&self, max_wait: Duration) -> Result<()>[src]
Waits for all acknowledgements to finish
Examples
let domain_participant = DomainParticipant::new(0); let qos = QosPolicyBuilder::new().build(); let publisher = domain_participant.create_publisher(&qos).unwrap(); // NoKey is important let topic = domain_participant.create_topic("some_topic", "SomeType", &qos, TopicKind::NoKey).unwrap(); let data_writer = publisher.create_datawriter_no_key::<SomeType, CDRSerializerAdapter<_>>(None, topic, None).unwrap(); data_writer.wait_for_acknowledgments(Duration::from_millis(100));
pub fn get_liveliness_lost_status(&self) -> Result<LivelinessLostStatus>[src]
Unimplemented. Do not use.
Examples
let domain_participant = DomainParticipant::new(0); let qos = QosPolicyBuilder::new().build(); let publisher = domain_participant.create_publisher(&qos).unwrap(); // NoKey is important let topic = domain_participant.create_topic("some_topic", "SomeType", &qos, TopicKind::NoKey).unwrap(); let data_writer = publisher.create_datawriter_no_key::<SomeType, CDRSerializerAdapter<_>>(None, topic, None).unwrap(); if let Ok(status) = data_writer.get_liveliness_lost_status() { // Do something }
pub fn get_offered_deadline_missed_status(
&self
) -> Result<OfferedDeadlineMissedStatus>[src]
&self
) -> Result<OfferedDeadlineMissedStatus>
Should get latest offered deadline missed status. Do not use yet use get_status_lister instead for the moment.
Examples
let domain_participant = DomainParticipant::new(0); let qos = QosPolicyBuilder::new().build(); let publisher = domain_participant.create_publisher(&qos).unwrap(); // NoKey is important let topic = domain_participant.create_topic("some_topic", "SomeType", &qos, TopicKind::NoKey).unwrap(); let data_writer = publisher.create_datawriter_no_key::<SomeType, CDRSerializerAdapter<_>>(None, topic, None).unwrap(); if let Ok(odl_status) = data_writer.get_offered_deadline_missed_status() { // Do something }
pub fn get_offered_incompatible_qos_status(
&self
) -> Result<OfferedIncompatibleQosStatus>[src]
&self
) -> Result<OfferedIncompatibleQosStatus>
Unimplemented. Do not use.
Examples
let domain_participant = DomainParticipant::new(0); let qos = QosPolicyBuilder::new().build(); let publisher = domain_participant.create_publisher(&qos).unwrap(); // NoKey is important let topic = domain_participant.create_topic("some_topic", "SomeType", &qos, TopicKind::NoKey).unwrap(); let data_writer = publisher.create_datawriter_no_key::<SomeType, CDRSerializerAdapter<_>>(None, topic, None).unwrap(); if let Ok(status) = data_writer.get_offered_incompatible_qos_status() { // Do something }
pub fn get_publication_matched_status(&self) -> Result<PublicationMatchedStatus>[src]
Unimplemented. Do not use.
Examples
let domain_participant = DomainParticipant::new(0); let qos = QosPolicyBuilder::new().build(); let publisher = domain_participant.create_publisher(&qos).unwrap(); // NoKey is important let topic = domain_participant.create_topic("some_topic", "SomeType", &qos, TopicKind::NoKey).unwrap(); let data_writer = publisher.create_datawriter_no_key::<SomeType, CDRSerializerAdapter<_>>(None, topic, None).unwrap(); if let Ok(status) = data_writer.get_publication_matched_status() { // Do something }
pub fn get_topic(&self) -> &Topic[src]
Topic this DataWriter is connected to.
Examples
let domain_participant = DomainParticipant::new(0); let qos = QosPolicyBuilder::new().build(); let publisher = domain_participant.create_publisher(&qos).unwrap(); // NoKey is important let topic = domain_participant.create_topic("some_topic", "SomeType", &qos, TopicKind::NoKey).unwrap(); let data_writer = publisher.create_datawriter_no_key::<SomeType, CDRSerializerAdapter<_>>(None, topic.clone(), None).unwrap(); assert_eq!(&topic, data_writer.get_topic());
pub fn get_publisher(&self) -> &Publisher[src]
Publisher this DataWriter is connected to.
Examples
let domain_participant = DomainParticipant::new(0); let qos = QosPolicyBuilder::new().build(); let publisher = domain_participant.create_publisher(&qos).unwrap(); // NoKey is important let topic = domain_participant.create_topic("some_topic", "SomeType", &qos, TopicKind::NoKey).unwrap(); let data_writer = publisher.create_datawriter_no_key::<SomeType, CDRSerializerAdapter<_>>(None, topic, None).unwrap(); assert_eq!(&publisher, data_writer.get_publisher());
pub fn assert_liveliness(&self) -> Result<()>[src]
Manually asserts liveliness if QoS agrees
Examples
let domain_participant = DomainParticipant::new(0); let qos = QosPolicyBuilder::new().build(); let publisher = domain_participant.create_publisher(&qos).unwrap(); // NoKey is important let topic = domain_participant.create_topic("some_topic", "SomeType", &qos, TopicKind::NoKey).unwrap(); let data_writer = publisher.create_datawriter_no_key::<SomeType, CDRSerializerAdapter<_>>(None, topic, None).unwrap(); data_writer.assert_liveliness();
pub fn get_matched_subscriptions(&self) -> Vec<SubscriptionBuiltinTopicData>[src]
Unimplemented. Do not use.
Examples
let domain_participant = DomainParticipant::new(0); let qos = QosPolicyBuilder::new().build(); let publisher = domain_participant.create_publisher(&qos).unwrap(); // NoKey is important let topic = domain_participant.create_topic("some_topic", "SomeType", &qos, TopicKind::NoKey).unwrap(); let data_writer = publisher.create_datawriter_no_key::<SomeType, CDRSerializerAdapter<_>>(None, topic, None).unwrap(); for sub in data_writer.get_matched_subscriptions().iter() { // handle subscriptions }
pub fn get_status_listener(&self) -> &Receiver<StatusChange>[src]
Gets mio receiver for all implemented Status changes
Examples
let domain_participant = DomainParticipant::new(0); let qos = QosPolicyBuilder::new().build(); let publisher = domain_participant.create_publisher(&qos).unwrap(); // NoKey is important let topic = domain_participant.create_topic("some_topic", "SomeType", &qos, TopicKind::NoKey).unwrap(); let data_writer = publisher.create_datawriter_no_key::<SomeType, CDRSerializerAdapter<_>>(None, topic, None).unwrap(); // Some status has changed if let Ok(status) = data_writer.get_status_listener().try_recv() { // handle status change }
Trait Implementations
impl<D: Serialize, SA: SerializerAdapter<D>> DDSEntity for DataWriter<D, SA>[src]
impl<D: Serialize, SA: SerializerAdapter<D>> HasQoSPolicy for DataWriter<D, SA>[src]
pub fn get_qos(&self) -> QosPolicies[src]
impl<D: Serialize, SA: SerializerAdapter<D>> RTPSEntity for DataWriter<D, SA>[src]
pub fn get_guid(&self) -> GUID[src]
pub fn get_entity_id(&self) -> EntityId[src]
pub fn get_guid_prefix(&self) -> GuidPrefix[src]
Auto Trait Implementations
impl<D, SA = CDRSerializerAdapter<D, LittleEndian>> !RefUnwindSafe for DataWriter<D, SA>[src]
impl<D, SA> Send for DataWriter<D, SA> where
D: Send,
SA: Send, [src]
D: Send,
SA: Send,
impl<D, SA = CDRSerializerAdapter<D, LittleEndian>> !Sync for DataWriter<D, SA>[src]
impl<D, SA> Unpin for DataWriter<D, SA> where
SA: Unpin, [src]
SA: Unpin,
impl<D, SA = CDRSerializerAdapter<D, LittleEndian>> !UnwindSafe for DataWriter<D, SA>[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,