Exemple #1
0
static int metrics_hash_probe(struct metrics *m, const char *key, long len)
{
    uint32_t h, k, n;
    int i;

    h = fast_hash(key,(int)len);
    k = h % MAX_METRICS;

    if (m->metrics[k] == NULL)
    {
        return k;
    }
    else if (strcmp(m->metrics[k]->name,key) == 0)
    {
        return k;
    }

    n = 1;
    for (i =0; i < 32; i++)
    {
        k = (h + n) % MAX_METRICS;
        if (m->metrics[k] == NULL)
        {
            return k;
        }
        else if (strcmp(m->metrics[k]->name,key) == 0)
        {
            return k;
        }
        n = n * 2;
    }

    return -1;
}
Exemple #2
0
   size_t operator()(const T& p) const
   {
#ifndef MOOST_FASTHASH_NO_ISPOD_CHECK
      BOOST_STATIC_ASSERT((boost::is_pod<T>::value));
#endif

      return fast_hash(&p, sizeof(T), TSeed);
   }
Exemple #3
0
static int stats_hash_probe(struct stats_data *data, const char *key, int len)
{
    uint32_t h, k, n;
    int i, probes = 1;

    h = fast_hash(key,len);
    k = h % COUNTER_TABLE_SIZE;

    if (data->ctr[k].ctr_allocation_status == ALLOCATION_STATUS_FREE)
    {
        return k;
    }
    else if (data->ctr[k].ctr_allocation_status == ALLOCATION_STATUS_ALLOCATED &&
             data->ctr[k].ctr_key_len == len &&
             memcmp(data->ctr[k].ctr_key,key,len) == 0)
    {
        return k;
    }

    n = 1;
    for (i =0; i < 32; i++)
    {
        k = (h + n) % COUNTER_TABLE_SIZE;
        probes++;
        if (data->ctr[k].ctr_allocation_status == ALLOCATION_STATUS_FREE)
        {
            return k;
        }
        else if (data->ctr[k].ctr_allocation_status == ALLOCATION_STATUS_ALLOCATED &&
                 data->ctr[k].ctr_key_len == len &&
                 memcmp(data->ctr[k].ctr_key,key,len) == 0)
        {
            return k;
        }
        n = n * 2;
    }

    return -1;
}
Exemple #4
0
 inline operator size_t() const { return fast_hash(this, sizeof(*this)); }
Exemple #5
0
 // specialization for strings, override seed
 size_t operator()( const std::string& str, size_t seed) const
 { return fast_hash( str.data(), str.size(), seed ); }
Exemple #6
0
 // overrides default seed
 size_t operator()( const void* key, size_t size, size_t seed ) const
 { return fast_hash(key, size, seed); }