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; }
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; }