zbus_module/
ping.rs

1use libc::c_int;
2use std::time::{SystemTime};
3
4use crate::zbus_zenoh;
5
6#[no_mangle]
7pub extern fn zbus_module_ping() -> c_int {
8    let s_duration_since_epoch = SystemTime::now().duration_since(SystemTime::UNIX_EPOCH).unwrap();
9    let start_timestamp = s_duration_since_epoch.as_nanos();
10    match zbus_zenoh::get_zenoh_config() {
11        Some(config) => {
12            match zbus_zenoh::zenoh_connect(config.clone()) {
13                Some(session) => {
14                    let _ = session.close();
15                    let e_duration_since_epoch = SystemTime::now().duration_since(SystemTime::UNIX_EPOCH).unwrap();
16                    let end_timestamp = e_duration_since_epoch.as_nanos();
17                    return (end_timestamp-start_timestamp).try_into().unwrap();
18                }
19                None => {
20                    return 0;
21                }
22            }
23        }
24        None => {
25            return 0;
26        }
27    }
28}