⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mod_villa.c

📁 harvest是一个下载html网页得机器人
💻 C
📖 第 1 页 / 共 2 页
字号:
  }  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 + -