return idx;
}
+/******************************************************************************/
+/******************************************************************************/
+/*** EXPIRATION ***/
+/******************************************************************************/
+/******************************************************************************/
+
+static
+bool
+expired(
+ time_t expire,
+ time_t now
+) {
+ return expire && expire <= now;
+}
+
/******************************************************************************/
/******************************************************************************/
/*** SEARCH KEYS ***/
data_value_t v;
/* drop expired items */
- if (value->expire && value->expire <= s->now)
+ if (expired(value->expire, s->now))
return Anydb_Action_Remove_And_Continue;
if (searchkey_match(s->db, key, &s->skey)) {
struct drop_s *s = closure;
/* drop expired items */
- if (value->expire && value->expire <= s->now)
+ if (expired(value->expire, s->now))
return Anydb_Action_Remove_And_Continue;
/* remove if matches the key */
struct set_s *s = closure;
/* drop expired items */
- if (value->expire && value->expire <= s->now)
+ if (expired(value->expire, s->now))
return Anydb_Action_Remove_And_Continue;
if (searchkey_is(s->db, key, &s->skey)) {
unsigned sc;
/* drop expired items */
- if (value->expire && value->expire <= s->now)
+ if (expired(value->expire, s->now))
return Anydb_Action_Remove_And_Continue;
sc = searchkey_test(s->db, key, &s->skey);
) {
struct empty_s *s = closure;
- if (value->expire && value->expire <= s->now)
+ /* drop expired items */
+ if (expired(value->expire, s->now))
return Anydb_Action_Remove_And_Continue;
s->empty = false;
const anydb_key_t *key,
anydb_value_t *value
) {
- return value->expire && value->expire <= *(time_t*)closure
+ return expired(value->expire, *(time_t*)closure)
? Anydb_Action_Remove_And_Continue : Anydb_Action_Continue;
}