File SolidSyslogBlockStore.h¶
File List > Core > Interface > SolidSyslogBlockStore.h
Go to the documentation of this file
#ifndef SOLIDSYSLOGBLOCKSTORE_H
#define SOLIDSYSLOGBLOCKSTORE_H
#include <stddef.h>
#include "ExternC.h"
struct SolidSyslogStore;
EXTERN_C_BEGIN
struct SolidSyslogBlockDevice;
struct SolidSyslogSecurityPolicy;
enum SolidSyslogDiscardPolicy
{
SOLIDSYSLOG_DISCARD_POLICY_OLDEST,
SOLIDSYSLOG_DISCARD_POLICY_NEWEST,
SOLIDSYSLOG_DISCARD_POLICY_HALT
};
typedef void (*SolidSyslogStoreFullCallback)(void* context);
typedef size_t (*SolidSyslogStoreThresholdFunction)(void* context);
typedef void (*SolidSyslogStoreThresholdCallback)(void* context);
struct SolidSyslogBlockStoreConfig
{
struct SolidSyslogBlockDevice* BlockDevice;
size_t MaxBlocks;
enum SolidSyslogDiscardPolicy DiscardPolicy;
struct SolidSyslogSecurityPolicy* SecurityPolicy;
SolidSyslogStoreFullCallback OnStoreFull;
void* StoreFullContext;
SolidSyslogStoreThresholdFunction GetCapacityThreshold;
SolidSyslogStoreThresholdCallback OnThresholdCrossed;
void* ThresholdContext;
};
struct SolidSyslogStore* SolidSyslogBlockStore_Create(const struct SolidSyslogBlockStoreConfig* config);
void SolidSyslogBlockStore_Destroy(struct SolidSyslogStore * base);
EXTERN_C_END
#endif /* SOLIDSYSLOGBLOCKSTORE_H */