远程文件的句柄。 更多...
#include <remote_handle.hpp>
公共成员函数 | |
RemoteHandle (std::unique_ptr< RemoteEndpoint > endpoint, std::size_t nbytes) | |
从端点和文件大小创建一个新的远程句柄。 更多... | |
RemoteHandle (std::unique_ptr< RemoteEndpoint > endpoint) | |
从端点创建一个新的远程句柄(推断文件大小)。 更多... | |
RemoteHandle (RemoteHandle &&o)=default | |
RemoteHandle & | operator= (RemoteHandle &&o)=default |
RemoteHandle (RemoteHandle const &)=delete | |
RemoteHandle & | operator= (RemoteHandle const &)=delete |
std::size_t | nbytes () const noexcept |
获取文件大小。 更多... | |
RemoteEndpoint const & | endpoint () const noexcept |
获取底层远程端点的 const 引用。 更多... | |
std::size_t | read (void *buf, std::size_t size, std::size_t file_offset=0) |
从远程源读取到缓冲区(主机或设备内存)。 更多... | |
std::future< std::size_t > | pread (void *buf, std::size_t size, std::size_t file_offset=0, std::size_t task_size=defaults::task_size()) |
并行地从远程源读取到缓冲区(主机或设备内存)。 更多... | |
远程文件的句柄。
定义于文件 remote_handle.hpp 的 193 行。
kvikio::RemoteHandle::RemoteHandle | ( | std::unique_ptr< RemoteEndpoint > | endpoint, |
std::size_t | nbytes | ||
) |
从端点和文件大小创建一个新的远程句柄。
endpoint | 用于后续 IO 的远程端点。 |
nbytes | 远程文件的大小(以字节为单位)。 |
kvikio::RemoteHandle::RemoteHandle | ( | std::unique_ptr< RemoteEndpoint > | endpoint | ) |
从端点创建一个新的远程句柄(推断文件大小)。
文件大小是使用 endpoint
从远程服务器接收的。
endpoint | 用于后续 IO 的远程端点。 |
|
noexcept |
获取底层远程端点的 const 引用。
|
noexcept |
获取文件大小。
注意,这非常快,无需通信。
std::future<std::size_t> kvikio::RemoteHandle::pread | ( | void * | buf, |
std::size_t | size, | ||
std::size_t | file_offset = 0 , |
||
std::size_t | task_size = defaults::task_size() |
||
) |
并行地从远程源读取到缓冲区(主机或设备内存)。
此 API 是 .read()
的并行异步版本,它将操作划分为大小为 task_size
的任务,以便在默认线程池中执行。
buf | 指向主机或设备内存的指针。 |
size | 要读取的字节数。 |
file_offset | 文件偏移量(以字节为单位)。 |
task_size | 每个任务的大小(以字节为单位)。 |
size
。std::size_t kvikio::RemoteHandle::read | ( | void * | buf, |
std::size_t | size, | ||
std::size_t | file_offset = 0 |
||
) |
从远程源读取到缓冲区(主机或设备内存)。
当读取到设备内存时,会使用一个跳板缓冲区(bounce buffer)来避免许多小的内存复制到设备。使用 kvikio::default::bounce_buffer_size_reset()
来设置此跳板缓冲区的大小(默认为 16 MiB)。
buf | 指向主机或设备内存的指针。 |
size | 要读取的字节数。 |
file_offset | 文件偏移量(以字节为单位)。 |
size
。