use iceoryx2_bb_derive_macros::ZeroCopySend;
use iceoryx2_bb_elementary_traits::zero_copy_send::ZeroCopySend;
use iceoryx2_cal::zero_copy_connection::ChannelId;
use crate::{
active_request::RequestId,
identifiers::{UniqueClientId, UniqueNodeId, UniqueServerId},
};
#[derive(Debug, Copy, Clone, ZeroCopySend)]
#[repr(C)]
pub struct RequestHeader {
pub(crate) node_id: UniqueNodeId,
pub(crate) client_id: UniqueClientId,
pub(crate) channel_id: ChannelId,
pub(crate) request_id: RequestId,
pub(crate) number_of_elements: u64,
}
impl RequestHeader {
pub fn client_id(&self) -> UniqueClientId {
self.client_id
}
pub fn number_of_elements(&self) -> u64 {
self.number_of_elements
}
pub fn node_id(&self) -> UniqueNodeId {
self.node_id
}
}
#[derive(Debug, Copy, Clone, ZeroCopySend)]
#[repr(C)]
pub struct ResponseHeader {
pub(crate) node_id: UniqueNodeId,
pub(crate) server_id: UniqueServerId,
pub(crate) request_id: RequestId,
pub(crate) number_of_elements: u64,
}
impl ResponseHeader {
pub fn node_id(&self) -> UniqueNodeId {
self.node_id
}
pub fn server_id(&self) -> UniqueServerId {
self.server_id
}
pub fn number_of_elements(&self) -> u64 {
self.number_of_elements
}
}