pub use zerodds_qos::{
DeadlineQosPolicy, DestinationOrderKind, DestinationOrderQosPolicy, DurabilityKind,
DurabilityQosPolicy, DurabilityServiceQosPolicy, EntityFactoryQosPolicy, GroupDataQosPolicy,
HistoryKind, HistoryQosPolicy, LatencyBudgetQosPolicy, LifespanQosPolicy, LivelinessKind,
LivelinessQosPolicy, OwnershipKind, OwnershipQosPolicy, OwnershipStrengthQosPolicy,
PartitionQosPolicy, PresentationAccessScope, PresentationQosPolicy,
ReaderDataLifecycleQosPolicy, ReliabilityKind, ReliabilityQosPolicy, ResourceLimitsQosPolicy,
TimeBasedFilterQosPolicy, TopicDataQosPolicy, TransportPriorityQosPolicy, UserDataQosPolicy,
WriterDataLifecycleQosPolicy,
};
use zerodds_qos::Duration;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct DataWriterQos {
pub reliability: ReliabilityQosPolicy,
pub durability: DurabilityQosPolicy,
pub durability_service: DurabilityServiceQosPolicy,
pub deadline: DeadlineQosPolicy,
pub latency_budget: LatencyBudgetQosPolicy,
pub liveliness: LivelinessQosPolicy,
pub destination_order: DestinationOrderQosPolicy,
pub lifespan: LifespanQosPolicy,
pub ownership: OwnershipQosPolicy,
pub ownership_strength: OwnershipStrengthQosPolicy,
pub partition: PartitionQosPolicy,
pub presentation: PresentationQosPolicy,
pub history: HistoryQosPolicy,
pub resource_limits: ResourceLimitsQosPolicy,
pub transport_priority: TransportPriorityQosPolicy,
pub writer_data_lifecycle: WriterDataLifecycleQosPolicy,
pub user_data: UserDataQosPolicy,
pub topic_data: TopicDataQosPolicy,
pub group_data: GroupDataQosPolicy,
}
impl Default for DataWriterQos {
fn default() -> Self {
Self {
reliability: ReliabilityQosPolicy {
kind: ReliabilityKind::Reliable,
max_blocking_time: Duration::from_millis(100_i32),
},
durability: DurabilityQosPolicy {
kind: DurabilityKind::Volatile,
},
durability_service: DurabilityServiceQosPolicy::default(),
deadline: DeadlineQosPolicy::default(),
latency_budget: LatencyBudgetQosPolicy::default(),
liveliness: LivelinessQosPolicy::default(),
destination_order: DestinationOrderQosPolicy::default(),
lifespan: LifespanQosPolicy::default(),
ownership: OwnershipQosPolicy::default(),
ownership_strength: OwnershipStrengthQosPolicy::default(),
partition: PartitionQosPolicy::default(),
presentation: PresentationQosPolicy::default(),
history: HistoryQosPolicy {
kind: HistoryKind::KeepLast,
depth: 1,
},
resource_limits: ResourceLimitsQosPolicy {
max_samples: 1000_i32,
max_instances: 10_i32,
max_samples_per_instance: 100_i32,
},
transport_priority: TransportPriorityQosPolicy::default(),
writer_data_lifecycle: WriterDataLifecycleQosPolicy::default(),
user_data: UserDataQosPolicy::default(),
topic_data: TopicDataQosPolicy::default(),
group_data: GroupDataQosPolicy::default(),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct DataReaderQos {
pub reliability: ReliabilityQosPolicy,
pub durability: DurabilityQosPolicy,
pub deadline: DeadlineQosPolicy,
pub latency_budget: LatencyBudgetQosPolicy,
pub liveliness: LivelinessQosPolicy,
pub destination_order: DestinationOrderQosPolicy,
pub ownership: OwnershipQosPolicy,
pub partition: PartitionQosPolicy,
pub presentation: PresentationQosPolicy,
pub history: HistoryQosPolicy,
pub resource_limits: ResourceLimitsQosPolicy,
pub time_based_filter: TimeBasedFilterQosPolicy,
pub reader_data_lifecycle: ReaderDataLifecycleQosPolicy,
pub user_data: UserDataQosPolicy,
pub topic_data: TopicDataQosPolicy,
pub group_data: GroupDataQosPolicy,
}
impl Default for DataReaderQos {
fn default() -> Self {
Self {
reliability: ReliabilityQosPolicy {
kind: ReliabilityKind::BestEffort,
max_blocking_time: Duration::from_millis(100_i32),
},
durability: DurabilityQosPolicy {
kind: DurabilityKind::Volatile,
},
deadline: DeadlineQosPolicy::default(),
latency_budget: LatencyBudgetQosPolicy::default(),
liveliness: LivelinessQosPolicy::default(),
destination_order: DestinationOrderQosPolicy::default(),
ownership: OwnershipQosPolicy::default(),
partition: PartitionQosPolicy::default(),
presentation: PresentationQosPolicy::default(),
history: HistoryQosPolicy {
kind: HistoryKind::KeepLast,
depth: 1,
},
resource_limits: ResourceLimitsQosPolicy {
max_samples: 1000_i32,
max_instances: 10_i32,
max_samples_per_instance: 100_i32,
},
time_based_filter: TimeBasedFilterQosPolicy::default(),
reader_data_lifecycle: ReaderDataLifecycleQosPolicy::default(),
user_data: UserDataQosPolicy::default(),
topic_data: TopicDataQosPolicy::default(),
group_data: GroupDataQosPolicy::default(),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Default)]
pub struct TopicQos {
pub durability: DurabilityQosPolicy,
pub durability_service: DurabilityServiceQosPolicy,
pub deadline: DeadlineQosPolicy,
pub latency_budget: LatencyBudgetQosPolicy,
pub liveliness: LivelinessQosPolicy,
pub reliability: ReliabilityQosPolicy,
pub destination_order: DestinationOrderQosPolicy,
pub history: HistoryQosPolicy,
pub resource_limits: ResourceLimitsQosPolicy,
pub transport_priority: TransportPriorityQosPolicy,
pub lifespan: LifespanQosPolicy,
pub ownership: OwnershipQosPolicy,
pub topic_data: TopicDataQosPolicy,
}
#[derive(Debug, Clone, PartialEq, Eq, Default)]
pub struct DomainParticipantQos {
pub user_data: UserDataQosPolicy,
pub entity_factory: EntityFactoryQosPolicy,
}
#[derive(Debug, Clone, PartialEq, Eq, Default)]
pub struct PublisherQos {
pub presentation: PresentationQosPolicy,
pub partition: PartitionQosPolicy,
pub group_data: GroupDataQosPolicy,
pub entity_factory: EntityFactoryQosPolicy,
}
#[derive(Debug, Clone, PartialEq, Eq, Default)]
pub struct SubscriberQos {
pub presentation: PresentationQosPolicy,
pub partition: PartitionQosPolicy,
pub group_data: GroupDataQosPolicy,
pub entity_factory: EntityFactoryQosPolicy,
}