Skip to content

Struct SolidSyslogStore

ClassList > SolidSyslogStore

Store-and-forward vtable. More...

  • #include <SolidSyslogStoreDefinition.h>

Public Attributes

Type Name
size_t(* GetTotalBytes
Configured capacity, for integrator capacity queries.
size_t(* GetUsedBytes
Bytes currently occupied by retained records.
bool(* HasUnsent
bool(* IsHalted
True once a full store under the Halt discard policy has stopped accepting writes.
bool(* IsTransient
True when the store never retains anything (e.g.
void(* MarkSent
Mark the record from the last ReadNextUnsent sent and advance the cursor.
bool(* ReadNextUnsent
Copy the oldest unsent record into data (up tomaxSize , over-long records truncated), setbytesRead , and position the cursor on it for a following MarkSent.
bool(* Write
Take a copy of data (size bytes) as an unsent record.

Detailed Description

The Service loop is the only reader: it drains the buffer through Write, then repeatedly ReadNextUnsent / MarkSent as the sender accepts records. ReadNextUnsent and MarkSent form a single read cursor (see below); they are not safe to interleave from two contexts.

Public Attributes Documentation

variable GetTotalBytes

Configured capacity, for integrator capacity queries.

size_t(* SolidSyslogStore::GetTotalBytes) (struct SolidSyslogStore *base);


variable GetUsedBytes

Bytes currently occupied by retained records.

size_t(* SolidSyslogStore::GetUsedBytes) (struct SolidSyslogStore *base);


variable HasUnsent

bool(* SolidSyslogStore::HasUnsent) (struct SolidSyslogStore *base);

variable IsHalted

True once a full store under the Halt discard policy has stopped accepting writes.

bool(* SolidSyslogStore::IsHalted) (struct SolidSyslogStore *base);

Service treats a halted store as a hard stop, no drain, no send.


variable IsTransient

True when the store never retains anything (e.g.

bool(* SolidSyslogStore::IsTransient) (struct SolidSyslogStore *base);

NullStore), so a Write rejection means "I never had it, please try the sender." False for stores that actually retain records, where a rejection is the discard policy speaking and the message must NOT bypass older records via a direct-send fallback. Service consults this after a failed Write to decide whether to fall through.


variable MarkSent

Mark the record from the last ReadNextUnsent sent and advance the cursor.

void(* SolidSyslogStore::MarkSent) (struct SolidSyslogStore *base);

A no-op with no preceding successful read, so on a send failure the caller skips this and the same record is re-read next pass.


variable ReadNextUnsent

Copy the oldest unsent record into data (up tomaxSize , over-long records truncated), setbytesRead , and position the cursor on it for a following MarkSent.

bool(* SolidSyslogStore::ReadNextUnsent) (struct SolidSyslogStore *base, void *data, size_t maxSize, size_t *bytesRead);

Does not consume the record, a repeat call re-reads the same one until MarkSent advances past it. False with bytesRead 0 means nothing unsent.


variable Write

Take a copy of data (size bytes) as an unsent record.

bool(* SolidSyslogStore::Write) (struct SolidSyslogStore *base, const void *data, size_t size);

False means not retained: for a retaining store that is the discard policy refusing it (drop-newest, or halted), for a transient store it means "never held, send it directly". Service branches on IsTransient to tell the two apart.



The documentation for this class was generated from the following file Core/Interface/SolidSyslogStoreDefinition.h