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}