summaryrefslogtreecommitdiff
path: root/src/mongo/base/simple_string_data_comparator.cpp
diff options
context:
space:
mode:
authorDavid Storch <david.storch@10gen.com>2016-07-15 18:15:12 -0400
committerDavid Storch <david.storch@10gen.com>2016-07-19 22:35:21 -0400
commit7e986cc77f121e3af9a5f1217e89913745fc07f9 (patch)
treee29c4ec325199937b2723a500a462e6c125616ea /src/mongo/base/simple_string_data_comparator.cpp
parent0b32158c9cb44b31078ca923ef5c8fff755c952a (diff)
downloadmongo-7e986cc77f121e3af9a5f1217e89913745fc07f9.tar.gz
SERVER-23990 add ValueComparator::Hasher for collation-aware Value hashing
Diffstat (limited to 'src/mongo/base/simple_string_data_comparator.cpp')
-rw-r--r--src/mongo/base/simple_string_data_comparator.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mongo/base/simple_string_data_comparator.cpp b/src/mongo/base/simple_string_data_comparator.cpp
index e52539744fc..f9077f942b2 100644
--- a/src/mongo/base/simple_string_data_comparator.cpp
+++ b/src/mongo/base/simple_string_data_comparator.cpp
@@ -40,19 +40,19 @@ namespace mongo {
namespace {
template <int SizeofSizeT>
-size_t murmur3(StringData str);
+size_t murmur3(StringData str, size_t seed);
template <>
-size_t murmur3<4>(StringData str) {
+size_t murmur3<4>(StringData str, size_t seed) {
char hash[4];
- MurmurHash3_x86_32(str.rawData(), str.size(), 0, &hash);
+ MurmurHash3_x86_32(str.rawData(), str.size(), seed, &hash);
return ConstDataView(hash).read<LittleEndian<std::uint32_t>>();
}
template <>
-size_t murmur3<8>(StringData str) {
+size_t murmur3<8>(StringData str, size_t seed) {
char hash[16];
- MurmurHash3_x64_128(str.rawData(), str.size(), 0, hash);
+ MurmurHash3_x64_128(str.rawData(), str.size(), seed, hash);
return static_cast<size_t>(ConstDataView(hash).read<LittleEndian<std::uint64_t>>());
}
@@ -64,8 +64,8 @@ int SimpleStringDataComparator::compare(StringData left, StringData right) const
return left.compare(right);
}
-size_t SimpleStringDataComparator::hash(StringData stringToHash) const {
- return murmur3<sizeof(size_t)>(stringToHash);
+void SimpleStringDataComparator::hash_combine(size_t& seed, StringData stringToHash) const {
+ seed = murmur3<sizeof(size_t)>(stringToHash, seed);
}
} // namespace mongo