NeoMutt  2024-04-25-85-g27bab4
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
delete_record()

Delete a record from the Store. More...

+ Collaboration diagram for delete_record():

Functions

static int store_bdb_delete_record (StoreHandle *store, const char *key, size_t klen)
 Delete a record from the Store - Implements StoreOps::delete_record() -.
 
static int store_gdbm_delete_record (StoreHandle *store, const char *key, size_t klen)
 Delete a record from the Store - Implements StoreOps::delete_record() -.
 
static int store_kyotocabinet_delete_record (StoreHandle *store, const char *key, size_t klen)
 Delete a record from the Store - Implements StoreOps::delete_record() -.
 
static int store_lmdb_delete_record (StoreHandle *store, const char *key, size_t klen)
 Delete a record from the Store - Implements StoreOps::delete_record() -.
 
static int store_qdbm_delete_record (StoreHandle *store, const char *key, size_t klen)
 Delete a record from the Store - Implements StoreOps::delete_record() -.
 
static int store_rocksdb_delete_record (StoreHandle *store, const char *key, size_t klen)
 Delete a record from the Store - Implements StoreOps::delete_record() -.
 
static int store_tokyocabinet_delete_record (StoreHandle *store, const char *key, size_t klen)
 Delete a record from the Store - Implements StoreOps::delete_record() -.
 
static int store_tdb_delete_record (StoreHandle *store, const char *key, size_t klen)
 Delete a record from the Store - Implements StoreOps::delete_record() -.
 

Detailed Description

Delete a record from the Store.

Parameters
[in]storeStore retrieved via open()
[in]keyKey identifying the record
[in]klenLength of the Key string
Return values
0Success
numError, a backend-specific error code

Function Documentation

◆ store_bdb_delete_record()

static int store_bdb_delete_record ( StoreHandle store,
const char *  key,
size_t  klen 
)
static

Delete a record from the Store - Implements StoreOps::delete_record() -.

Definition at line 239 of file bdb.c.

240{
241 if (!store)
242 return -1;
243
244 // Decloak an opaque pointer
245 struct BdbStoreData *sdata = store;
246
247 DBT dkey = { 0 };
248 dbt_init(&dkey, (void *) key, klen);
249 return sdata->db->del(sdata->db, NULL, &dkey, 0);
250}
static void dbt_init(DBT *dbt, void *data, size_t len)
Initialise a BDB thing.
Definition: bdb.c:88
Berkeley DB Store.
Definition: bdb.c:47
DB * db
Definition: bdb.c:49
+ Here is the call graph for this function:

◆ store_gdbm_delete_record()

static int store_gdbm_delete_record ( StoreHandle store,
const char *  key,
size_t  klen 
)
static

Delete a record from the Store - Implements StoreOps::delete_record() -.

Definition at line 116 of file gdbm.c.

117{
118 if (!store || (klen > INT_MAX))
119 return -1;
120
121 datum dkey = { 0 };
122
123 // Decloak an opaque pointer
124 GDBM_FILE db = store;
125
126 dkey.dptr = (char *) key;
127 dkey.dsize = klen;
128
129 return gdbm_delete(db, dkey);
130}

◆ store_kyotocabinet_delete_record()

static int store_kyotocabinet_delete_record ( StoreHandle store,
const char *  key,
size_t  klen 
)
static

Delete a record from the Store - Implements StoreOps::delete_record() -.

Definition at line 115 of file kc.c.

116{
117 if (!store)
118 return -1;
119
120 // Decloak an opaque pointer
121 KCDB *db = store;
122 if (!kcdbremove(db, key, klen))
123 {
124 int ecode = kcdbecode(db);
125 return ecode ? ecode : -1;
126 }
127 return 0;
128}

◆ store_lmdb_delete_record()

static int store_lmdb_delete_record ( StoreHandle store,
const char *  key,
size_t  klen 
)
static

Delete a record from the Store - Implements StoreOps::delete_record() -.

Definition at line 295 of file lmdb.c.

