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.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; }
/* * 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(); }