远程文件的句柄。 更多...
#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。