Sort-External
view release on metacpan or search on metacpan
External.xs view on Meta::CPAN
SortExternal *self = SortEx_new(working_dir, sortsub, cache_size,
mem_threshold, tempfile_fh);
RETVAL = newSV(0);
sv_setref_pv(RETVAL, class_name, (void*)self);
}
OUTPUT: RETVAL
void
DESTROY(self)
SortExternal *self;
PPCODE:
SortEx_destroy(self);
void
feed(self, ...)
SortExternal *self;
PPCODE:
{
AV *const item_cache = self->item_cache;
I32 start = av_len(item_cache) + 1;
I32 new_size = start + items - 1;
IV space = (OVERHEAD + sizeof(SV*)) * (items - 1);
I32 i;
int need_to_flush = 0;
/* Push arguments onto cache array. */
av_extend(self->item_cache, new_size);
External.xs view on Meta::CPAN
call_method("_write_item_cache_to_tempfile", G_VOID|G_DISCARD);
PUTBACK;
FREETMPS;
LEAVE;
}
}
void
fetch(self)
SortExternal *self;
PPCODE:
{
if (self->fetch_tick > av_len(self->item_cache)) {
ENTER;
SAVETMPS;
PUSHMARK(SP);
XPUSHs( ST(0) );
call_method("_gatekeeper", G_VOID|G_DISCARD);
PUTBACK;
FREETMPS;
LEAVE;
External.xs view on Meta::CPAN
default:
croak("unrecognized alias number %d", ix);
}
}
OUTPUT: RETVAL
void
_set_mem_bytes(self, mem_bytes)
SortExternal *self;
IV mem_bytes;
PPCODE:
self->mem_bytes = mem_bytes;
void
_set_fetch_tick(self, fetch_tick)
SortExternal *self;
IV fetch_tick;
PPCODE:
self->fetch_tick = fetch_tick;
void
_set_temp_fh(self, tempfile_fh)
SortExternal *self;
SV *tempfile_fh;
PPCODE:
SvREFCNT_dec(self->tempfile_fh);
self->tempfile_fh = newSVsv(tempfile_fh);
self->fh = IoIFP( sv_2io(tempfile_fh) );
void
_print_to_sortfile(self, input_av, fh)
SortExternal *self;
AV *input_av;
PerlIO *fh;
PPCODE:
SortEx_print_to_sortfile(self, input_av, fh);
void
_utf8_on(sv)
SV *sv;
PPCODE:
/* Testing only. */
SvUTF8_on(sv);
MODULE = Sort::External PACKAGE = Sort::External::SortExRun
SortExRun*
_new(class_sv, tempfile_fh, start, end)
SV *class_sv;
SV *tempfile_fh;
NV start;
NV end;
CODE:
RETVAL = SortExRun_new(tempfile_fh, start, end);
(void)class_sv; /* Silence "unused var" compiler warning. */
OUTPUT: RETVAL
void
DESTROY(self)
SortExRun *self;
PPCODE:
SortExRun_destroy(self);
SV*
_get_buffarray(self)
SortExRun *self;
CODE:
RETVAL = newRV_inc((SV*)self->buffarray);
OUTPUT: RETVAL
void
_set_buffarray(self, buffarray);
SortExRun *self;
AV *buffarray;
PPCODE:
SvREFCNT_dec((SV*)self->buffarray);
self->buffarray = (AV*)SvREFCNT_inc((SV*)buffarray);
IV
_refill_buffer(self)
SortExRun *self;
CODE:
RETVAL = SortExRun_refill_buffer(self);
OUTPUT: RETVAL
( run in 1.419 second using v1.01-cache-2.11-cpan-5511b514fd6 )