uvw  2.0.0
Public Member Functions | Static Public Member Functions | List of all members
uvw::ProcessHandle Class Referencefinal

The ProcessHandle handle. More...

#include <process.hpp>

Inheritance diagram for uvw::ProcessHandle:
Inheritance graph
[legend]
Collaboration diagram for uvw::ProcessHandle:
Collaboration graph
[legend]

Public Member Functions

bool init ()
 Initializes the handle. More...
 
void spawn (const char *file, char **args, char **env=nullptr)
 spawn Starts the process. More...
 
void kill (int signum)
 Sends the specified signal to the internal process handle. More...
 
int pid () noexcept
 Gets the PID of the spawned process. More...
 
ProcessHandlecwd (std::string path) noexcept
 Sets the current working directory for the subprocess. More...
 
ProcessHandleflags (Flags< Process > flags) noexcept
 Sets flags that control how spawn() behaves. More...
 
template<typename T , typename U >
ProcessHandlestdio (StreamHandle< T, U > &stream, Flags< StdIO > flags)
 Makes a stdio handle available to the child process. More...
 
ProcessHandlestdio (FileHandle fd, Flags< StdIO > flags)
 Makes a file descriptor available to the child process. More...
 
ProcessHandleuid (Uid id)
 Sets the child process' user id. More...
 
ProcessHandlegid (Gid id)
 Sets the child process' group id. More...
 
- Public Member Functions inherited from uvw::Handle< ProcessHandle, uv_process_t >
HandleCategory category () const noexcept override
 Gets the category of the handle. More...
 
HandleType type () const noexcept override
 Gets the type of the handle. More...
 
bool active () const noexcept override
 Checks if the handle is active. More...
 
bool closing () const noexcept override
 Checks if a handle is closing or closed. More...
 
void close () noexcept override
 Request handle to be closed. More...
 
void reference () noexcept override
 Reference the given handle. More...
 
void unreference () noexcept override
 Unreference the given handle. More...
 
bool referenced () const noexcept override
 Checks if the given handle referenced. More...
 
std::size_t size () const noexcept
 Returns the size of the underlying handle type. More...
 
int sendBufferSize ()
 Gets the size of the send buffer used for the socket. More...
 
bool sendBufferSize (int value)
 Sets the size of the send buffer used for the socket. More...
 
int recvBufferSize ()
 Gets the size of the receive buffer used for the socket. More...
 
bool recvBufferSize (int value)
 Sets the size of the receive buffer used for the socket. More...
 
OSFileDescriptor fileno () const
 Gets the platform dependent file descriptor equivalent. More...
 
- Public Member Functions inherited from uvw::UnderlyingType< ProcessHandle, uv_process_t >
Looploop () const noexcept
 Gets the loop from which the resource was originated. More...
 
const uv_process_t * raw () const noexcept
 Gets the underlying raw data structure. More...
 
uv_process_t * raw () noexcept
 Gets the underlying raw data structure. More...
 
- Public Member Functions inherited from uvw::Emitter< ProcessHandle >
Connection< E > on (Listener< E > f)
 Registers a long-lived listener with the event emitter. More...
 
Connection< E > once (Listener< E > f)
 Registers a short-lived listener with the event emitter. More...
 
void erase (Connection< E > conn) noexcept
 Disconnects a listener from the event emitter. More...
 
void clear () noexcept
 Disconnects all the listeners for the given event type.
 
void clear () noexcept
 Disconnects all the listeners.
 
bool empty () const noexcept
 Checks if there are listeners registered for the specific event. More...
 
bool empty () const noexcept
 Checks if there are listeners registered with the event emitter. More...
 

Static Public Member Functions

static void disableStdIOInheritance () noexcept
 Disables inheritance for file descriptors/handles. More...
 
static bool kill (int pid, int signum) noexcept
 kill Sends the specified signal to the given PID. More...
 
- Static Public Member Functions inherited from uvw::UnderlyingType< ProcessHandle, uv_process_t >
static std::shared_ptr< ProcessHandlecreate (Args &&... args)
 Creates a new resource of the given type. More...
 

Detailed Description

The ProcessHandle handle.

Process handles will spawn a new process and allow the user to control it and establish communication channels with it using streams.

Definition at line 67 of file process.hpp.

Member Function Documentation

◆ cwd()

ProcessHandle& uvw::ProcessHandle::cwd ( std::string  path)
inlinenoexcept

Sets the current working directory for the subprocess.

Parameters
pathThe working directory to be used when spawn() is invoked.
Returns
A reference to this process handle.

Definition at line 184 of file process.hpp.

◆ disableStdIOInheritance()

static void uvw::ProcessHandle::disableStdIOInheritance ( )
inlinestaticnoexcept

Disables inheritance for file descriptors/handles.

