[Groonga-commit] groonga/groonga at f20487c [master] mrb ctx: add accessors

Back to archive index

Kouhei Sutou null+****@clear*****
Wed Aug 6 23:05:09 JST 2014


Kouhei Sutou	2014-08-06 23:05:09 +0900 (Wed, 06 Aug 2014)

  New Revision: f20487cbd78d00a1845813a85dc8182091b9cd1c
  https://github.com/groonga/groonga/commit/f20487cbd78d00a1845813a85dc8182091b9cd1c

  Message:
    mrb ctx: add accessors

  Modified files:
    lib/mrb/mrb_ctx.c

  Modified: lib/mrb/mrb_ctx.c (+122 -0)
===================================================================
--- lib/mrb/mrb_ctx.c    2014-08-06 20:48:57 +0900 (88528b5)
+++ lib/mrb/mrb_ctx.c    2014-08-06 23:05:09 +0900 (8e7abfc)
@@ -22,6 +22,8 @@
 #include <mruby.h>
 #include <mruby/class.h>
 #include <mruby/data.h>
+#include <mruby/variable.h>
+#include <mruby/string.h>
 
 #include "mrb_ctx.h"
 #include "mrb_converter.h"
@@ -52,6 +54,108 @@ ctx_array_reference(mrb_state *mrb, mrb_value self)
   return grn_mrb_value_from_grn_obj(mrb, object);
 }
 
+static mrb_value
+ctx_get_rc(mrb_state *mrb, mrb_value self)
+{
+  grn_ctx *ctx = (grn_ctx *)mrb->ud;
+
+  return mrb_fixnum_value(ctx->rc);
+}
+
+static mrb_value
+ctx_set_rc(mrb_state *mrb, mrb_value self)
+{
+  grn_ctx *ctx = (grn_ctx *)mrb->ud;
+  mrb_int rc;
+
+  mrb_get_args(mrb, "i", &rc);
+  ctx->rc = rc;
+
+  return mrb_fixnum_value(ctx->rc);
+}
+
+static mrb_value
+ctx_get_error_level(mrb_state *mrb, mrb_value self)
+{
+  grn_ctx *ctx = (grn_ctx *)mrb->ud;
+
+  return mrb_fixnum_value(ctx->errlvl);
+}
+
+static mrb_value
+ctx_set_error_level(mrb_state *mrb, mrb_value self)
+{
+  grn_ctx *ctx = (grn_ctx *)mrb->ud;
+  mrb_int error_level;
+
+  mrb_get_args(mrb, "i", &error_level);
+  ctx->errlvl = error_level;
+
+  return mrb_fixnum_value(ctx->errlvl);
+}
+
+static mrb_value
+ctx_get_error_file(mrb_state *mrb, mrb_value self)
+{
+  grn_ctx *ctx = (grn_ctx *)mrb->ud;
+
+  return mrb_str_new_cstr(mrb, ctx->errfile);
+}
+
+static mrb_value
+ctx_set_error_file(mrb_state *mrb, mrb_value self)
+{
+  grn_ctx *ctx = (grn_ctx *)mrb->ud;
+  mrb_value error_file;
+
+  mrb_get_args(mrb, "S", &error_file);
+  mrb_iv_set(mrb, self, mrb_intern_lit(mrb, "@error_file"), error_file);
+  ctx->errfile = RSTRING_PTR(error_file);
+
+  return error_file;
+}
+
+static mrb_value
+ctx_get_error_line(mrb_state *mrb, mrb_value self)
+{
+  grn_ctx *ctx = (grn_ctx *)mrb->ud;
+
+  return mrb_fixnum_value(ctx->errline);
+}
+
+static mrb_value
+ctx_set_error_line(mrb_state *mrb, mrb_value self)
+{
+  grn_ctx *ctx = (grn_ctx *)mrb->ud;
+  mrb_int error_line;
+
+  mrb_get_args(mrb, "i", &error_line);
+  ctx->errline = error_line;
+
+  return mrb_fixnum_value(ctx->errline);
+}
+
+static mrb_value
+ctx_get_error_method(mrb_state *mrb, mrb_value self)
+{
+  grn_ctx *ctx = (grn_ctx *)mrb->ud;
+
+  return mrb_str_new_cstr(mrb, ctx->errfunc);
+}
+
+static mrb_value
+ctx_set_error_method(mrb_state *mrb, mrb_value self)
+{
+  grn_ctx *ctx = (grn_ctx *)mrb->ud;
+  mrb_value error_method;
+
+  mrb_get_args(mrb, "S", &error_method);
+  mrb_iv_set(mrb, self, mrb_intern_lit(mrb, "@error_method"), error_method);
+  ctx->errfunc = RSTRING_PTR(error_method);
+
+  return error_method;
+}
+
 void
 grn_mrb_ctx_init(grn_ctx *ctx)
 {
@@ -67,5 +171,23 @@ grn_mrb_ctx_init(grn_ctx *ctx)
                           ctx_class_instance, MRB_ARGS_NONE());
 
   mrb_define_method(mrb, klass, "[]", ctx_array_reference, MRB_ARGS_REQ(1));
+  mrb_define_method(mrb, klass, "rc", ctx_get_rc, MRB_ARGS_NONE());
+  mrb_define_method(mrb, klass, "rc=", ctx_set_rc, MRB_ARGS_REQ(1));
+  mrb_define_method(mrb, klass, "error_level", ctx_get_error_level,
+                    MRB_ARGS_NONE());
+  mrb_define_method(mrb, klass, "error_level=", ctx_set_error_level,
+                    MRB_ARGS_REQ(1));
+  mrb_define_method(mrb, klass, "error_file", ctx_get_error_file,
+                    MRB_ARGS_NONE());
+  mrb_define_method(mrb, klass, "error_file=", ctx_set_error_file,
+                    MRB_ARGS_REQ(1));
+  mrb_define_method(mrb, klass, "error_line", ctx_get_error_line,
+                    MRB_ARGS_NONE());
+  mrb_define_method(mrb, klass, "error_line=", ctx_set_error_line,
+                    MRB_ARGS_REQ(1));
+  mrb_define_method(mrb, klass, "error_method", ctx_get_error_method,
+                    MRB_ARGS_NONE());
+  mrb_define_method(mrb, klass, "error_method=", ctx_set_error_method,
+                    MRB_ARGS_REQ(1));
 }
 #endif
-------------- next part --------------
HTML����������������������������...
下载 



More information about the Groonga-commit mailing list
Back to archive index