ext/sdbm/init.c File Reference

#include "ruby.h"
#include "sdbm.h"
#include <fcntl.h>
#include <errno.h>

Go to the source code of this file.

Data Structures

struct  dbmdata

Defines

#define GetDBM(obj, dbmp)
#define GetDBM2(obj, data, dbm)

Functions

static void closed_sdbm ()
static void free_sdbm (struct dbmdata *dbmp)
static VALUE fsdbm_close (VALUE obj)
static VALUE fsdbm_closed (VALUE obj)
static VALUE fsdbm_alloc (VALUE klass)
static VALUE fsdbm_initialize (int argc, VALUE *argv, VALUE obj)
static VALUE fsdbm_s_open (int argc, VALUE *argv, VALUE klass)
static VALUE fsdbm_fetch (VALUE obj, VALUE keystr, VALUE ifnone)
static VALUE fsdbm_aref (VALUE obj, VALUE keystr)
static VALUE fsdbm_fetch_m (int argc, VALUE *argv, VALUE obj)
static VALUE fsdbm_key (VALUE obj, VALUE valstr)
static VALUE fsdbm_index (VALUE hash, VALUE value)
static VALUE fsdbm_select (VALUE obj)
static VALUE fsdbm_values_at (int argc, VALUE *argv, VALUE obj)
static void fdbm_modify (VALUE obj)
static VALUE fsdbm_delete (VALUE obj, VALUE keystr)
static VALUE fsdbm_shift (VALUE obj)
static VALUE fsdbm_delete_if (VALUE obj)
static VALUE fsdbm_clear (VALUE obj)
static VALUE fsdbm_invert (VALUE obj)
static VALUE fsdbm_store (VALUE obj, VALUE keystr, VALUE valstr)
static VALUE update_i (RB_BLOCK_CALL_FUNC_ARGLIST(pair, dbm))
static VALUE fsdbm_update (VALUE obj, VALUE other)
static VALUE fsdbm_replace (VALUE obj, VALUE other)
static VALUE fsdbm_length (VALUE obj)
static VALUE fsdbm_empty_p (VALUE obj)
static VALUE fsdbm_each_value (VALUE obj)
static VALUE fsdbm_each_key (VALUE obj)
static VALUE fsdbm_each_pair (VALUE obj)
static VALUE fsdbm_keys (VALUE obj)
static VALUE fsdbm_values (VALUE obj)
static VALUE fsdbm_has_key (VALUE obj, VALUE keystr)
static VALUE fsdbm_has_value (VALUE obj, VALUE valstr)
static VALUE fsdbm_to_a (VALUE obj)
static VALUE fsdbm_to_hash (VALUE obj)
static VALUE fsdbm_reject (VALUE obj)
void Init_sdbm ()

Variables

static VALUE rb_cDBM
static VALUE rb_eDBMError


Define Documentation

#define GetDBM ( obj,
dbmp   ) 

Value:

{\
    Data_Get_Struct((obj), struct dbmdata, (dbmp));\
    if ((dbmp) == 0) closed_sdbm();\
    if ((dbmp)->di_dbm == 0) closed_sdbm();\
}

Definition at line 80 of file init.c.

#define GetDBM2 ( obj,
data,
dbm   ) 

Value:

{\
    GetDBM((obj), (data));\
    (dbm) = dbmp->di_dbm;\
}

Definition at line 86 of file init.c.


Function Documentation

static void closed_sdbm (  )  [static]

Definition at line 75 of file init.c.

References rb_eDBMError, and rb_raise().

static void fdbm_modify ( VALUE  obj  )  [static]

Definition at line 397 of file init.c.

References OBJ_FROZEN, and rb_error_frozen().

static void free_sdbm ( struct dbmdata dbmp  )  [static]

Definition at line 92 of file init.c.

References dbmdata::di_dbm, ruby_xfree(), and sdbm_close().

Referenced by fsdbm_alloc(), and fsdbm_s_open().

static VALUE fsdbm_alloc ( VALUE  klass  )  [static]

Definition at line 140 of file init.c.

References Data_Wrap_Struct, and free_sdbm().

Referenced by Init_sdbm().

static VALUE fsdbm_aref ( VALUE  obj,
VALUE  keystr 
) [static]

Definition at line 264 of file init.c.

References fsdbm_fetch(), and Qnil.

Referenced by Init_sdbm().

