3 #ifndef vtkStringToken_h
4 #define vtkStringToken_h
30 VTK_ABI_NAMESPACE_BEGIN
36 using Hash = std::uint32_t;
84 static constexpr uint32_t hash32a_const = 0x811c9dc5;
85 static constexpr uint32_t hash32b_const = 0x1000193;
86 static constexpr uint64_t hash64a_const = 0xcbf29ce484222325;
87 static constexpr uint64_t hash64b_const = 0x100000001b3;
93 const char*
const str, std::size_t
size,
const uint32_t
value = hash32a_const) noexcept
95 return (!str || size <= 0)
97 : hash_32_fnv1a_const(&str[1], size - 1, (
value ^ uint32_t(str[0])) * hash32b_const);
102 inline static constexpr uint64_t hash_64_fnv1a_const(
103 const char*
const str, std::size_t
size,
const uint64_t
value = hash64a_const) noexcept
105 return (!str || size <= 0) ?
value :
106 hash_64_fnv1a_const(&str[1], size - 1, (
value ^ uint64_t(str[0])) * hash64b_const);
110 VTK_ABI_NAMESPACE_END
117 VTK_ABI_NAMESPACE_BEGIN
140 const char*
data, std::size_t size)
155 const char*
data, std::size_t size)
160 VTK_ABI_NAMESPACE_END
163 #endif // __VTK_WRAP__
165 VTK_ABI_NAMESPACE_BEGIN
193 VTK_ABI_NAMESPACE_END
205 #endif // vtkStringToken_h
std::size_t operator()(const vtkStringToken &t) const
bool VTKCOMMONCORE_EXPORT operator>(const std::string &a, const vtkStringToken &b)
Specialization of tuple ranges and iterators for vtkAOSDataArrayTemplate.
bool VTKCOMMONCORE_EXPORT operator==(const std::string &a, const vtkStringToken &b)
Hash GetId() const
Return the token's ID (usually its hash but possibly not in the case of collisions).
constexpr vtkStringToken(Hash tokenId) noexcept
Construct a token given its hash value.
bool VTKCOMMONCORE_EXPORT operator!=(const std::string &a, const vtkStringToken &b)
bool VTKCOMMONCORE_EXPORT operator<(const std::string &a, const vtkStringToken &b)
Represent a string by its integer hash.
static vtkSmartPointer< vtkStringManager > Manager
static constexpr Hash StringHash(const char *data, std::size_t size) noexcept
Return the hash of a string This is used internally but also by the ""_token() literal operator...
static constexpr uint32_t hash_32_fnv1a_const(const char *const str, std::size_t size, const uint32_t value=hash32a_const) noexcept
Manage string-token mappings.
bool VTKCOMMONCORE_EXPORT operator>=(const std::string &a, const vtkStringToken &b)
bool VTKCOMMONCORE_EXPORT operator<=(const std::string &a, const vtkStringToken &b)