Пример #1
0
int main() {
  lmc_error_t e;
  local_memcache_t *lmc = local_memcache_create("viewcounters", 0, 0, 0, &e);
  if (!lmc) {
    fprintf(stderr, "Couldn't create localmemcache: %s\n", e.error_str);
    return 1;
  }
  if (!local_memcache_set(lmc, "foo", 3, "1", 1)) goto failed;
  size_t n_value;
  char *value = local_memcache_get_new(lmc, "foo", 3, &n_value);
  if (!value) goto failed;
  free(value);
  if (!local_memcache_delete(lmc, "foo", 3)) goto failed;
  if (!local_memcache_free(lmc, &e)) {
    fprintf(stderr, "Failed to release localmemcache: %s\n", e.error_str);
    return 1;
  }

  return 0;

failed:
  fprintf(stderr, "%s\n", lmc->error.error_str);
  return 1;

}
/*
 *  call-seq:
 *     lmc.close()   ->   Qnil
 *
 *  Releases hashtable.
 */
static mrb_value Cache__close(mrb_state *mrb, mrb_value self)
{
  lmc_error_t e;
  rb_lmc_handle_t *h = DATA_PTR(self);
  if (!local_memcache_free(rb_lmc_check_handle_access(mrb, h), &e))
    rb_lmc_raise_exception(mrb, &e);
  h->open = 0;
  return mrb_nil_value();
}
Пример #3
0
/* 
 *  call-seq:
 *     lmc.close()   ->   Qnil
 *
 *  Releases hashtable.
 */
static VALUE LocalMemCache__close(VALUE obj) {
  lmc_error_t e;
  rb_lmc_handle_t *h;
  Data_Get_Struct(obj, rb_lmc_handle_t, h);
  if (!local_memcache_free(rb_lmc_check_handle_access(h), &e)) 
      rb_lmc_raise_exception(&e);
  h->open = 0;
  return Qnil;
}
/* :nodoc: */
static void rb_lmc_cache_destructor(mrb_state *mrb, void *p)
{
  rb_lmc_handle_t *h;
  lmc_error_t e;

  h = (rb_lmc_handle_t *)p;
  if (!h || (h->open == 0) || !h->lmc)
    return;

  if (!local_memcache_free(h->lmc, &e)) {
    mrb_free(mrb, p);
    rb_lmc_raise_exception(mrb, &e);
    return;
  }

  mrb_free(mrb, p);
}
Пример #5
0
/* :nodoc: */
static void rb_lmc_free_handle(rb_lmc_handle_t *h) {
  lmc_error_t e;
  local_memcache_free(rb_lmc_check_handle_access(h), &e);
}