Class: Groonga::TableCursor
- Inherits:
-
Object
- Object
- Groonga::TableCursor
- Includes:
- Enumerable
- Defined in:
- ext/rb-grn-table-cursor.c,
ext/rb-grn-table-cursor.c
Overview
テーブルに登録されているレコードを順番に取り出すための オブジェクト。Groonga::Table#open_cursorで生成できる。
Direct Known Subclasses
Defined Under Namespace
Modules: KeySupport
Instance Method Summary collapse
-
#close ⇒ Object
call-seq: object.close.
-
#closed? ⇒ Boolean
call-seq: object.closed? -> true/false.
-
#delete ⇒ Object
カレントレコードを削除する。.
-
#each {|record| ... } ⇒ Object
カーソルの範囲内にあるレコードを順番にブロックに渡す。.
-
#next ⇒ Groonga::Record
カレントレコードを一件進めてそのレコードを返す。.
-
#value ⇒ Object
カレントレコードの値を返す。.
-
#value= ⇒ Object
カレントレコードの値を設定する。既存の値は上書きされる。.
Instance Method Details
#close ⇒ Object
call-seq:
object.close
objectが使用しているリソースを開放する。これ以降objectを 使うことはできない。
462 463 464 465 466 467 468 469 470 471 472 473 |
# File 'ext/rb-grn-object.c', line 462
VALUE
rb_grn_object_close (VALUE self)
{
grn_obj *object;
grn_ctx *context;
rb_grn_object_deconstruct(SELF(self), &object, &context,
NULL, NULL, NULL, NULL);
if (object && context)
grn_obj_close(context, object);
return Qnil;
}
|
#closed? ⇒ Boolean
call-seq:
object.closed? -> true/false
objectが開放済みの場合はtrue
を返し、そうでない場合は false
を返す。
484 485 486 487 488 489 490 491 492 493 494 495 |
# File 'ext/rb-grn-object.c', line 484
VALUE
rb_grn_object_closed_p (VALUE self)
{
RbGrnObject *rb_grn_object;
rb_grn_object = SELF(self);
if (rb_grn_object->context && rb_grn_object->object) {
return Qfalse;
} else {
return Qtrue;
}
}
|
#delete ⇒ Object
カレントレコードを削除する。
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'ext/rb-grn-table-cursor.c', line 126
static VALUE
rb_grn_table_cursor_delete (VALUE self)
{
grn_ctx *context;
grn_table_cursor *cursor;
rb_grn_table_cursor_deconstruct(SELF(self), &cursor, &context,
NULL, NULL, NULL, NULL);
if (context && cursor) {
grn_rc rc;
rc = grn_table_cursor_delete(context, cursor);
rb_grn_rc_check(rc, self);
}
return Qnil;
}
|
#each {|record| ... } ⇒ Object
カーソルの範囲内にあるレコードを順番にブロックに渡す。
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 |
# File 'ext/rb-grn-table-cursor.c', line 177
static VALUE
rb_grn_table_cursor_each (VALUE self)
{
grn_id record_id;
grn_ctx *context;
grn_table_cursor *cursor;
rb_grn_table_cursor_deconstruct(SELF(self), &cursor, &context,
NULL, NULL, NULL, NULL);
if (context && cursor) {
while ((record_id = grn_table_cursor_next(context, cursor))) {
rb_yield(rb_grn_record_new(rb_iv_get(self, "@table"),
record_id, Qnil));
}
}
return Qnil;
}
|
#next ⇒ Groonga::Record
カレントレコードを一件進めてそのレコードを返す。
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
# File 'ext/rb-grn-table-cursor.c', line 150
static VALUE
rb_grn_table_cursor_next (VALUE self)
{
VALUE rb_record = Qnil;
grn_ctx *context;
grn_table_cursor *cursor;
rb_grn_table_cursor_deconstruct(SELF(self), &cursor, &context,
NULL, NULL, NULL, NULL);
if (context && cursor) {
grn_id record_id;
record_id = grn_table_cursor_next(context, cursor);
if (record_id != GRN_ID_NIL) /* FIXME: use grn_table_cursor_table */
rb_record = rb_grn_record_new(rb_iv_get(self, "@table"),
record_id, Qnil);
}
return rb_record;
}
|
#value ⇒ Object
カレントレコードの値を返す。
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'ext/rb-grn-table-cursor.c', line 73
static VALUE
rb_grn_table_cursor_get_value (VALUE self)
{
grn_ctx *context;
grn_table_cursor *cursor;
VALUE rb_value = Qnil;
rb_grn_table_cursor_deconstruct(SELF(self), &cursor, &context,
NULL, NULL, NULL, NULL);
if (context && cursor) {
int n;
void *value;
n = grn_table_cursor_get_value(context, cursor, &value);
rb_value = rb_str_new(value, n);
}
return rb_value;
}
|
#value= ⇒ Object
カレントレコードの値を設定する。既存の値は上書きされる。
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'ext/rb-grn-table-cursor.c', line 99
static VALUE
rb_grn_table_cursor_set_value (VALUE self, VALUE value)
{
grn_ctx *context;
grn_table_cursor *cursor;
rb_grn_table_cursor_deconstruct(SELF(self), &cursor, &context,
NULL, NULL, NULL, NULL);
if (context && cursor) {
grn_rc rc;
rc = grn_table_cursor_set_value(context,
cursor,
StringValuePtr(value),
GRN_OBJ_SET);
rb_grn_rc_check(rc, self);
}
return Qnil;
}
|