Algorithm-ConsistentHash-Ketama
view release on metacpan or search on metacpan
xs/Ketama.xs view on Meta::CPAN
int weight;
void
PerlKetama_remove_bucket(ketama, label)
PerlKetama *ketama;
char *label;
void
PerlKetama_buckets(ketama)
PerlKetama *ketama;
PPCODE:
/* since PerlKetama_buckets may push an unknown number of items
into the Perl stash, this is required */
XSRETURN( PerlKetama_buckets(ketama) );
char *
PerlKetama_hash(ketama, thing)
PerlKetama* ketama;
SV *thing;
void
PerlKetama_hash_with_hashnum(ketama, thing)
PerlKetama* ketama;
SV *thing;
PREINIT:
unsigned int hash;
char *ptr;
STRLEN len;
char *label;
PPCODE:
ptr = SvPV(thing, len);
label = ketama->hashfunc(ketama, ptr, len, &hash);
mXPUSHp(label, strlen(label));
mXPUSHu(hash);
XSRETURN(2);
void
PerlKetama_label_from_hashnum(ketama, thing)
PerlKetama* ketama;
unsigned int thing;
PREINIT:
char *label;
PPCODE:
label = ketama->hashfunc(ketama, NULL, 0, &thing);
XPUSHs(sv_2mortal(newSVpv(label, strlen(label))));
XSRETURN(1);
PerlKetama *
PerlKetama_clone(ketama)
PerlKetama *ketama;
PREINIT:
SV *class_sv = ST(0);
( run in 1.583 second using v1.01-cache-2.11-cpan-71847e10f99 )