chenjunfu2-nbt-cpp v2.1.0
一个基于CPP20的NBT(Named Binary Tag)库
载入中...
搜索中...
未找到
NBT_Hash类 参考

一个封装xxhash调用的用于计算哈希的辅助类 更多...

#include <NBT_Hash.hpp>

Public 类型

using HASH_T = XXH64_hash_t
 类型别名,xxhash类型封装,类型必须是uint64_t

Public 成员函数

 NBT_Hash (const HASH_T &tHashSeed)
 通过哈希种子构造并初始化xxhash对象
 ~NBT_Hash (void)
 析构并释放xxhash对象,然后置空
 NBT_Hash (const NBT_Hash &_Copy)=delete
 禁止拷贝构造
 NBT_Hash (NBT_Hash &&_Move) noexcept
 移动构造
NBT_Hashoperator= (const NBT_Hash &)=delete
 禁止拷贝赋值
NBT_Hashoperator= (NBT_Hash &&_Move) noexcept
 移动赋值
HASH_T Digest (void) const
 根据之前已添加的数据,获取当前的哈希值
void Update (const void *pData, size_t szSize)
 添加指针指向的数据更新哈希
template<typename T>
requires (std::is_trivially_copyable_v<T>)
void Update (const T &tData)
 通过可平凡复制类型更新哈希
template<typename T, size_t N>
requires (std::is_trivially_copyable_v<T>)
void Update (const T(&tDataArr)[N])
 通过可平凡复制类型的数组更新哈希

静态 Public 成员函数

static HASH_T Hash (const void *pData, size_t szSize, HASH_T tHashSeed)
 直接通过指针指向的数据获取哈希
template<typename T>
requires (std::is_trivially_copyable_v<T>)
static HASH_T Hash (const T &tData, HASH_T tHashSeed)
 直接通过可平凡复制类型获取哈希
template<typename T, size_t N>
requires (std::is_trivially_copyable_v<T>)
static HASH_T Hash (const T(&tDataArr)[N], HASH_T tHashSeed)
 直接通过可平凡复制类型的数组获取哈希

详细描述

一个封装xxhash调用的用于计算哈希的辅助类

注解
该类仅在安装xxhash的情况下有效

构造及析构函数说明

◆ NBT_Hash() [1/2]

NBT_Hash::NBT_Hash ( const HASH_T & tHashSeed)
inline

通过哈希种子构造并初始化xxhash对象

参数
tHashSeed哈希种子

◆ NBT_Hash() [2/2]

NBT_Hash::NBT_Hash ( NBT_Hash && _Move)
inlinenoexcept

移动构造

参数
_Move右值对象

成员函数说明

◆ Digest()

HASH_T NBT_Hash::Digest ( void ) const
inline

根据之前已添加的数据,获取当前的哈希值

返回
哈希值

◆ Hash() [1/3]

template<typename T>
requires (std::is_trivially_copyable_v<T>)
HASH_T NBT_Hash::Hash ( const T & tData,
HASH_T tHashSeed )
inlinestatic

直接通过可平凡复制类型获取哈希

模板参数
T可平凡复制类型
参数
tData可平凡复制类型的引用
tHashSeed哈希种子
返回
计算的哈希值
注解
自动获取类型字节数并直接计算后返回,无状态,静态函数

◆ Hash() [2/3]

template<typename T, size_t N>
requires (std::is_trivially_copyable_v<T>)
HASH_T NBT_Hash::Hash ( const T(&) tDataArr[N],
HASH_T tHashSeed )
inlinestatic

直接通过可平凡复制类型的数组获取哈希

模板参数
T可平凡复制类型
参数
tDataArr可平凡复制类型的数组引用
tHashSeed哈希种子
返回
计算的哈希值
注解
自动获取数组字节数并直接计算后返回,无状态,静态函数

◆ Hash() [3/3]

HASH_T NBT_Hash::Hash ( const void * pData,
size_t szSize,
HASH_T tHashSeed )
inlinestatic

直接通过指针指向的数据获取哈希

参数
pData数据指针
szSize数据大小(字节)
tHashSeed哈希种子
返回
计算的哈希值
注解
直接计算并返回,无状态,静态函数

◆ operator=()

NBT_Hash & NBT_Hash::operator= ( NBT_Hash && _Move)
inlinenoexcept

移动赋值

参数
_Move右值对象
返回
对象的引用

◆ Update() [1/3]

template<typename T>
requires (std::is_trivially_copyable_v<T>)
void NBT_Hash::Update ( const T & tData)
inline

通过可平凡复制类型更新哈希

模板参数
T可平凡复制类型
参数
tData类型的引用
注解
自动计算类型字节数并更新哈希

◆ Update() [2/3]

template<typename T, size_t N>
requires (std::is_trivially_copyable_v<T>)
void NBT_Hash::Update ( const T(&) tDataArr[N])
inline

通过可平凡复制类型的数组更新哈希

模板参数
T可平凡复制类型
参数
tDataArr可平凡复制类型的数组引用
注解
自动计算数组字节数并更新哈希

◆ Update() [3/3]

void NBT_Hash::Update ( const void * pData,
size_t szSize )
inline

添加指针指向的数据更新哈希

参数
pData数据指针
szSize数据大小(字节)
注解
通过指针访问指定字节数并更新哈希

该类的文档由以下文件生成: