CIsam

 view release on metacpan or  search on metacpan

CIsam.xs  view on Meta::CPAN

	int	fd
	char *	data
	CODE:
	RETVAL = isdelete(fd,data);
	OUTPUT:
	RETVAL

int
isdelindex1(fd,k_flags,k_nparts, ...)
	int  	fd
	short	k_flags
	short 	k_nparts
	PREINIT:
	struct keydesc kd;
	int ind;
	int offset;
	CODE:
	kd.k_flags = k_flags;
	kd.k_nparts = k_nparts;
	for (ind = 0; ind < k_nparts; ind++) {
	  offset = 3 + 3*ind;
 	  kd.k_part[ind].kp_start = (short)SvIV(ST(offset));
 	  kd.k_part[ind].kp_leng = (short)SvIV(ST(offset+1));
 	  kd.k_part[ind].kp_type = (short)SvIV(ST(offset+2));
  	}
        RETVAL = isdelindex(fd,&kd);
        OUTPUT:
	RETVAL

int
isdelrec1(fd,recnum)
	int	fd
	long 	recnum
	CODE:
	RETVAL = isdelrec(fd,recnum);
	OUTPUT:
	RETVAL

int
iserase1(name)
	char *	name
	CODE:
	RETVAL = iserase(name);
	OUTPUT:
	RETVAL

int
isflush1(fd)
	int	fd;
	CODE:
	RETVAL = isflush(fd);
  	OUTPUT:
	RETVAL

int
isisaminfo1(fd)
	int	fd
	PREINIT:
	struct dictinfo di;
	int cc;
	PPCODE:
	cc = isindexinfo(fd,&di,0);
	EXTEND(SP, 5);
   	PUSHs(sv_2mortal(newSViv(cc)));
   	PUSHs(sv_2mortal(newSViv(di.di_nkeys)));
   	PUSHs(sv_2mortal(newSViv(di.di_recsize)));
   	PUSHs(sv_2mortal(newSViv(di.di_idxsize)));
   	PUSHs(sv_2mortal(newSViv(di.di_nrecords)));

int
isindexinfo1(fd,idx)
	int	fd
	int	idx
	PREINIT:
	struct keydesc kd;
	int cc;
	int i, j;
	PPCODE:
	cc = isindexinfo(fd,&kd,idx);
	EXTEND(SP,1+2+3*kd.k_nparts);
	PUSHs(sv_2mortal(newSViv(cc))); 
	PUSHs(sv_2mortal(newSViv(kd.k_flags)));
	PUSHs(sv_2mortal(newSViv(kd.k_nparts))); 
	for (i=0; i<kd.k_nparts; i++) {
	   PUSHs(sv_2mortal(newSViv(kd.k_part[i].kp_start))); 
	   PUSHs(sv_2mortal(newSViv(kd.k_part[i].kp_leng))); 
	   PUSHs(sv_2mortal(newSViv(kd.k_part[i].kp_type))); 
	}

int
islock1(fd)
	int	fd;
	CODE:
	RETVAL = islock(fd);
  	OUTPUT:
	RETVAL

int
islogclose1()
	CODE:
	RETVAL = islogclose();
	OUTPUT:
	RETVAL

int
islogopen1(name)
	char *	name
	CODE:
	RETVAL = islogopen(name);
	OUTPUT:
	RETVAL

int
isopen1(name,mode)
	char * 	name
	int	mode
	CODE:
	RETVAL = isopen(name,mode);
	OUTPUT:
	RETVAL

int
isread1(fd,data,mode)
	int	fd
	char *	data
	int 	mode
	PREINIT:
	int foo;
#if defined (CISAM4)
	struct dictinfo info;
#endif
	CODE:
#if defined (CISAM4)
	isindexinfo(fd, &info, 0);
	isreclen = info.di_recsize;
#endif
	RETVAL = isread(fd,data,mode);
	sv_setpvn((SV*)ST(1), data, isreclen);