296{
297 if (!store)
298 return -1;
299
300 MDB_val dkey = { 0 };
301
302 // Decloak an opaque pointer
303 struct LmdbStoreData *sdata = store;
304
305 dkey.mv_data = (void *) key;
306 dkey.mv_size = klen;
307 int rc = lmdb_get_write_txn(sdata);
308 if (rc != MDB_SUCCESS)
309 {
310 mutt_debug(LL_DEBUG2, "lmdb_get_write_txn: %s\n", mdb_strerror(rc));
311 return rc;
312 }
313 rc = mdb_del(sdata->txn, sdata->db, &dkey, NULL);
314 if ((rc != MDB_SUCCESS) && (rc != MDB_NOTFOUND))
315 {
316 mutt_debug(LL_DEBUG2, "mdb_del: %s\n", mdb_strerror(rc));
317 mdb_txn_abort(sdata->txn);
319 sdata->txn = NULL;
320 }
321
322 return rc;
323}
#define mutt_debug(LEVEL,...)
Definition: logging2.h:89
static int lmdb_get_write_txn(struct LmdbStoreData *sdata)
Get an LMDB write transaction.
Definition: lmdb.c:126
@ TXN_UNINITIALIZED
Transaction is uninitialised.
Definition: lmdb.c:57
@ LL_DEBUG2
Log at debug level 2.
Definition: logging2.h:44
LMDB store.
Definition: lmdb.c:66
MDB_txn * txn
Definition: lmdb.c:68
MDB_dbi db
Definition: lmdb.c:69
enum LmdbTxnMode txn_mode
Definition: lmdb.c:70
+ Here is the call graph for this function:

◆ store_qdbm_delete_record()

static int store_qdbm_delete_record ( StoreHandle store,
const char *  key,
size_t  klen 
)
static

Delete a record from the Store - Implements StoreOps::delete_record() -.

Definition at line 97 of file qdbm.c.

98{
99 if (!store)
100 return -1;
101
102 // Decloak an opaque pointer
103 VILLA *db = store;
104 /* Not sure if dpecode is reset on success, so better to explicitly return 0
105 * on success */
106 bool success = vlout(db, key, klen);
107 return success ? 0 : dpecode ? dpecode : -1;
108}

◆ store_rocksdb_delete_record()

static int store_rocksdb_delete_record ( StoreHandle store,
const char *  key,
size_t  klen 
)
static

Delete a record from the Store - Implements StoreOps::delete_record() -.

Definition at line 176 of file rocksdb.c.

177{
178 if (!store)
179 return -1;
180
181 // Decloak an opaque pointer
182 struct RocksDbStoreData *sdata = store;
183
184 rocksdb_delete(sdata->db, sdata->write_options, key, klen, &sdata->err);
185 if (sdata->err)
186 {
187 rocksdb_free(sdata->err);
188 sdata->err = NULL;
189 return -1;
190 }
191
192 return 0;
193}
RocksDB store.
Definition: rocksdb.c:41
rocksdb_t * db
Definition: rocksdb.c:42
rocksdb_writeoptions_t * write_options
Definition: rocksdb.c:45
char * err
Definition: rocksdb.c:46

◆ store_tokyocabinet_delete_record()

static int store_tokyocabinet_delete_record ( StoreHandle store,
const char *  key,
size_t  klen 
)
static

Delete a record from the Store - Implements StoreOps::delete_record() -.

Definition at line 109 of file tc.c.

110{
111 if (!store)
112 return -1;
113
114 // Decloak an opaque pointer
115 TCBDB *db = store;
116 if (!tcbdbout(db, key, klen))
117 {
118 int ecode = tcbdbecode(db);
119 return ecode ? ecode : -1;
120 }
121 return 0;
122}

◆ store_tdb_delete_record()

static int store_tdb_delete_record ( StoreHandle store,
const char *  key,
size_t  klen 
)
static

Delete a record from the Store - Implements StoreOps::delete_record() -.

Definition at line 114 of file tdb.c.

115{
116 if (!store)
117 return -1;
118
119 // Decloak an opaque pointer
120 TDB_CONTEXT *db = store;
121 TDB_DATA dkey;
122
123 dkey.dptr = (unsigned char *) key;
124 dkey.dsize = klen;
125
126 return tdb_delete(db, dkey);
127}