boost::corosio::native_stream_file
A sequential file with devirtualized async I/O operations.
Synopsis
template<auto Backend>
class native_stream_file
: public stream_file
Description
This class template inherits from stream_file and shadows read_some / write_some with versions that call the backend implementation directly, allowing the compiler to inline through the entire call chain.
Non‐async operations (open, close, size, resize, seek, sync_data, sync_all) remain unchanged and dispatch through the compiled library.
A native_stream_file IS‐A stream_file and can be passed to any function expecting stream_file& or io_stream&, in which case virtual dispatch is used transparently.
|
On POSIX platforms, file I/O is dispatched to a thread pool regardless of the chosen reactor backend, so all three reactor tags ( |
Thread Safety
Same as stream_file.
Example
#include <boost/corosio/native/native_stream_file.hpp>
native_io_context<epoll> ctx;
native_stream_file<epoll> f(ctx);
f.open("data.bin", file_base::read_only);
char buf[4096];
auto [ec, n] = co_await f.read_some(
capy::mutable_buffer(buf, sizeof(buf)));
Types
Name |
Description |
RAII wrapper for I/O object implementation lifetime. |
|
Platform‐specific file implementation interface. |
|
Service interface for I/O object lifecycle management. |
Member Functions
Name |
Description |
|
Constructors |
|
Assignment operators |
Adopt an existing native handle. |
|
Cancel pending asynchronous operations. |
|
Close the file. |
|
Return the execution context. |
|
Check if the file is open. |
|
Get the native file descriptor or handle. |
|
Open a file. |
|
Asynchronously read data from the file. |
|
Release ownership of the native handle. |
|
Resize the file to |
|
Move the file position. |
|
Return the file size in bytes. |
|
Synchronize file data and metadata to stable storage. |
|
Synchronize file data to stable storage. |
|
Asynchronously write data to the file. |
Protected Types
Name |
Description |
Awaitable for async read operations. |
|
Awaitable for async write operations. |
Protected Member Functions
Name |
Description |
|
Move assign from another I/O object. |
|
|
|
|
Protected Static Member Functions
Name |
Description |
Create a handle bound to a service found in the context. |
Template Parameters
| Name | Description |
|---|---|
Backend |
A backend tag value (e.g., |
See Also
stream_file, epoll_t, iocp_t
Created with MrDocs