Example #1
0
static mrb_value
mrb_grn_cache_fetch(mrb_state *mrb, mrb_value self)
{
  grn_ctx *ctx = (grn_ctx *)mrb->ud;
  grn_cache *cache;
  char *key;
  mrb_int key_size;
  grn_rc rc;
  grn_obj cache_value;
  mrb_value mrb_cache_value;

  cache = DATA_PTR(self);
  mrb_get_args(mrb, "s", &key, &key_size);

  GRN_TEXT_INIT(&cache_value, 0);
  rc = grn_cache_fetch(ctx, cache, key, key_size, &cache_value);
  if (rc == GRN_SUCCESS) {
    mrb_cache_value = grn_mrb_value_from_bulk(mrb, &cache_value);
  } else {
    mrb_cache_value = mrb_nil_value();
  }
  GRN_OBJ_FIN(ctx, &cache_value);

  return mrb_cache_value;
}
Example #2
0
static mrb_value
mrb_grn_cache_fetch(mrb_state *mrb, mrb_value self)
{
  grn_ctx *ctx = (grn_ctx *)mrb->ud;
  grn_cache *cache;
  char *key;
  mrb_int key_size;
  grn_obj *value;

  cache = DATA_PTR(self);
  mrb_get_args(mrb, "s", &key, &key_size);

  value = grn_cache_fetch(ctx, cache, key, key_size);

  return grn_mrb_value_from_bulk(mrb, value);
}
Example #3
0
static mrb_value
mrb_grn_converter_singleton_convert(mrb_state *mrb, mrb_value klass)
{
  grn_ctx *ctx = (grn_ctx *)mrb->ud;
  grn_obj *from = &(ctx->impl->mrb.buffer.from);
  grn_obj *to = &(ctx->impl->mrb.buffer.to);
  mrb_value mrb_from;
  mrb_value mrb_to_class;
  grn_id to_type;

  mrb_get_args(mrb, "oC", &mrb_from, &mrb_to_class);

  grn_mrb_value_to_bulk(mrb, mrb_from, from);
  to_type = grn_mrb_class_to_type(mrb, mrb_class_ptr(mrb_to_class));
  if (!grn_mrb_bulk_cast(mrb, from, to, to_type)) {
    mrb_raisef(mrb, E_ARGUMENT_ERROR,
               "failed to convert to %S: %S",
               mrb_to_class,
               mrb_from);
  }

  return grn_mrb_value_from_bulk(mrb, to);
}
Example #4
0
static mrb_value
mrb_grn_bulk_get_value(mrb_state *mrb, mrb_value self)
{
  return grn_mrb_value_from_bulk(mrb, DATA_PTR(self));
}