Disables inheritance for file descriptors/handles that this process inherited from its parent. The effect is that child processes spawned by this process don’t accidentally inherit these handles.
It is recommended to call this function as early in your program as possible, before the inherited file descriptors can be closed or duplicated.

See the official documentation for further details.

Definition at line 95 of file process.hpp.

◆ flags()

ProcessHandle& uvw::ProcessHandle::flags ( Flags< Process >  flags)
inlinenoexcept

Sets flags that control how spawn() behaves.

Available flags are:

  • ProcessHandle::Process::SETUID
  • ProcessHandle::Process::SETGID
  • ProcessHandle::Process::WINDOWS_VERBATIM_ARGUMENTS
  • ProcessHandle::Process::DETACHED
  • ProcessHandle::Process::WINDOWS_HIDE
  • ProcessHandle::Process::WINDOWS_HIDE_CONSOLE
  • ProcessHandle::Process::WINDOWS_HIDE_GUI

See the official documentation for further details.

Parameters
flagsA valid set of flags.
Returns
A reference to this process handle.

Definition at line 209 of file process.hpp.

◆ gid()

ProcessHandle& uvw::ProcessHandle::gid ( Gid  id)
inline

Sets the child process' group id.

Parameters
idA valid group id to be used.
Returns
A reference to this process handle.

Definition at line 308 of file process.hpp.

◆ init()

bool uvw::ProcessHandle::init ( )
inline

Initializes the handle.

Returns
True in case of success, false otherwise.

Definition at line 113 of file process.hpp.

◆ kill() [1/2]

static bool uvw::ProcessHandle::kill ( int  pid,
int  signum 
)
inlinestaticnoexcept

kill Sends the specified signal to the given PID.

Parameters
pidA valid process id.
signumA valid signal identifier.
Returns
True in case of success, false otherwise.

Definition at line 105 of file process.hpp.

◆ kill() [2/2]

void uvw::ProcessHandle::kill ( int  signum)
inline

Sends the specified signal to the internal process handle.

Parameters
signumA valid signal identifier.

Definition at line 164 of file process.hpp.

◆ pid()

int uvw::ProcessHandle::pid ( )
inlinenoexcept

Gets the PID of the spawned process.

It’s set after calling spawn().

Returns
The PID of the spawned process.

Definition at line 175 of file process.hpp.

◆ spawn()

void uvw::ProcessHandle::spawn ( const char *  file,
char **  args,
char **  env = nullptr 
)
inline

spawn Starts the process.

If the process isn't successfully spawned, an ErrorEvent event will be emitted by the handle.

See the official documentation for further details.

Parameters
filePath pointing to the program to be executed.
argsCommand line arguments.
envOptional environment for the new process.

Definition at line 133 of file process.hpp.

◆ stdio() [1/2]

template<typename T , typename U >
ProcessHandle& uvw::ProcessHandle::stdio ( StreamHandle< T, U > &  stream,
Flags< StdIO >  flags 
)
inline

Makes a stdio handle available to the child process.

Available flags are:

  • ProcessHandle::StdIO::IGNORE_STREAM
  • ProcessHandle::StdIO::CREATE_PIPE
  • ProcessHandle::StdIO::INHERIT_FD
  • ProcessHandle::StdIO::INHERIT_STREAM
  • ProcessHandle::StdIO::READABLE_PIPE
  • ProcessHandle::StdIO::WRITABLE_PIPE
  • ProcessHandle::StdIO::OVERLAPPED_PIPE

See the official documentation for further details.

Parameters
streamA valid stdio handle.
flagsA valid set of flags.
Returns
A reference to this process handle.

Definition at line 236 of file process.hpp.

◆ stdio() [2/2]

ProcessHandle& uvw::ProcessHandle::stdio ( FileHandle  fd,
Flags< StdIO >  flags 
)
inline

Makes a file descriptor available to the child process.

Available flags are:

  • ProcessHandle::StdIO::IGNORE_STREAM
  • ProcessHandle::StdIO::CREATE_PIPE
  • ProcessHandle::StdIO::INHERIT_FD
  • ProcessHandle::StdIO::INHERIT_STREAM
  • ProcessHandle::StdIO::READABLE_PIPE
  • ProcessHandle::StdIO::WRITABLE_PIPE
  • ProcessHandle::StdIO::OVERLAPPED_PIPE

Default file descriptors are:

See the official documentation for further details.

Parameters
fdA valid file descriptor.
flagsA valid set of flags.
Returns
A reference to this process handle.

Definition at line 271 of file process.hpp.

◆ uid()

ProcessHandle& uvw::ProcessHandle::uid ( Uid  id)
inline

Sets the child process' user id.

Parameters
idA valid user id to be used.
Returns
A reference to this process handle.

Definition at line 298 of file process.hpp.


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