SDL3pp
A slim C++ wrapper for SDL3
Loading...
Searching...
No Matches
SDL::ProcessBase Struct Reference

Base class to Process. More...

Inheritance diagram for SDL::ProcessBase:
[legend]

Public Member Functions

void Destroy ()
 Destroy a previously created process object.
PropertiesRef GetProperties () const
 Get the properties associated with a process.
StringResult Read (int *exitcode=nullptr)
 Read all the output from a process.
template<class T>
OwnArray< T > ReadAs (int *exitcode=nullptr)
 Read all the output from a process.
IOStreamRef GetInput ()
 Get the IOStream associated with process standard input.
IOStreamRef GetOutput ()
 Get the IOStream associated with process standard output.
void Kill (bool force)
 Stop a process.
bool Wait (bool block, int *exitcode)
 Wait for a process to finish.
constexpr ResourceBaseT ()=default
 Default constructor, creates null/invalid resource.
constexpr ResourceBaseT (RawPointer resource)
 Constructs from resource pointer.
constexpr ResourceBaseT (std::nullptr_t)
 Constructs null/invalid.
constexpr ResourceBaseT (const ResourceBaseT &)=default
 Copy constructor.
constexpr ResourceBaseT (ResourceBaseT &&) noexcept=default
 Move constructor.
Public Member Functions inherited from SDL::ResourceBaseT< ProcessRaw >
constexpr ResourceBaseT ()=default
 Default constructor, creates null/invalid resource.
constexpr operator bool () const
 Converts to bool.
constexpr auto operator<=> (const ResourceBaseT &other) const=default
 Comparison.
constexpr RawConstPointer operator-> () const noexcept
 member access to underlying resource pointer.
constexpr RawPointer get () const noexcept
 Retrieves underlying resource pointer.
constexpr RawPointer release () noexcept
 Retrieves underlying resource pointer and clear this.

Additional Inherited Members

Public Types inherited from SDL::ResourceBaseT< ProcessRaw >
using RawPointer
 The underlying raw pointer type.
using RawConstPointer
 The underlying const raw pointer type.
Protected Member Functions inherited from SDL::ResourceBaseT< ProcessRaw >
constexpr ~ResourceBaseT ()=default
 Destructor.
constexpr ResourceBaseToperator= (const ResourceBaseT &)=default
 Assignment operator.

Detailed Description

Base class to Process.

See also
Process

Member Function Documentation

◆ ReadAs()

template<class T>
OwnArray< T > SDL::ProcessBase::ReadAs ( int * exitcode = nullptr)
inline

Read all the output from a process.

If a process was created with I/O enabled, you can use this function to read the output. This function blocks until the process is complete, capturing all output, and providing the process exit code.

The data is allocated with a zero byte at the end (null terminated) for convenience. This extra byte is not included in the value reported via datasize.

The data should be freed with free().

Parameters
exitcodea pointer filled in with the process exit code if the process has exited, may be nullptr.
Returns
the data or nullptr on failure; call GetError() for more information.
Thread safety:
This function is not thread safe.
Since
This function is available since SDL 3.2.0.
See also
ProcessRef.Create

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