📄 mod_villa.c
字号:
} if(checkdup(name) == -1) myerror(DP_EMISC); villa = vlopen(name, omode, cmp); if(!villa) myerror(dpecode); vltable[index] = villa; return INT2FIX(index);}static VALUE rbvlclose(VALUE vself, VALUE vindex){ VILLA *villa; int index; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); villa = vltable[index]; vltable[index] = NULL; if(!vlclose(villa)) myerror(dpecode); return Qtrue;}static VALUE rbvlput(VALUE vself, VALUE vindex, VALUE vkey, VALUE vval, VALUE vdmode){ VILLA *villa; const char *kbuf, *vbuf; int index, ksiz, vsiz, dmode; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); kbuf = STR2CSTR(vkey); ksiz = RSTRING(vkey)->len; vbuf = STR2CSTR(vval); vsiz = RSTRING(vval)->len; FIXNUM_P(vdmode); dmode = FIX2INT(vdmode); villa = vltable[index]; if(!vlput(villa, kbuf, ksiz, vbuf, vsiz, dmode)) myerror(dpecode); return Qtrue;}static VALUE rbvlout(VALUE vself, VALUE vindex, VALUE vkey){ VILLA *villa; const char *kbuf; int index, ksiz; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); kbuf = STR2CSTR(vkey); ksiz = RSTRING(vkey)->len; villa = vltable[index]; if(!vlout(villa, kbuf, ksiz)) myerror(dpecode); return Qtrue;}static VALUE rbvlget(VALUE vself, VALUE vindex, VALUE vkey){ VILLA *villa; const char *kbuf; char *vbuf; int index, ksiz, vsiz; VALUE vval; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); kbuf = STR2CSTR(vkey); ksiz = RSTRING(vkey)->len; villa = vltable[index]; if(!(vbuf = vlget(villa, kbuf, ksiz, &vsiz))) myerror(dpecode); vval = rb_str_new(vbuf, vsiz); free(vbuf); return vval;}static VALUE rbvlvnum(VALUE vself, VALUE vindex, VALUE vkey){ VILLA *villa; const char *kbuf; int index, ksiz, vnum; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); kbuf = STR2CSTR(vkey); ksiz = RSTRING(vkey)->len; villa = vltable[index]; vnum = vlvnum(villa, kbuf, ksiz); return INT2FIX(vnum);}static VALUE rbvlcurfirst(VALUE vself, VALUE vindex){ VILLA *villa; int index; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); villa = vltable[index]; if(!vlcurfirst(villa)) myerror(dpecode); return Qtrue;}static VALUE rbvlcurlast(VALUE vself, VALUE vindex){ VILLA *villa; int index; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); villa = vltable[index]; if(!vlcurlast(villa)) myerror(dpecode); return Qtrue;}static VALUE rbvlcurprev(VALUE vself, VALUE vindex){ VILLA *villa; int index; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); villa = vltable[index]; if(!vlcurprev(villa)) myerror(dpecode); return Qtrue;}static VALUE rbvlcurnext(VALUE vself, VALUE vindex){ VILLA *villa; int index; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); villa = vltable[index]; if(!vlcurnext(villa)) myerror(dpecode); return Qtrue;}static VALUE rbvlcurjump(VALUE vself, VALUE vindex, VALUE vkey, VALUE vjmode){ VILLA *villa; const char *kbuf; int index, ksiz, jmode; VALUE vval; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); kbuf = STR2CSTR(vkey); ksiz = RSTRING(vkey)->len; FIXNUM_P(vjmode); jmode = FIX2INT(vjmode); villa = vltable[index]; if(!vlcurjump(villa, kbuf, ksiz, jmode)) myerror(dpecode); return Qtrue;}static VALUE rbvlcurkey(VALUE vself, VALUE vindex){ VILLA *villa; char *kbuf; int index, ksiz; VALUE vkey; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); villa = vltable[index]; if(!(kbuf = vlcurkey(villa, &ksiz))) myerror(dpecode); vkey = rb_str_new(kbuf, ksiz); free(kbuf); return vkey;}static VALUE rbvlcurval(VALUE vself, VALUE vindex){ VILLA *villa; char *vbuf; int index, vsiz; VALUE vval; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); villa = vltable[index]; if(!(vbuf = vlcurval(villa, &vsiz))) myerror(dpecode); vval = rb_str_new(vbuf, vsiz); free(vbuf); return vval;}static VALUE rbvlsettuning(VALUE vself, VALUE vindex, VALUE vlrecmax, VALUE vnidxmax, VALUE vlcnum, VALUE vncnum){ VILLA *villa; int index, lrecmax, nidxmax, lcnum, ncnum; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); FIXNUM_P(vlrecmax); lrecmax = FIX2INT(vlrecmax); FIXNUM_P(vnidxmax); nidxmax = FIX2INT(vnidxmax); FIXNUM_P(vlcnum); lcnum = FIX2INT(vlcnum); FIXNUM_P(vncnum); ncnum = FIX2INT(vncnum); villa = vltable[index]; vlsettuning(villa, lrecmax, nidxmax, lcnum, ncnum); return Qtrue;}static VALUE rbvlsync(VALUE vself, VALUE vindex){ VILLA *villa; int index; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); villa = vltable[index]; if(!vlsync(villa)) myerror(dpecode); return Qtrue;}static VALUE rbvloptimize(VALUE vself, VALUE vindex){ VILLA *villa; int index; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); villa = vltable[index]; if(!vloptimize(villa)) myerror(dpecode); return Qtrue;}static VALUE rbvlfsiz(VALUE vself, VALUE vindex){ VILLA *villa; int index, fsiz; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); villa = vltable[index]; if((fsiz = vlfsiz(villa)) == -1) myerror(dpecode); return INT2FIX(fsiz);}static VALUE rbvlrnum(VALUE vself, VALUE vindex){ VILLA *villa; int index, rnum; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); villa = vltable[index]; if((rnum = vlrnum(villa)) == -1) myerror(dpecode); return INT2FIX(rnum);}static VALUE rbvlwritable(VALUE vself, VALUE vindex){ VILLA *villa; int index; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); villa = vltable[index]; return vlwritable(villa) ? Qtrue : Qfalse;}static VALUE rbvlfatalerror(VALUE vself, VALUE vindex){ VILLA *villa; int index; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); villa = vltable[index]; return vlfatalerror(villa) ? Qtrue : Qfalse;}static VALUE rbvltranbegin(VALUE vself, VALUE vindex){ VILLA *villa; int index; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); villa = vltable[index]; if(!vltranbegin(villa)) myerror(dpecode); return Qtrue;}static VALUE rbvltrancommit(VALUE vself, VALUE vindex){ VILLA *villa; int index; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); villa = vltable[index]; if(!vltrancommit(villa)) myerror(dpecode); return Qtrue;}static VALUE rbvltranabort(VALUE vself, VALUE vindex){ VILLA *villa; int index; FIXNUM_P(vindex); if((index = FIX2INT(vindex)) == -1) myerror(DP_EMISC); villa = vltable[index]; if(!vltranabort(villa)) myerror(dpecode); return Qtrue;}/* END OF FILE */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -