Algorithm-ConsistentHash-JumpHash

 view release on metacpan or  search on metacpan

JumpHash.xs  view on Meta::CPAN



MODULE = Algorithm::ConsistentHash::JumpHash		PACKAGE = Algorithm::ConsistentHash::JumpHash
PROTOTYPES: DISABLE


int32_t
jumphash_numeric(uint64_t key, int32_t num_buckets)
  CODE:
    RETVAL = JumpConsistentHash(key, num_buckets);
  OUTPUT: RETVAL

int32_t
jumphash_siphash(SV *str, uint64_t num_buckets)
  CODE:
    {
      STRLEN len;
      /* FIXME */
      const char * strval = SvPVbyte(str, len);
      const uint64_t hashval = siphash_2_4_from_perl(strval, len);
      RETVAL = JumpConsistentHash(hashval, num_buckets);
    }
  OUTPUT: RETVAL

ppport.h  view on Meta::CPAN

PTR2ul|5.007001||p
PTRV|5.006000||p
PUSHMARK|||
PUSH_MULTICALL||5.019003|
PUSHi|||
PUSHmortal|5.009002||p
PUSHn|||
PUSHp|||
PUSHs|||
PUSHu|5.004000||p
PUTBACK|||
PadARRAY||5.019003|
PadMAX||5.019003|
PadlistARRAY||5.019003|
PadlistMAX||5.019003|
PadlistNAMESARRAY||5.019003|
PadlistNAMESMAX||5.019003|
PadlistNAMES||5.019003|
PadlistREFCNT||5.017004|
PadnameIsOUR|||
PadnameIsSTATE|||

ppport.h  view on Meta::CPAN

{
    dSP;
    SV* sv = newSVpv(p, 0);

    PUSHMARK(sp);
    eval_sv(sv, G_SCALAR);
    SvREFCNT_dec(sv);

    SPAGAIN;
    sv = POPs;
    PUTBACK;

    if (croak_on_error && SvTRUE(GvSV(errgv)))
        croak(SvPVx(GvSV(errgv), na));

    return sv;
}

#endif
#endif



( run in 0.326 second using v1.01-cache-2.11-cpan-4e96b696675 )