WPILibC++  2018.4.1-20180820040250-1165-g0b8f4b5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
wpi::uv::Process Class Referencefinal

Process handle. More...

#include <Process.h>

Inheritance diagram for wpi::uv::Process:
wpi::uv::HandleImpl< Process, uv_process_t > wpi::uv::Handle

Public Member Functions

 Process (const private_init &)
 
void Kill (int signum)
 Sends the specified signal to the process. More...
 
uv_pid_t GetPid () const noexcept
 Get the process ID. More...
 
- Public Member Functions inherited from wpi::uv::HandleImpl< Process, uv_process_t >
std::shared_ptr< Processshared_from_this ()
 
std::shared_ptr< const Processshared_from_this () const
 
uv_process_tGetRaw () const noexcept
 Get the underlying handle data structure. More...
 
- Public Member Functions inherited from wpi::uv::Handle
 Handle (const Handle &)=delete
 
 Handle (Handle &&)=delete
 
Handleoperator= (const Handle &)=delete
 
Handleoperator= (Handle &&)=delete
 
Type GetType () const noexcept
 Get the type of the handle. More...
 
StringRef GetTypeName () const noexcept
 Get the name of the type of the handle. More...
 
std::shared_ptr< LoopGetLoop () const noexcept
 Get the loop where this handle runs. More...
 
LoopGetLoopRef () const noexcept
 Get the loop where this handle runs. More...
 
bool IsActive () const noexcept
 Check if the handle is active. More...
 
bool IsClosing () const noexcept
 Check if a handle is closing or closed. More...
 
void Close () noexcept
 Request handle to be closed. More...
 
void Reference () noexcept
 Reference the given handle. More...
 
void Unreference () noexcept
 Unreference the given handle. More...
 
bool HasReference () const noexcept
 Check if the given handle is referenced. More...
 
size_t RawSize () const noexcept
 Return the size of the underlying handle type. More...
 
uv_handle_tGetRawHandle () const noexcept
 Get the underlying handle data structure. More...
 
void SetBufferAllocator (std::function< Buffer(size_t)> alloc, std::function< void(Buffer &)> dealloc)
 Set the functions used for allocating and releasing buffers. More...
 
void FreeBuf (Buffer &buf) const noexcept
 Free a buffer. More...
 
template<typename T = void>
std::shared_ptr< T > GetData () const
 Gets user-defined data. More...
 
void SetData (std::shared_ptr< void > data)
 Sets user-defined data. More...
 
void ReportError (int err)
 Report an error. More...
 

Static Public Member Functions

static void DisableStdioInheritance ()
 Disables inheritance for file descriptors / handles that this process inherited from its parent. More...
 
static std::shared_ptr< ProcessSpawn (Loop &loop, const Twine &file, char **args, const ProcessOptions &options=ProcessOptions{})
 Starts a process. More...
 
static std::shared_ptr< ProcessSpawn (const std::shared_ptr< Loop > &loop, const Twine &file, char **args, const ProcessOptions &options=ProcessOptions{})
 Starts a process. More...
 
static int Kill (int pid, int signum) noexcept
 Sends the specified signal to the given PID. More...
 

Public Attributes

sig::Signal< int64_t, int > exited
 Signal generated when the process exits. More...
 
- Public Attributes inherited from wpi::uv::Handle
sig::Signal< Errorerror
 Error signal.
 
sig::Signal closed
 Closed signal.
 

Additional Inherited Members

- Public Types inherited from wpi::uv::Handle
using Type = uv_handle_type
 
- Protected Member Functions inherited from wpi::uv::Handle
 Handle (uv_handle_t *uv_handle)
 
void Keep () noexcept
 
void Release () noexcept
 
template<typename F , typename... Args>
bool Invoke (F &&f, Args &&...args)
 
- Static Protected Member Functions inherited from wpi::uv::Handle
static void AllocBuf (uv_handle_t *handle, size_t size, uv_buf_t *buf)
 
static void DefaultFreeBuf (Buffer &buf)
 

Detailed Description

Process handle.

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

Member Function Documentation

static void wpi::uv::Process::DisableStdioInheritance ( )
inlinestatic

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.

uv_pid_t wpi::uv::Process::GetPid ( ) const
inlinenoexcept

Get the process ID.

Returns
Process ID.
void wpi::uv::Process::Kill ( int  signum)
inline

Sends the specified signal to the process.

Parameters
signumsignal number
static int wpi::uv::Process::Kill ( int  pid,
int  signum 
)
inlinestaticnoexcept

Sends the specified signal to the given PID.

Parameters
pidprocess ID
signumsignal number
Returns
0 on success, otherwise error code.
static std::shared_ptr<Process> wpi::uv::Process::Spawn ( Loop loop,
const Twine file,
char **  args,
const ProcessOptions options = ProcessOptions{} 
)
static

Starts a process.

If the process is not successfully spawned, an error is generated on the loop and this function returns nullptr.

Possible reasons for failing to spawn would include (but not be limited to) the file to execute not existing, not having permissions to use the setuid or setgid specified, or not having enough memory to allocate for the new process.

Parameters
loopLoop object where this handle runs.
filePath pointing to the program to be executed
argsCommand line arguments
optionsProcess options
static std::shared_ptr<Process> wpi::uv::Process::Spawn ( const std::shared_ptr< Loop > &  loop,
const Twine file,
char **  args,
const ProcessOptions options = ProcessOptions{} 
)
inlinestatic

Starts a process.

If the process is not successfully spawned, an error is generated on the loop and this function returns nullptr.

Possible reasons for failing to spawn would include (but not be limited to) the file to execute not existing, not having permissions to use the setuid or setgid specified, or not having enough memory to allocate for the new process.

Parameters
loopLoop object where this handle runs.
filePath pointing to the program to be executed
argsCommand line arguments
optionsProcess options

Member Data Documentation

sig::Signal<int64_t, int> wpi::uv::Process::exited

Signal generated when the process exits.

The parameters are the exit status and the signal that caused the process to terminate, if any.


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