JX Application Framework
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
JProcess Class Reference

#include <JProcess.h>

Inheritance diagram for JProcess:
[legend]

Classes

class  Finished
 

Public Member Functions

 JProcess (const pid_t pid)
 
 ~JProcess () override
 
pid_t GetPID () const
 
JError GetPGID (pid_t *pgid) const
 
void Quit ()
 
void Kill ()
 
void WaitUntilFinished ()
 
bool IsFinished () const
 
bool SuccessfulFinish () const
 
bool GetFinishReason (JChildExitReason *reason, int *result) const
 
bool GetReturnValue (int *result) const
 
bool GetTermSignal (int *result) const
 
bool GetStopSignal (int *result) const
 
JError SendSignal (const int signal)
 
JError SendSignalToGroup (const int signal)
 
JError SetPriority (const int priority)
 
bool WillDeleteWhenFinished () const
 
void ShouldDeleteWhenFinished (const bool deleteObj=true)
 
bool WillQuitAtExit () const
 
void QuitAtExit (const bool quit=true)
 
bool WillKillAtExit () const
 
void KillAtExit (const bool kill=true)
 
- Public Member Functions inherited from JBroadcaster
 JBroadcaster ()
 
virtual ~JBroadcaster ()
 
JBroadcasteroperator= (const JBroadcaster &source)
 
bool HasSenders () const
 
JSize GetSenderCount () const
 
bool HasRecipients () const
 
JSize GetRecipientCount () const
 
virtual JString ToString () const
 
template<class T >
void ListenTo (const JBroadcaster *sender, const std::function< void(const T &)> &f)
 

Static Public Member Functions

static JError Create (JProcess **process, const JString &str, const JExecuteAction toAction=kJIgnoreConnection, int *toFD=nullptr, const JExecuteAction fromAction=kJIgnoreConnection, int *fromFD=nullptr, const JExecuteAction errAction=kJIgnoreConnection, int *errFD=nullptr)
 
static JError Create (JProcess **process, const JPtrArray< JString > &argList, const JExecuteAction toAction=kJIgnoreConnection, int *toFD=nullptr, const JExecuteAction fromAction=kJIgnoreConnection, int *fromFD=nullptr, const JExecuteAction errAction=kJIgnoreConnection, int *errFD=nullptr)
 
static JError Create (JProcess **process, const JUtf8Byte *argv[], const JSize size, const JExecuteAction toAction=kJIgnoreConnection, int *toFD=nullptr, const JExecuteAction fromAction=kJIgnoreConnection, int *fromFD=nullptr, const JExecuteAction errAction=kJIgnoreConnection, int *errFD=nullptr)
 
static JError Create (JProcess **process, const JString &workingDirectory, const JString &str, const JExecuteAction toAction=kJIgnoreConnection, int *toFD=nullptr, const JExecuteAction fromAction=kJIgnoreConnection, int *fromFD=nullptr, const JExecuteAction errAction=kJIgnoreConnection, int *errFD=nullptr)
 
static JError Create (JProcess **process, const JString &workingDirectory, const JPtrArray< JString > &argList, const JExecuteAction toAction=kJIgnoreConnection, int *toFD=nullptr, const JExecuteAction fromAction=kJIgnoreConnection, int *fromFD=nullptr, const JExecuteAction errAction=kJIgnoreConnection, int *errFD=nullptr)
 
static JError Create (JProcess **process, const JString &workingDirectory, const JUtf8Byte *argv[], const JSize size, const JExecuteAction toAction=kJIgnoreConnection, int *toFD=nullptr, const JExecuteAction fromAction=kJIgnoreConnection, int *fromFD=nullptr, const JExecuteAction errAction=kJIgnoreConnection, int *errFD=nullptr)
 
static void CheckForFinishedChild (const bool block)
 

Static Public Attributes

static const JUtf8BytekFinished = "Finished::JProcess"
 

Additional Inherited Members

- Protected Member Functions inherited from JBroadcaster
 JBroadcaster (const JBroadcaster &source)
 
void ListenTo (const JBroadcaster *sender)
 
void StopListening (const JBroadcaster *sender)
 
void ClearWhenGoingAway (const JBroadcaster *sender, void *pointerToMember)
 
void StopListening (const JBroadcaster *sender, const std::type_info &messageType)
 
template<class T >
void Send (JBroadcaster *recipient, const T &message)
 
template<class T >
void Broadcast (const T &message)
 
virtual void Receive (JBroadcaster *sender, const Message &message)
 
void SendWithFeedback (JBroadcaster *recipient, Message *message)
 
void BroadcastWithFeedback (Message *message)
 
virtual void ReceiveWithFeedback (JBroadcaster *sender, Message *message)
 
virtual void ReceiveGoingAway (JBroadcaster *sender)
 

Detailed Description

Class to represent a UNIX process.

Event loops can call CheckForFinishedChild(false) in order to
receive JBroadcaster messages when child processes finish.

Constructor & Destructor Documentation

◆ JProcess()

