Skip to main content

Crate zerodds_time_service

Crate zerodds_time_service 

Source
Expand description

Crate zerodds-time-service. Safety classification: STANDARD.

OMG Time Service 1.1 — Datatypes + Operations (Spec formal/2002-05-07). Pure-Rust no_std + alloc, forbid(unsafe_code).

§Spec

  • OMG Time Service 1.1 §1.3.2 (TimeBase: TimeT/InaccuracyT/TdfT/UtcT/IntervalT)
  • OMG Time Service 1.1 §1.3.3 (TimeUnavailable Exception)
  • OMG Time Service 1.1 §1.3.4 (UTO — Universal Time Object)
  • OMG Time Service 1.1 §1.3.5 (TIO — Time Interval Object)
  • OMG Time Service 1.1 §2.1 (TimeService Interface)
  • OMG Time Service 1.1 §2.2 + §2.4 — TimerEventService: aus ZeroDDS-Scope ausgenommen (verlangt CORBA-Event-Channel-ORB); corba-ccm adressiert das im CCM-Container-PSM.

§Schichten-Position

Layer 1 — Primitives. Standalone-Library; ZeroDDS verbraucht die Crate intern nicht (DDS-DCPS hat sein eigenes Time_t mit 8-Byte-Wire-Format gemaess DDS-DCPS §2.3.3, byte-distinkt zu OMG- Time-Service UtcT mit 16-Byte-Wire-Format und 1582-Epoch). Konsumenten sind End-User-Applikationen die OMG-Time-Service-1.1- Konformitaet brauchen (z.B. Tutorial dds-warehouse/02-time-sync).

§Public API (Stand 1.0.0-rc.1)

TimeBase (time_base):

UTO (uto):

  • Uto — Universal Time Object mit Operations (absolute_time, compare_time, time_to_interval, interval).
  • [ComparisonType::{IntervalC, MidC}] — Vergleichs-Modus.
  • [TimeComparison::{EqualTo, LessThan, GreaterThan, Indeterminate}].

TIO (tio):

  • Tio — Time Interval Object mit Operations (time_interval, overlaps, contains, spans).
  • OverlapType — Overlap-Klassifizierung.

Service (service):

  • TimeServiceuniversal_time / secure_universal_time / new_universal_time / uto_from_utc / new_interval.
  • TimeUnavailable — Exception-Type.

§Beispiel

use zerodds_time_service::{TimeService, ComparisonType, TimeComparison};

let service = TimeService::default();
let later = service.universal_time().unwrap();
assert_ne!(
    now.compare_time(ComparisonType::MidC, later),
    TimeComparison::GreaterThan
);

Re-exports§

pub use service::TimeService;
pub use service::TimeUnavailable;
pub use time_base::IntervalT;
pub use time_base::TdfT;
pub use time_base::TimeT;
pub use time_base::UtcT;
pub use tio::OverlapType;
pub use tio::Tio;
pub use uto::ComparisonType;
pub use uto::TimeComparison;
pub use uto::Uto;

Modules§

service
TimeService Interface — OMG Time Service 1.1 §2.1.
time_base
TimeBase-Modul aus OMG Time Service 1.1 §1.3.2.
tio
Time Interval Object (TIO) — OMG Time Service 1.1 §1.3.5.
uto
Universal Time Object (UTO) — OMG Time Service 1.1 §1.3.4.