zenoh_shm/api/protocol_implementations/posix/
posix_shm_client.rs1use std::sync::Arc;
16
17use zenoh_result::ZResult;
18
19use super::posix_shm_segment::PosixShmSegment;
20use crate::api::{
21 client::{shm_client::ShmClient, shm_segment::ShmSegment},
22 common::{
23 types::{ProtocolID, SegmentID},
24 with_id::WithProtocolID,
25 },
26 protocol_implementations::posix::protocol_id::POSIX_PROTOCOL_ID,
27};
28
29#[zenoh_macros::unstable_doc]
31#[derive(Debug)]
32pub struct PosixShmClient;
33
34impl WithProtocolID for PosixShmClient {
35 fn id(&self) -> ProtocolID {
36 POSIX_PROTOCOL_ID
37 }
38}
39
40impl ShmClient for PosixShmClient {
41 #[zenoh_macros::unstable_doc]
43 fn attach(&self, segment: SegmentID) -> ZResult<Arc<dyn ShmSegment>> {
44 Ok(Arc::new(PosixShmSegment::open(segment)?))
45 }
46}