JProcess::JProcess ( const pid_t  pid)

◆ ~JProcess()

JProcess::~JProcess ( )
override

Member Function Documentation

◆ CheckForFinishedChild()

void JProcess::CheckForFinishedChild ( const bool  block)
static

Checks if a child has finished. If one has, an a JProcess object exists for it, then tell it to Broadcast().

◆ Create() [1/6]

JError JProcess::Create ( JProcess **  process,
const JPtrArray< JString > &  argList,
const JExecuteAction  toAction = kJIgnoreConnection,
int *  toFD = nullptr,
const JExecuteAction  fromAction = kJIgnoreConnection,
int *  fromFD = nullptr,
const JExecuteAction  errAction = kJIgnoreConnection,
int *  errFD = nullptr 
)
static

◆ Create() [2/6]

JError JProcess::Create ( JProcess **  process,
const JString cmdStr,
const JExecuteAction  toAction = kJIgnoreConnection,
int *  toFD = nullptr,
const JExecuteAction  fromAction = kJIgnoreConnection,
int *  fromFD = nullptr,
const JExecuteAction  errAction = kJIgnoreConnection,
int *  errFD = nullptr 
)
static

Refer to JExecute() for documentation.

◆ Create() [3/6]

JError JProcess::Create ( JProcess **  process,
const JString workingDirectory,
const JPtrArray< JString > &  argList,
const JExecuteAction  toAction = kJIgnoreConnection,
int *  toFD = nullptr,
const JExecuteAction  fromAction = kJIgnoreConnection,
int *  fromFD = nullptr,
const JExecuteAction  errAction = kJIgnoreConnection,
int *  errFD = nullptr 
)
static

◆ Create() [4/6]

JError JProcess::Create ( JProcess **  process,
const JString workingDirectory,
const JString str,
const JExecuteAction  toAction = kJIgnoreConnection,
int *  toFD = nullptr,
const JExecuteAction  fromAction = kJIgnoreConnection,
int *  fromFD = nullptr,
const JExecuteAction  errAction = kJIgnoreConnection,
int *  errFD = nullptr 
)
static

◆ Create() [5/6]

JError JProcess::Create ( JProcess **  process,
const JString workingDirectory,
const JUtf8Byte argv[],
const JSize  size,
const JExecuteAction  toAction = kJIgnoreConnection,
int *  toFD = nullptr,
const JExecuteAction  fromAction = kJIgnoreConnection,
int *  fromFD = nullptr,
const JExecuteAction  errAction = kJIgnoreConnection,
int *  errFD = nullptr 
)
static

◆ Create() [6/6]

JError JProcess::Create ( JProcess **  process,
const JUtf8Byte argv[],
const JSize  size,
const JExecuteAction  toAction = kJIgnoreConnection,
int *  toFD = nullptr,
const JExecuteAction  fromAction = kJIgnoreConnection,
int *  fromFD = nullptr,
const JExecuteAction  errAction = kJIgnoreConnection,
int *  errFD = nullptr 
)
static

◆ GetFinishReason()

bool JProcess::GetFinishReason ( JChildExitReason reason,
int *  result 
) const
inline

◆ GetPGID()

JError JProcess::GetPGID ( pid_t *  pgid) const
inline

◆ GetPID()

pid_t JProcess::GetPID ( ) const
inline

◆ GetReturnValue()

bool JProcess::GetReturnValue ( int *  result) const
inline

◆ GetStopSignal()

bool JProcess::GetStopSignal ( int *  result) const
inline

◆ GetTermSignal()

bool JProcess::GetTermSignal ( int *  result) const
inline

◆ IsFinished()

bool JProcess::IsFinished ( ) const
inline

◆ Kill()

void JProcess::Kill ( )
inline

◆ KillAtExit()

void JProcess::KillAtExit ( const bool  kill = true)

◆ Quit()

void JProcess::Quit ( )
inline

◆ QuitAtExit()

void JProcess::QuitAtExit ( const bool  quit = true)

◆ SendSignal()

JError JProcess::SendSignal ( const int  signal)
inline

◆ SendSignalToGroup()

JError JProcess::SendSignalToGroup ( const int  signal)

◆ SetPriority()

JError JProcess::SetPriority ( const int  priority)
inline

◆ ShouldDeleteWhenFinished()

void JProcess::ShouldDeleteWhenFinished ( const bool  deleteObj = true)
inline

◆ SuccessfulFinish()

bool JProcess::SuccessfulFinish ( ) const
inline

◆ WaitUntilFinished()

void JProcess::WaitUntilFinished ( )

Block until the child finishes.

◆ WillDeleteWhenFinished()

bool JProcess::WillDeleteWhenFinished ( ) const
inline

◆ WillKillAtExit()

bool JProcess::WillKillAtExit ( ) const

◆ WillQuitAtExit()

bool JProcess::WillQuitAtExit ( ) const

Member Data Documentation

◆ kFinished

const JUtf8Byte * JProcess::kFinished = "Finished::JProcess"
static

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