Crate iceoryx2_bb_posix

Crate iceoryx2_bb_posix 

Source
Expand description

Abstraction of POSIX constructs with a safe API

Modules§

access_mode
The AccessMode describes the mode in which resources like crate::file::File, crate::shared_memory::SharedMemory or others should be opened.
adaptive_wait
AdaptiveWait is a building block which can be integrated into busy loops to make them less CPU consuming.
barrier
Inter-process capable Barrier which blocks a previously defined number of waiters untilthe all the waiters reached Barrier::wait()
clock
Contains POSIX timing related abstractions.
config
Defines configuration options for the posix module. They can be adapted when working on a different system.
creation_mode
The CreationMode describes how certain posix resources should be created.
deadline_queue
Example
directory
Create and read directory contents based on a POSIX api. It provides also advanced features like Permission setting and to be created from a FileDescriptor
file
Read, create, write or modify files based on a POSIX api. It provides also advanced features like Permission setting and to be created from a FileDescriptor.
file_descriptor
Provides a FileDescriptor abstraction which takes the ownership of low-level POSIX file descriptors and the FileDescriptorBased & FileDescriptorManagement traits which provide advanced functionalities to all FileDescriptorBased constructs.
file_descriptor_set
Abstracts a POSIX file descriptor set based of FD_* and select. Can be used to wait on multiple objects which implement the SynchronousMultiplexing trait.
file_lock
A FileLock can be created around any object which implements the FileDescriptorBased trait. Either one can exclusively lock the file for writing or many can lock it for reading.
file_type
FileType describes the type of files which can be used in a POSIX system.
group
Provides the trait GroupExt to create groups from strings by interpreting them as group name or from unsigned integers by interpreting them as group id. The Group struct provides access to the properties of a POSIX group.
handle_errno
Used internally to perform error handling based on errnos
ipc_capable
memory
Provides an interface for low-level heap allocations.
memory_lock
A MemoryLock excludes a specific range in the memory from paging, e.g. makes it non-swapable. This may increase the runtime and reduce jitter in a realtime applications since the specific region inside the memory is not moved into the swap space.
memory_mapping
Safe abstraction of the POSIX calls mmap, munmap and mprotect.
metadata
Metadata contains all informations like type, credentials, size, access times about every structure which has a file handle representation. Every struct which implements the crate::file_descriptor::FileDescriptorManagement trait can emit a Metadata. One struct is for instance crate::file::File.
mutex
Provides an inter-process capable POSIX Mutex which can be created by the MutexBuilder.
ownership
Represents the Ownership in a unix environment consisting of user and group. Can be used in combination with crate::file_descriptor::FileDescriptorManagement to set the credentials of crate::file::File, crate::shared_memory::SharedMemory and others.
permission
Defines the Permission of a file or directory in a POSIX system. Can be used in combination with crate::file_descriptor::FileDescriptorManagement to set the credentials of crate::file::File, crate::shared_memory::SharedMemory and others.
process
Provides an abstraction of Processes in a POSIX system.
process_state
Process monitoring via holding a file lock of a specific file. If the process crashes the lock will be released by the operating system and another process can detect the crash. If the process shutdowns correctly the file is removed and another process detects the clean shutdown.
read_write_mutex
A POSIX inter-process capable ReadWriteMutex where either multiple readers can acquire multiple read-locks or one writer can acquire a write-lock. It is built by the ReadWriteMutexBuilder.
scheduler
Provides a POSIX Scheduler abstraction.
semaphore
Provides the NamedSemaphore and the UnnamedSemaphore. Both can be used in an inter-process context to signal events between processes.
shared_memory
Provides access to a POSIX SharedMemoryObject used to share memory between processes.
signal
Provides a POSIX SignalHandler. It provides an interface to register custom callbacks for signals, to perform a blocking wait until a certain signal arrived (for instance like CTRL+c) and tracks signals which were received by the process.
signal_set
socket_ancillary
The SocketAncillary can be sent with crate::unix_datagram_socket::UnixDatagramSender::try_send_msg() and received via crate::unix_datagram_socket::UnixDatagramReceiver::try_receive_msg(). One can use it to exchange file descriptors between processes or authenticate at another process by sending SocketCred containing the process pid, uid and gid.
socket_pair
Abstraction of a unix streaming socket pair. Every StreamingSocket can send and receive data on distinct channels, meaning that a StreamingSocket will never acquire the data it has sent via a receive call.
system_configuration
Provides information about the POSIX SystemInfo, Limits, available SysOption and Features.
thread
An abstraction of a POSIX Thread with a rich feature set.
udp_socket
Abstraction of an UDP socket.
unique_system_id
Generates a UniqueSystemId which is in all processes on the current system. The guarantee is that no other process with the same id exists. But it is possible that a process with a specific id terminates and a new process generates the same id.
unix_datagram_socket
Abstraction of datagram based unix domain sockets. The UnixDatagramReceiver creates a socket and the UnixDatagramSender can connect to it and send messages.
user
Provides the trait UserExt to create users from strings by interpreting them as user name or from unsigned integers by interpreting them as user id. The User struct provides access to the properties of a POSIX user.

Enums§

Error