SDL3pp
A slim C++ wrapper for SDL3
Loading...
Searching...
No Matches
Public Member Functions | List of all members
SDL::AsyncIO Class Reference

The asynchronous I/O operation structure. More...

Inheritance diagram for SDL::AsyncIO:
Inheritance graph
[legend]

Public Member Functions

constexpr AsyncIO ()=default
 Default ctor.
 
constexpr AsyncIO (const AsyncIORaw resource)
 Constructs from AsyncIOParam. More...
 
constexpr AsyncIO (const AsyncIO &other)=delete
 Copy constructor.
 
constexpr AsyncIO (AsyncIO &&other)
 Move constructor.
 
constexpr AsyncIO (const AsyncIORef &other)=delete
 
constexpr AsyncIO (AsyncIORef &&other)=delete
 
 AsyncIO (StringParam file, StringParam mode)
 Use this function to create a new AsyncIO object for reading from and/or writing to a named file. More...
 
 ~AsyncIO ()
 Destructor.
 
AsyncIOoperator= (AsyncIO other)
 Assignment operator.
 
constexpr AsyncIORaw get () const
 Retrieves underlying AsyncIORaw.
 
constexpr AsyncIORaw release ()
 Retrieves underlying AsyncIORaw and clear this.
 
constexpr auto operator<=> (const AsyncIO &other) const =default
 Comparison.
 
constexpr bool operator== (std::nullptr_t _) const
 Comparison.
 
constexpr operator bool () const
 Converts to bool.
 
constexpr operator AsyncIOParam () const
 Converts to AsyncIOParam.
 
bool Close (bool flush, AsyncIOQueueParam queue, void *userdata)
 Close and free any allocated resources for an async I/O object. More...
 
Sint64 GetSize ()
 Use this function to get the size of the data stream in an AsyncIO. More...
 
void Read (void *ptr, Uint64 offset, Uint64 size, AsyncIOQueueParam queue, void *userdata)
 Start an async read. More...
 
void Write (void *ptr, Uint64 offset, Uint64 size, AsyncIOQueueParam queue, void *userdata)
 Start an async write. More...
 

Detailed Description

This operates as an opaque handle. One can then request read or write operations on it.

Since
This struct is available since SDL 3.2.0.
See also
AsyncIO.AsyncIO
Category:
Resource

Constructor & Destructor Documentation

◆ AsyncIO() [1/2]

constexpr SDL::AsyncIO::AsyncIO ( const AsyncIORaw  resource)
inlineexplicitconstexpr
Parameters
resourcea AsyncIORaw to be wrapped.

This assumes the ownership, call release() if you need to take back.

◆ AsyncIO() [2/2]

SDL::AsyncIO::AsyncIO ( StringParam  file,
StringParam  mode 
)
inline

The mode string understands the following values:

  • "r": Open a file for reading only. It must exist.
  • "w": Open a file for writing only. It will create missing files or truncate existing ones.
  • "r+": Open a file for update both reading and writing. The file must exist.
  • "w+": Create an empty file for both reading and writing. If a file with the same name already exists its content is erased and the file is treated as a new empty file.

There is no "b" mode, as there is only "binary" style I/O, and no "a" mode for appending, since you specify the position when starting a task.

This function supports Unicode filenames, but they must be encoded in UTF-8 format, regardless of the underlying operating system.

This call is not asynchronous; it will open the file before returning, under the assumption that doing so is generally a fast operation. Future reads and writes to the opened file will be async, however.

Parameters
filea UTF-8 string representing the filename to open.
modean ASCII string representing the mode to be used for opening the file.
Postcondition
a pointer to the AsyncIO structure that is created or nullptr on failure; call GetError() for more information.
Since
This function is available since SDL 3.2.0.
See also
AsyncIO.Close
AsyncIO.Read
AsyncIO.Write

The documentation for this class was generated from the following file: