UnnamedSemaphoreBuilder

Struct UnnamedSemaphoreBuilder 

Source
pub struct UnnamedSemaphoreBuilder { /* private fields */ }
Expand description

Creates an UnnamedSemaphore which can be either used process locally or can be stored in a shared memory segment and then used during inter-process communication.

§Example


use iceoryx2_bb_posix::semaphore::*;

let semaphore_handle = UnnamedSemaphoreHandle::new();
let semaphore = UnnamedSemaphoreBuilder::new().initial_value(5)
                                              .is_interprocess_capable(false)
                                              .clock_type(ClockType::Monotonic)
                                              .create(&semaphore_handle)
                                              .expect("failed to create unnamed semaphore");

Implementations§

Source§

impl UnnamedSemaphoreBuilder

Source

pub fn new() -> UnnamedSemaphoreBuilder

Source

pub fn initial_value(self, value: u32) -> UnnamedSemaphoreBuilder

Sets the initial value of the semaphore. Must be less than MAX_INITIAL_SEMAPHORE_VALUE.

Source

pub fn is_interprocess_capable(self, value: bool) -> UnnamedSemaphoreBuilder

Defines if the UnnamedSemaphore can be used in an inter-process communication context.

Source

pub fn clock_type(self, value: ClockType) -> UnnamedSemaphoreBuilder

Sets the type of clock which will be used in SemaphoreInterface::timed_wait(). Be aware a clock like ClockType::Realtime is depending on the systems local time. If this time changes while waiting it can cause extrem long waits or no wait at all.

Source

pub fn create( self, handle: &UnnamedSemaphoreHandle, ) -> Result<UnnamedSemaphore<'_>, UnnamedSemaphoreCreationError>

Creates an UnnamedSemaphore.

Trait Implementations§

Source§

impl Debug for UnnamedSemaphoreBuilder

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for UnnamedSemaphoreBuilder

Source§

fn default() -> UnnamedSemaphoreBuilder

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.