コード例 #1
0
ファイル: hello.c プロジェクト: Zabrane/localmemcache
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;

}
コード例 #2
0
/* 
 *  call-seq:
 *     lmc.set(key, value)   ->   Qnil
 *     lmc[key]=value        ->   Qnil
 *
 *  Set value for key in hashtable.  Value and key will be converted to
 *  string.
 */
static VALUE LocalMemCache__set(VALUE obj, VALUE key, VALUE value) {
  local_memcache_t *lmc = get_LocalMemCache(obj);
  lmc_rb_str_d_t k, v;
  rstring_acquire(key, &k);
  rstring_acquire(value, &v);
  if (!local_memcache_set(lmc, k.cstr, k.len, v.cstr, v.len)) { 
    rb_lmc_raise_exception(&lmc->error); 
  }
  return Qnil;
}
コード例 #3
0
/*
 *  call-seq:
 *     lmc.set(key, value)   ->   Qnil
 *     lmc[key]=value        ->   Qnil
 *
 *  Set value for key in hashtable.  Value and key will be converted to
 *  string.
 */
static mrb_value Cache__set(mrb_state *mrb, mrb_value self)
{
  local_memcache_t *lmc = get_Cache(mrb, self);
  mrb_value key, value;
  mrb_cache_iovec_t k, v;

  mrb_get_args(mrb, "oo", &key, &value);
  if (mrb_type(key) != MRB_TT_STRING || mrb_type(value) != MRB_TT_STRING) {
    mrb_raise(mrb, E_TYPE_ERROR, "both key and value must be STRING");
  }

  mrb_cache_str_to_iovec(mrb, key, &k);
  mrb_cache_str_to_iovec(mrb, value, &v);

  if (!local_memcache_set(lmc, k.base, k.len, v.base, v.len)) {
    rb_lmc_raise_exception(mrb, &lmc->error);
  }
  return mrb_nil_value();
}