32 [[nodiscard]]
Result<
void>
createPipe(const std::
string &name, std::
size_t capacity = 1024);
46 createMessageQueue(const std::
string &name, std::
size_t maxMessages = 64,
bool priorityMode = false);
57 [[nodiscard]]
bool exists(const std::
string &name) const noexcept;
Common interface for IPC channels.
IpcManager & operator=(const IpcManager &)=delete
bool exists(const std::string &name) const noexcept
Checks whether a named channel exists.
Result< void > createMessageQueue(const std::string &name, std::size_t maxMessages=64, bool priorityMode=false)
Creates a message queue channel if it does not already exist.
Result< void > createPipe(const std::string &name, std::size_t capacity=1024)
Creates a pipe channel if it does not already exist.
Result< void > destroyChannel(const std::string &name)
Destroys a channel by name.
IpcManager(IpcManager &&) noexcept
Result< void > createSharedMemory(const std::string &name, std::size_t bytes)
Creates a shared-memory channel if it does not already exist.
IpcManager(const IpcManager &)=delete
Result< std::reference_wrapper< IIpcChannel > > getChannel(const std::string &name)
Looks up a channel by name.
std::unique_ptr< Impl > impl_
std::size_t channelCount() const noexcept
Number of registered channels.
A result type that holds either a success value of type T or an ErrorCode.
IIpcChannel interface for inter-process communication channels.