Buffer#
-
class Buffer#
- Header-file:
#include <datasystem/object/buffer.h>
- Namespace:
datasystem
用于表示共享内存数据的类。
公共函数
-
Buffer()#
默认构造类,创建一个空的 Buffer。
- 返回:
默认
Buffer实例。
-
Buffer &operator=(Buffer &&other) noexcept#
移动赋值运算符。
- 参数:
other - 要移动的
Buffer实例。
- 返回:
移动赋值后的
Buffer实例引用。
-
~Buffer()#
虚析构函数。
-
void *MutableData()#
获取
Buffer可读写的缓存数据指针。- 返回:
可读写的缓存数据指针。
-
const void *ImmutableData()#
获取
Buffer只读的缓存数据指针。- 返回:
只读的缓存数据指针。
-
int64_t GetSize() const#
获取键值对
Buffer的大小。- 返回:
Buffer的数据大小(以字节为单位)。
-
Status WLatch(uint64_t timeoutSec = 60)#
对
Buffer添加写锁。Note
仅在涉及单节点多实例同时访问的场景才需要加锁进行数据保护,否则无需在访问共享内存的数据前对其加锁。
- 参数:
timeoutSec - 添加写锁的超时时间,默认为 60 秒。
- 返回:
返回值状态码为
StatusCode::K_OK时表示加写锁成功,否则返回其他错误码。
-
Status RLatch(uint64_t timeoutSec = 60)#
对
Buffer添加读锁。Note
仅在涉及单节点多实例同时访问的场景才需要加锁进行数据保护,否则无需在访问共享内存的数据前对其加锁。
- 参数:
timeoutSec - 添加读锁的超时时间,默认为 60 秒。
- 返回:
返回值状态码为
StatusCode::K_OK时表示加读锁成功,否则返回其他错误码。
-
Status MemoryCopy(const void *data, uint64_t length)#
将数据拷贝到
Buffer的缓存。该函数具备多线程并行拷贝的能力,同时能拷贝超过 2GB 的连续内存地址。- 参数:
data - 需要拷贝的数据内存地址。
length - 需要拷贝的数据长度。
- 返回:
返回值状态码为
StatusCode::K_OK时表示数据拷贝成功,否则返回其他错误码。
-
Status Publish(const std::unordered_set<std::string> &nestedKeys = {})#
发布可变数据到服务器。
- 参数:
nestedKeys - 嵌套对象的键集合,默认为空集合。
- 返回:
返回值状态码为
StatusCode::K_OK时表示发布成功,否则返回其他错误码。
-
Status Seal(const std::unordered_set<std::string> &nestedKeys = {})#
发布不可变数据到服务器。
- 参数:
nestedKeys - 嵌套对象的键集合,默认为空集合。
- 返回:
返回值状态码为
StatusCode::K_OK时表示发布成功,否则返回其他错误码。
-
RemoteH2DHostInfo *GetRemoteHostInfo()#
获取远程主机信息。
- 返回:
用于 RemoteH2D 目的的远程主机信息指针。