static VALUE fsdbm_clear ( VALUE  obj  )  [static]

Definition at line 533 of file init.c.

References dbmdata::di_size, fdbm_modify(), GetDBM2, key, rb_eDBMError, rb_raise(), sdbm_delete(), and sdbm_firstkey().

Referenced by fsdbm_replace(), and Init_sdbm().

static VALUE fsdbm_close ( VALUE  obj  )  [static]

Definition at line 108 of file init.c.

References dbmdata::di_dbm, GetDBM, Qnil, and sdbm_close().

Referenced by fsdbm_s_open(), and Init_sdbm().

static VALUE fsdbm_closed ( VALUE  obj  )  [static]

Definition at line 126 of file init.c.

References Data_Get_Struct, dbmdata::di_dbm, Qfalse, and Qtrue.

Referenced by Init_sdbm().

static VALUE fsdbm_delete ( VALUE  obj,
VALUE  keystr 
) [static]

Definition at line 415 of file init.c.

References dbmdata::di_size, datum::dptr, datum::dsize, ExportStringValue, fdbm_modify(), GetDBM2, key, Qnil, rb_block_given_p(), rb_eDBMError, rb_external_str_new(), rb_raise(), rb_yield(), RSTRING_LENINT, RSTRING_PTR, sdbm_delete(), sdbm_fetch(), and VALUE.

Referenced by fsdbm_store(), and Init_sdbm().

static VALUE fsdbm_delete_if ( VALUE  obj  )  [static]

Definition at line 488 of file init.c.

References dbmdata::di_size, datum::dptr, datum::dsize, ExportStringValue, fdbm_modify(), GetDBM2, key, RARRAY_LEN, RARRAY_LENINT, RARRAY_PTR, rb_ary_new(), rb_ary_push(), rb_assoc_new(), rb_eDBMError, rb_external_str_new(), rb_jump_tag(), rb_protect(), rb_raise(), rb_str_dup(), rb_yield(), RSTRING_LENINT, RSTRING_PTR, RTEST, sdbm_delete(), sdbm_fetch(), sdbm_firstkey(), sdbm_nextkey(), val, and VALUE.

Referenced by Init_sdbm().

static VALUE fsdbm_each_key ( VALUE  obj  )  [static]

Definition at line 769 of file init.c.

References GetDBM2, key, rb_external_str_new(), rb_yield(), RETURN_ENUMERATOR, sdbm_firstkey(), and sdbm_nextkey().

Referenced by Init_sdbm().

static VALUE fsdbm_each_pair ( VALUE  obj  )  [static]

Definition at line 797 of file init.c.

References datum::dptr, datum::dsize, GetDBM2, key, rb_assoc_new(), rb_external_str_new(), rb_yield(), RETURN_ENUMERATOR, sdbm_fetch(), sdbm_firstkey(), sdbm_nextkey(), val, and VALUE.

Referenced by Init_sdbm().

static VALUE fsdbm_each_value ( VALUE  obj  )  [static]

Definition at line 742 of file init.c.

References datum::dptr, datum::dsize, GetDBM2, key, rb_external_str_new(), rb_yield(), RETURN_ENUMERATOR, sdbm_fetch(), sdbm_firstkey(), sdbm_nextkey(), and val.

Referenced by Init_sdbm().

static VALUE fsdbm_empty_p ( VALUE  obj  )  [static]

Definition at line 711 of file init.c.

References dbmdata::di_dbm, dbmdata::di_size, GetDBM, key, Qfalse, Qtrue, sdbm_firstkey(), and sdbm_nextkey().

Referenced by Init_sdbm().

static VALUE fsdbm_fetch ( VALUE  obj,
VALUE  keystr,
VALUE  ifnone 
) [static]

Definition at line 235 of file init.c.

References datum::dptr, datum::dsize, ExportStringValue, GetDBM2, key, Qnil, rb_block_given_p(), rb_external_str_new(), rb_yield(), RSTRING_LENINT, RSTRING_PTR, and sdbm_fetch().

Referenced by fsdbm_aref(), fsdbm_fetch_m(), and fsdbm_values_at().

static VALUE fsdbm_fetch_m ( int  argc,
VALUE *  argv,
VALUE  obj 
) [static]

Definition at line 284 of file init.c.

References fsdbm_fetch(), NIL_P, rb_block_given_p(), rb_eIndexError, rb_raise(), rb_scan_args(), and VALUE.

Referenced by Init_sdbm().

static VALUE fsdbm_has_key ( VALUE  obj,
VALUE  keystr 
) [static]

Definition at line 875 of file init.c.

References datum::dptr, ExportStringValue, GetDBM2, key, Qfalse, Qtrue, RSTRING_LENINT, RSTRING_PTR, sdbm_fetch(), and val.

Referenced by Init_sdbm().

static VALUE fsdbm_has_value ( VALUE  obj,
VALUE  valstr 
) [static]

Definition at line 899 of file init.c.

References datum::dptr, datum::dsize, ExportStringValue, GetDBM2, key, memcmp(), Qfalse, Qtrue, RSTRING_LENINT, RSTRING_PTR, sdbm_fetch(), sdbm_firstkey(), sdbm_nextkey(), and val.

Referenced by Init_sdbm().

static VALUE fsdbm_index ( VALUE  hash,
VALUE  value 
) [static]

Definition at line 329 of file init.c.

References fsdbm_key(), and rb_warn().

Referenced by Init_sdbm().

static VALUE fsdbm_initialize ( int  argc,
VALUE *  argv,
VALUE  obj 
) [static]

Definition at line 160 of file init.c.

References ALLOC, DATA_PTR, dbmdata::di_dbm, dbmdata::di_size, FilePathValue, NIL_P, NUM2INT, Qnil, rb_scan_args(), rb_sys_fail_str(), RSTRING_PTR, sdbm_open(), and VALUE.

Referenced by fsdbm_s_open(), and Init_sdbm().

static VALUE fsdbm_invert ( VALUE  obj  )  [static]

Definition at line 569 of file init.c.

References datum::dptr, datum::dsize, GetDBM2, hash(), key, rb_external_str_new(), rb_hash_aset(), rb_hash_new(), sdbm_fetch(), sdbm_firstkey(), sdbm_nextkey(), val, and VALUE.

Referenced by Init_sdbm().

static VALUE fsdbm_key ( VALUE  obj,
VALUE  valstr 
) [static]

Definition at line 305 of file init.c.

References datum::dptr, datum::dsize, ExportStringValue, GetDBM2, key, memcmp(), Qnil, rb_external_str_new(), RSTRING_LEN, RSTRING_LENINT, RSTRING_PTR, sdbm_fetch(), sdbm_firstkey(), sdbm_nextkey(), and val.

Referenced by fsdbm_index(), and Init_sdbm().

static VALUE fsdbm_keys ( VALUE  obj  )  [static]

Definition at line 825 of file init.c.

References GetDBM2, key, rb_ary_new(), rb_ary_push(), rb_external_str_new(), sdbm_firstkey(), sdbm_nextkey(), and VALUE.

Referenced by Init_sdbm().

static VALUE fsdbm_length ( VALUE  obj  )  [static]

Definition at line 686 of file init.c.

References dbmdata::di_size, GetDBM2, INT2FIX, key, sdbm_firstkey(), and sdbm_nextkey().

Referenced by Init_sdbm().

static VALUE fsdbm_reject ( VALUE  obj  )  [static]

Definition at line 988 of file init.c.

References fsdbm_to_hash(), and rb_hash_delete_if().

Referenced by Init_sdbm().

static VALUE fsdbm_replace ( VALUE  obj,
VALUE  other 
) [static]

Definition at line 671 of file init.c.

References fsdbm_clear(), rb_block_call(), rb_intern, and update_i().

Referenced by Init_sdbm().

static VALUE fsdbm_s_open ( int  argc,
VALUE *  argv,
VALUE  klass 
) [static]

Definition at line 219 of file init.c.

References Data_Wrap_Struct, free_sdbm(), fsdbm_close(), fsdbm_initialize(), NIL_P, Qnil, rb_block_given_p(), rb_ensure(), rb_yield(), and VALUE.

Referenced by Init_sdbm().

static VALUE fsdbm_select ( VALUE  obj  )  [static]

Definition at line 355 of file init.c.

References datum::dptr, datum::dsize, GetDBM2, key, rb_ary_new(), rb_ary_push(), rb_assoc_new(), rb_external_str_new(), rb_yield(), RTEST, sdbm_fetch(), sdbm_firstkey(), sdbm_nextkey(), val, and VALUE.

Referenced by Init_sdbm().

static VALUE fsdbm_shift ( VALUE  obj  )  [static]

