ascii-chat 0.6.0
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
log/mmap.h
Go to the documentation of this file.
1#pragma once
2
30#include <stdint.h>
31#include <stdbool.h>
32// C11 stdatomic.h conflicts with MSVC's C++ <atomic> header on Windows.
33#if defined(__cplusplus) && defined(_WIN32)
34#include <atomic>
35#else
36#include <stdatomic.h>
37#endif
38#include "common.h"
39#include "platform/mmap.h"
40
41#ifdef __cplusplus
42extern "C" {
43#endif
44
46#define LOG_MMAP_DEFAULT_SIZE (4 * 1024 * 1024)
47
51typedef struct log_mmap_config {
52 const char *log_path;
53 size_t max_size;
55
66
76asciichat_error_t log_mmap_init_simple(const char *log_path, size_t max_size);
77
83void log_mmap_destroy(void);
84
98void log_mmap_write(int level, const char *file, int line, const char *func, const char *fmt, ...);
99
105bool log_mmap_is_active(void);
106
113void log_mmap_sync(void);
114
124
132
140bool log_mmap_get_usage(size_t *used, size_t *capacity);
141
151void log_mmap_rotate(void);
152
153#ifdef __cplusplus
154}
155#endif
unsigned long long uint64_t
Definition common.h:59
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:46
struct log_mmap_config log_mmap_config_t
Configuration for mmap logging.
asciichat_error_t log_mmap_init(const log_mmap_config_t *config)
Initialize mmap-based text logging.
Definition mmap.c:188
void log_mmap_rotate(void)
Rotate the mmap log (tail-keeping rotation)
Definition mmap.c:408
void log_mmap_install_crash_handlers(void)
Install signal handlers for crash safety.
Definition mmap.c:141
void log_mmap_sync(void)
Force sync the mmap'd file to disk.
Definition mmap.c:379
bool log_mmap_is_active(void)
Check if mmap logging is active.
Definition mmap.c:375
void log_mmap_write(int level, const char *file, int line, const char *func, const char *fmt,...)
Write a log entry directly to the mmap'd file (lock-free)
Definition mmap.c:309
bool log_mmap_get_usage(size_t *used, size_t *capacity)
Get current mmap log usage.
Definition mmap.c:394
void log_mmap_destroy(void)
Shutdown mmap logging.
Definition mmap.c:257
void log_mmap_get_stats(uint64_t *bytes_written, uint64_t *wrap_count)
Get statistics about the mmap log.
Definition mmap.c:385
asciichat_error_t log_mmap_init_simple(const char *log_path, size_t max_size)
Initialize mmap logging with simple parameters.
Definition mmap.c:249
_Atomic uint64_t bytes_written
Definition mmap.c:40
_Atomic uint64_t wrap_count
Definition mmap.c:41
Cross-platform memory-mapped file interface.
Configuration for mmap logging.
Definition log/mmap.h:51
size_t max_size
Definition log/mmap.h:53
const char * log_path
Definition log/mmap.h:52