golib  0.5
goProcess Class Reference

Process interface for Unix platforms (so far). More...

#include <goprocess.h>

Public Member Functions

void setInput (int filedesc)
 
void setOutput (int filedesc)
 
int run (const char *filename, const char *arg)
 Calls a program by filename. More...
 
int run (const char *filename, char *const argv[])
 Runs a program by filename. More...
 
int run (const char *filename, const goFixedArray< goString > &argv)
 Runs a program by filename. More...
 
void wait ()
 Waits until the child returns. More...
 
void kill ()
 Kills the child using SIGKILL. More...
 
void suspend ()
 Suspends the child process. More...
 
void resume ()
 Resumes the suspended child process.
 
- Public Member Functions inherited from goObjectBase
 goObjectBase ()
 Constructor.
 
virtual ~goObjectBase ()
 Destructor. More...
 
const char * getClassName () const
 Returns the class name. More...
 
int getClassID () const
 
virtual goSize_t memoryUsage () const
 Returns the size of this object or some measure of its memory consumption. More...
 
void setObjectName (const char *name)
 Set name string for an object. More...
 
void setObjectName (const goString &name)
 Set name string for an object. More...
 
const goStringgetObjectName () const
 Get the object name. More...
 
virtual bool writeObjectFile (FILE *) const
 Write object to a file. More...
 
virtual bool readObjectFile (FILE *)
 Read object from a file. More...
 
void connectObject (goObjectBase *object)
 Connects an object to this object. More...
 
void disconnectObject (const goObjectBase *object)
 Disconnects an object from this object.
 
virtual bool callObjectMethod (int methodID, goObjectMethodParameters *param=NULL)
 Call an object method by identifier. More...
 
virtual bool queueObjectMethod (int methodID, goObjectMethodParameters *param=NULL, bool blocking=false)
 Enqueue a method call to an internal list of methods. More...
 
bool callQueuedMethods ()
 Call all queued methods. More...
 

Protected Member Functions

void redirectIO ()
 
void deleteTemp ()
 
- Protected Member Functions inherited from goObjectBase
void setClassID (int id)
 Sets the class name.
 
void printClassMessage (const char *msg)
 Sets the class name. More...
 
void printClassMessage (goString &msg)
 Prints an informational message to the calling console. More...
 
void sendObjectMessage (int messageID, void *data=NULL)
 Sends a message to all connected objects.
 
void sendObjectMessage (goObjectBase *object, int messageID, void *data=NULL)
 Sends a message to a specific object.
 
virtual void receiveObjectMessage (const goObjectMessage &message)
 Receive a message. More...
 

Protected Attributes

bool running
 
int pid
 
int inputFD
 
int outputFD
 

Detailed Description

Process interface for Unix platforms (so far).

The OS has to provide the necessary exec* functions and a fork() function. I recommend using the run ( ..., goArray<goString* >& argv) member for starting the child process. In this case, only the real parameters have to be provided by the user. When using the run(const char* filename, char *const argv[]) member, the user has to provide argv[0] as the programname (as usual) and the array has to be ended by a NULL pointer.

Todo:
If needed, add Windoze support.
Author
Christian Gosch

Member Function Documentation

◆ kill()

void goProcess::kill ( )

Kills the child using SIGKILL.

Ends the child process by sending a SIGKILL signal.

◆ run() [1/3]

int goProcess::run ( const char *  filename,
char *const  argv[] 
)

Runs a program by filename.

Parameters
filenameFilename of the program.
argvArray of arguments for the program.
Returns
The PID of the new process.

◆ run() [2/3]

int goProcess::run ( const char *  filename,
const char *  arg 
)

Calls a program by filename.

Parameters
filenameFilename of the program.
argArgument string for the program.
Returns
The PID of the new process.

◆ run() [3/3]

int goProcess::run ( const char *  filename_,
const goFixedArray< goString > &  argv_ 
)

Runs a program by filename.

Parameters
filenameFilename of the program.
argvgoArray of string pointers to the arguments.
Returns
The PID of the new process.

◆ suspend()

void goProcess::suspend ( )

Suspends the child process.

Resume it with the resume() method.

◆ wait()

void goProcess::wait ( )

Waits until the child returns.

Waits for the process to return.


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