ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
sqlite.h File Reference

💾 SQLite rate limiting backend interface More...

Go to the source code of this file.

Functions

void * sqlite_backend_create (const char *db_path)
 Create SQLite backend instance.
 
void sqlite_backend_set_db (void *backend_data, sqlite3 *db)
 Set SQLite database handle for backend.
 

Variables

const rate_limiter_backend_ops_t sqlite_backend_ops
 SQLite backend operations vtable.
 

Detailed Description

💾 SQLite rate limiting backend interface

Definition in file sqlite.h.

Function Documentation

◆ sqlite_backend_create()

void * sqlite_backend_create ( const char *  db_path)

Create SQLite backend instance.

Parameters
db_pathPath to SQLite database (NULL = in-memory)
Returns
Backend instance or NULL on failure

Definition at line 145 of file sqlite.c.

145 {
146 (void)db_path; // Database is provided externally, not created here
147
148 sqlite_backend_t *backend = malloc(sizeof(sqlite_backend_t));
149 if (!backend) {
150 log_error("Failed to allocate SQLite backend");
151 return NULL;
152 }
153
154 memset(backend, 0, sizeof(*backend));
155
156 // Database handle will be set after creation by ACDS
157 // This is a placeholder backend that will be initialized later
158 log_debug("SQLite rate limiter backend allocated (database will be set externally)");
159 return backend;
160}
#define log_error(...)
Log an ERROR message.
Definition log/log.h:587
#define log_debug(...)
Log a DEBUG message.
Definition log/log.h:548
SQLite backend data.
Definition sqlite.c:17

References log_debug, and log_error.

Referenced by rate_limiter_create_sqlite().

◆ sqlite_backend_set_db()

void sqlite_backend_set_db ( void *  backend_data,
sqlite3 *  db 
)

Set SQLite database handle for backend.

Called by ACDS after opening the database, since the database lifecycle is managed externally.

Parameters
backend_dataBackend instance from sqlite_backend_create()
dbSQLite database handle

Called by ACDS after opening the database.

Definition at line 167 of file sqlite.c.

167 {
168 sqlite_backend_t *backend = (sqlite_backend_t *)backend_data;
169 if (backend) {
170 backend->db = db;
171 }
172}
sqlite3 * db
SQLite database handle.
Definition sqlite.c:18

References sqlite_backend_t::db.

Referenced by rate_limiter_set_sqlite_db().

Variable Documentation

◆ sqlite_backend_ops

const rate_limiter_backend_ops_t sqlite_backend_ops
extern

SQLite backend operations vtable.

Definition at line 174 of file sqlite.c.

174 {
175 .check = sqlite_check,
176 .record = sqlite_record,
177 .cleanup = sqlite_cleanup,
178 .destroy = sqlite_destroy,
179};

Referenced by rate_limiter_create_sqlite().