Definition at line 457 of file init.c.

References dbmdata::di_size, datum::dptr, datum::dsize, fdbm_modify(), GetDBM2, key, Qnil, rb_assoc_new(), rb_external_str_new(), sdbm_delete(), sdbm_fetch(), sdbm_firstkey(), val, and VALUE.

Referenced by Init_sdbm().

static VALUE fsdbm_store ( VALUE  obj,
VALUE  keystr,
VALUE  valstr 
) [static]

Definition at line 600 of file init.c.

References DBM_REPLACE, dbmdata::di_size, datum::dptr, datum::dsize, EPERM, errno, ExportStringValue, fdbm_modify(), fsdbm_delete(), GetDBM2, key, Qnil, rb_eDBMError, rb_raise(), rb_sys_fail(), RSTRING_LENINT, RSTRING_PTR, sdbm_clearerr, sdbm_store(), and val.

Referenced by Init_sdbm(), and update_i().

static VALUE fsdbm_to_a ( VALUE  obj  )  [static]

Definition at line 936 of file init.c.

References datum::dptr, datum::dsize, GetDBM2, key, rb_ary_new(), rb_ary_push(), rb_assoc_new(), rb_external_str_new(), sdbm_fetch(), sdbm_firstkey(), sdbm_nextkey(), val, and VALUE.

Referenced by Init_sdbm().

static VALUE fsdbm_to_hash ( VALUE  obj  )  [static]

Definition at line 961 of file init.c.

References datum::dptr, datum::dsize, GetDBM2, hash(), key, rb_external_str_new(), rb_hash_aset(), rb_hash_new(), sdbm_fetch(), sdbm_firstkey(), sdbm_nextkey(), val, and VALUE.

Referenced by fsdbm_reject(), and Init_sdbm().

static VALUE fsdbm_update ( VALUE  obj,
VALUE  other 
) [static]

Definition at line 655 of file init.c.

References rb_block_call(), rb_intern, and update_i().

Referenced by Init_sdbm().

static VALUE fsdbm_values ( VALUE  obj  )  [static]

Definition at line 848 of file init.c.

References datum::dptr, datum::dsize, GetDBM2, key, rb_ary_new(), rb_ary_push(), rb_external_str_new(), sdbm_fetch(), sdbm_firstkey(), sdbm_nextkey(), val, and VALUE.

Referenced by Init_sdbm().

static VALUE fsdbm_values_at ( int  argc,
VALUE *  argv,
VALUE  obj 
) [static]

Definition at line 384 of file init.c.

References fsdbm_fetch(), Qnil, rb_ary_new2, rb_ary_push(), and VALUE.

Referenced by Init_sdbm().

void Init_sdbm (  ) 

Definition at line 994 of file init.c.

References fsdbm_alloc(), fsdbm_aref(), fsdbm_clear(), fsdbm_close(), fsdbm_closed(), fsdbm_delete(), fsdbm_delete_if(), fsdbm_each_key(), fsdbm_each_pair(), fsdbm_each_value(), fsdbm_empty_p(), fsdbm_fetch_m(), fsdbm_has_key(), fsdbm_has_value(), fsdbm_index(), fsdbm_initialize(), fsdbm_invert(), fsdbm_key(), fsdbm_keys(), fsdbm_length(), fsdbm_reject(), fsdbm_replace(), fsdbm_s_open(), fsdbm_select(), fsdbm_shift(), fsdbm_store(), fsdbm_to_a(), fsdbm_to_hash(), fsdbm_update(), fsdbm_values(), fsdbm_values_at(), rb_cDBM, rb_cObject, rb_define_alloc_func(), rb_define_class(), rb_define_method(), rb_define_singleton_method(), rb_eDBMError, rb_eStandardError, rb_include_module(), and rb_mEnumerable.

static VALUE update_i ( RB_BLOCK_CALL_FUNC_ARGLIST(pair, dbm)   )  [static]

Definition at line 635 of file init.c.

References Check_Type, fsdbm_store(), Qnil, RARRAY_LEN, RARRAY_PTR, rb_eArgError, rb_raise(), and T_ARRAY.


Variable Documentation

VALUE rb_cDBM [static]

Definition at line 67 of file init.c.

VALUE rb_eDBMError [static]

Definition at line 67 of file init.c.


Generated on 19 Jul 2016 for Ruby by  doxygen 1.4.7