HR_SHARED_PTR<ConsistentHash> ConsistentHashFactory::newConsistentHash(uint8_t version) {
    HR_SHARED_PTR<ConsistentHash> result;
    switch (version) {
        case HotRodConstants::CONSISTENT_HASH_V1:
            result.reset(new ConsistentHashV1());
            break;
        case HotRodConstants::CONSISTENT_HASH_V2:
            result.reset(new ConsistentHashV2());
            break;
        default:
            break;
    }
    return result;
}
Exemple #2
0
void consistentHashFactoryTest(uint32_t hashVersion) {
    HR_SHARED_PTR<ConsistentHashFactory> hashFactory;
    hashFactory.reset(new ConsistentHashFactory());
    ConsistentHash* hash = hashFactory->newConsistentHash(hashVersion);
    hrbytes data(const_cast<char*> ("acbde"), 5);
    uint32_t i1 = hash->getNormalizedHash(data);
    uint32_t i2 = hash->getNormalizedHash(data);
    uint32_t i3 = hash->getNormalizedHash(data);

    assert(i1 == i2);
    assert(i3 == i2);
    assert(i1 == i3);
    std::cout << "consistentHashFactoryTest for hash version " << hashVersion << " ok " << std::endl;
}