Skip to content

File SolidSyslogPosixMessageQueueBuffer.h

FileList > Interface > SolidSyslogPosixMessageQueueBuffer.h

Go to the source code of this file

A Buffer backed by a POSIX message queue, decoupling SolidSyslog_Log (enqueue) from Service (drain) across tasks or processes. More...

  • #include <stddef.h>
  • #include "ExternC.h"

Public Functions

Type Name
struct SolidSyslogBuffer * SolidSyslogPosixMessageQueueBuffer_Create (size_t maxMessageSize, long maxMessages)
maxMessageSize andmaxMessages size the queue; an exhausted pool falls back to the shared NullBuffer.
void SolidSyslogPosixMessageQueueBuffer_Destroy (struct SolidSyslogBuffer * base)
Release the pool slot; closes and unlinks the underlying queue.

Detailed Description

The queue is non-blocking: Write (mq_send) drops the record and reports an error when the queue is full, so SolidSyslog_Log never blocks; Read (mq_receive) is a non-blocking poll where an empty queue is silent and any other failure is reported. Each pool slot owns a distinct queue /solidsyslog_<pid>_<slot>, unlinked on Destroy.

Public Functions Documentation

function SolidSyslogPosixMessageQueueBuffer_Create

maxMessageSize andmaxMessages size the queue; an exhausted pool falls back to the shared NullBuffer.

struct SolidSyslogBuffer * SolidSyslogPosixMessageQueueBuffer_Create (
    size_t maxMessageSize,
    long maxMessages
) 


function SolidSyslogPosixMessageQueueBuffer_Destroy

Release the pool slot; closes and unlinks the underlying queue.

void SolidSyslogPosixMessageQueueBuffer_Destroy (
    struct SolidSyslogBuffer * base
) 



The documentation for this class was generated from the following file Platform/Posix/Interface/SolidSyslogPosixMessageQueueBuffer.h