CIsam.xs  view on Meta::CPAN

 	  kd.k_part[ind].kp_leng = (short)SvIV(ST(offset+1));
 	  kd.k_part[ind].kp_type = (short)SvIV(ST(offset+2));
  	}
        RETVAL = isstart(fd,&kd,len,data,mode);
        OUTPUT:
	RETVAL

int
isuniqueid1(fd,uniqueid)
	int	fd
	long	uniqueid
	CODE:
	RETVAL = isuniqueid(fd,&uniqueid);
	OUTPUT:
	RETVAL
	uniqueid

int
isunlock1(fd)
	int	fd;
	CODE:
	RETVAL = isunlock(fd);
  	OUTPUT:
	RETVAL

int
iswrcurr1(fd,data)
	int 	fd
	char *	data
	CODE:
	RETVAL = iswrcurr(fd,data);
	OUTPUT:
	RETVAL

int
iswrite1(fd,data)
	int 	fd
	char *	data
	CODE:
	RETVAL = iswrite(fd,data);
	OUTPUT:
	RETVAL

double
lddbl1(p)
	char *p
	CODE:
	RETVAL = lddbl(p);
	OUTPUT:
	RETVAL

void
stdbl1(p, length_of_field)
	char *p
	int length_of_field
	PREINIT:
	char string[200];
	char return_val[2];
	double d;
	int i;
	PPCODE:
	EXTEND(SP, length_of_field);
	d = atof(p);
	stdbl(d,string);

	/* The next steps of magic are done because Perl treats
	   treats everything as string */

	return_val[1]='\000';
	for(i = 0; i < length_of_field; i++)
	{
		return_val[0] = string[i];	
		PUSHs(sv_2mortal(newSVpv(return_val, 2)));
	}
	
int
ldint1(p)
	char *p
	CODE:
	RETVAL = ldint(p);
	OUTPUT:
	RETVAL

void
stint1(p, length_of_field)
	char *p
	int length_of_field
	PREINIT:
	char string[20];
	char return_val[2];
	int d;
	int i;
	PPCODE:
	EXTEND(SP, length_of_field);
	d = atoi(p);
	stint(d,string);

	/* The next steps of magic are done because Perl treats
	   treats everything as string */

	return_val[1]='\000';
	for(i = 0; i < length_of_field; i++)
	{
		return_val[0] = string[i];	
		PUSHs(sv_2mortal(newSVpv(return_val, 2)));
	}
	

long
ldlong1(p)
	char *p
	CODE:
	RETVAL = ldlong(p);
	OUTPUT:
	RETVAL

void
stlong1(p, length_of_field)
	char *p
	int length_of_field
	PREINIT:
	char string[20];
	char return_val[2];
	long d;
	int i;
	PPCODE:
	EXTEND(SP, length_of_field);
	d = atol(p);
	stlong(d,string);
	/* The next steps of magic are done because Perl treats
	   treats everything as string */
	return_val[1]='\000';
	for(i = 0; i < length_of_field; i++)
	{
		return_val[0] = string[i];	
		PUSHs(sv_2mortal(newSVpv(return_val, 2)));
	}
	

void
stfloat1(p, length_of_field)
	char *p
	int length_of_field
	PREINIT:
	char string[20];
	char return_val[2];
	float d;
	int i;
	PPCODE:
	EXTEND(SP, length_of_field);
	d = atof(p);
	stfloat(d,string);

	/* The next steps of magic are done because Perl treats
	   treats everything as string */

	return_val[1]='\000';
	for(i = 0; i < length_of_field; i++)
	{
		return_val[0] = string[i];	
		PUSHs(sv_2mortal(newSVpv(return_val, 2)));
	}
	
double
ldfloat1(p)
	char *p
	CODE:
	RETVAL = (double) ldfloat(p);
	OUTPUT:
	RETVAL



( run in 0.767 second using v1.01-cache-2.11-cpan-71847e10f99 )