|
Developer Documentation |
|
Centre for Vision, Speech & Signal Processing |
|
PUBLIC |
ChildProcessBodyC::ChildProcessBodyC(void)
ChildProcessBodyC::ChildProcessBodyC(StringC,BooleanT,BooleanT,BooleanT)
ChildProcessBodyC::ChildProcessBodyC(StringC,FilenameC,BooleanT,BooleanT)
ChildProcessBodyC::ChildProcessBodyC(StringListC)
ChildProcessBodyC::Run(StringListC,BooleanT,BooleanT,BooleanT)
ChildProcessBodyC::Run(StringListC,FilenameC,BooleanT,BooleanT)
ChildProcessBodyC::StdOut(void)
ChildProcessBodyC::StdErr(void)
ChildProcessBodyC::StdIn(void)
ChildProcessBodyC::GetPID(void) const
ChildProcessBodyC::IsRunning(void)
ChildProcessBodyC::ExitedOk(void)
ChildProcessBodyC::Wait(void)
ChildProcessBodyC::Wait(double)
ChildProcessBodyC::ExitCode(void) const
ChildProcessBodyC::Terminate(double)
ChildProcessBodyC::GotExitCode(int)
ChildProcessBodyC::Exec(StringListC,int,int,int)
ChildProcessBodyC::SetupPipe(IStreamC &)
ChildProcessBodyC::SetupPipe(OStreamC &)
ChildProcessBodyC::CheckExit(BooleanT)
ProcessBodyC::Signal(IntT)
ProcessBodyC::Kill(BooleanT)
ProcessBodyC::SigStop(void)
ProcessBodyC::SigContinue(void)
ProcessBodyC::Pid(void) const
ProcessBodyC::Owner(void)
ProcessBodyC::Hash(void) const
ProcessBodyC::MemorySize(void)
ProcessBodyC::ProcFile(void)
BodyRefCounterVC::Copy(void) const
BodyRefCounterVC::operator==(const BodyRefCounterVC &) const
BodyRefCounterVC::operator!=(const BodyRefCounterVC &) const
BodyRefCounterVC::Save(ostream &) const
BodyRefCounterC::AddReference(void)
BodyRefCounterC::RemoveReference(void)
BodyRefCounterC::SetConst(void) const
BodyRefCounterC::SetConst(void)
BodyRefCounterC::IsConst(void) const
BodyRefCounterC::IsNotConst(void) const
BodyRefCounterC::ToBeDeleted(void) const
BodyRefCounterC::ToBeDeletedRemoveIgnoreNoRemove(void)
BodyRefCounterC::ToBeDeletedRemove(void)
BodyRefCounterC::BodyMightBeDeleted(void) const
BodyRefCounterC::IsCountZero(void) const
BodyRefCounterC::BRCPtrCanDeleteObject(void) const
BodyRefCounterC::Count(void) const
BodyRefCounterC::operator=(const BodyRefCounterC &)
BodyRefCounterC::IsValidObject(void) const
BodyRefCounterC::UserBitTest(IntT) const
BodyRefCounterC::UserBitSet(IntT,BooleanT)
BodyRefCounterC::UserBitZero(IntT)
BodyRefCounterC::ReportBRCError(char *)
BodyRefCounterC::Hash(void) const
BodyRefCounterC::SetUndeletable(void)
BodyRefCounterC::ReportInvalidObject(char *) const
RefCounterBaseC::Label(void) const
|
Comments:
This class forks off a child process.
Parent Classes:
Variables:
- IStreamC pstdout;
-
- IStreamC pstderr;
-
- OStreamC pstdin;
-
- BooleanT running;
-
Child process process running last time we looked ?
- BooleanT exitok;
-
Did child exit normally ?
- int exitcode;
-
Methods:
- ChildProcessBodyC()
-
Default constructor.
- ChildProcessBodyC(StringC args,BooleanT useStdOut = FALSE,BooleanT useStdErr = FALSE,BooleanT useStdIn = FALSE)
-
Start a child process.
- ChildProcessBodyC(StringC args,FilenameC out,BooleanT redirectStderr = FALSE,BooleanT useStdIn = FALSE)
-
Start a child process.
- ChildProcessBodyC(StringListC args)
-
Start a child process.
where the first arg is the name of the program to run.
- BooleanT Run(StringListC args,BooleanT useStdOut = FALSE,BooleanT useStdErr = FALSE,BooleanT useStdIn = FALSE)
-
Run child process.
where the first arg is the name of the program to run.
Will return FALSE if failed, or if child is already
running.
NB. If StdErr or StdOut are FALSE, the output will go to
StdErr or StdOut of this process.
- BooleanT Run(StringListC args,FilenameC out,BooleanT redirectStderr = FALSE,BooleanT useStdIn = FALSE)
-
Run, sending output to a file.
- IStreamC & StdOut()
-
Get the stdout of the process.
Is invalid, if output is not directed back to this process.
- IStreamC & StdErr()
-
Get the stderr of the process.
Is invalid, if output is not directed back to this process.
- OStreamC & StdIn()
-
Send to the stdin of the process.
Is invalid, if output is not directed back to this process.
- int GetPID() const
-
Get the process ID.
- BooleanT IsRunning()
-
Test if child is still running.
- BooleanT ExitedOk()
-
Test eixted ok flag.
only valid if child has actual exited cleanly
as apposed to a seg fault or signal.
- BooleanT Wait()
-
Wait for program to exit.
This function will not return until the program has
exited.
- BooleanT Wait(double maxTime)
-
Wait for program to exit.
maxTime in the maximum time in seconds,
if it is negative it won't time out.
- IntT ExitCode() const
-
Get exit code.
Return the exit code of the program, if the program
failed to exit normal this is set to the signal number
which ended the program. This variable is only valid if
program has exited.
- BooleanT Terminate(double maxTime = 10)
-
Terminate a process politely.
- BooleanT GotExitCode(int code)
-
Call if you get the exit code from ProcessC::WaitForChild()
Returns TRUE as ExitedOk().
- BooleanT Exec(StringListC args,int infd,int outfd,int errfd)
-
Execute a program.
if infd,outfd or errfd are negative there not changed.
otherwise they are used by the child process as
standard input, output and error.
- int SetupPipe(IStreamC & strm)
-
Setup input stream.
Connect strm to one end, and return a file descriptor
for the other.
If failed returns -1.
- int SetupPipe(OStreamC & strm)
-
Setup output stream.
Connect strm to one end, and return a file descriptor
for the other.
If failed returns -1.
- BooleanT CheckExit(BooleanT block = FALSE)
-
Check exit status of child.
Returns TRUE if child has exited, and FALSE if
is still running or was never run.
- BooleanT Signal(IntT signo)
-
Send a signal to the process.
- BooleanT Kill(BooleanT hard = FALSE)
-
Kill the child process.
If hard is FALSE, a SIGQUIT is sent.(This can be intercepted by the
process) Otherwise a SIGKILL is sent.
- BooleanT SigStop()
-
Stop this process. (Like Ctrl-z)
- BooleanT SigContinue()
-
Continue this process.
Restart the this process after a stop.
- int Pid() const
-
Get process id.
- UserInfoC Owner()
-
Find the owner of the process.
- UIntT Hash() const
-
Hash on pid.
- UIntT MemorySize()
-
Get the amount of memory this process is using.
Returns 0 if failed. 1 if special
Will return ((UIntT) -1) if process size is bigger than 4Gb.
- FilenameC ProcFile()
-
Generate filename for entry in /proc/
- BodyRefCounterVC & Copy() const
-
Creat a copy of this object.
- BooleanT operator==(const BodyRefCounterVC & oth) const
-
Compair identitys.
- BooleanT operator!=(const BodyRefCounterVC & oth) const
-
Compair identitys.
- BooleanT Save(ostream & out) const
-
Save to ostream.
- void AddReference()
-
Another reference to the object has been created.
- void RemoveReference()
-
One reference to the object was deleted.
Locking scheme
--------------
The object is possible to lock (to make constant). The scheme
assumes that the object is created, it can be locked, after that
it can only be destroyed. The locked object cannot be unlocked.
This locking scheme is very useful
during debugging, using assert() function,
when it is necassary to check that object
is treated as constant and the constancy is not violated by
any casting or passing through the copy constructor of shared
objects.
- void SetConst(void) const
-
This locks the object.
Often objects you wish to lock are already const.
- void SetConst(void)
-
This locks the object.
- BooleanT IsConst(void) const
-
Returns TRUE if the object is locked, ie. it is assumed to be constant.
- BooleanT IsNotConst(void) const
-
Returns TRUE if the object is unlocked.
ie. there is no special
information if the object is constant or not.
Counter state information
-------------------------
- BooleanT ToBeDeleted() const
-
Returns TRUE if there is only one reference to the object and the whole object or its reference counting part can be deleted.
- BooleanT ToBeDeletedRemoveIgnoreNoRemove()
-
Decrement refrence by 1 return true if this leaves no refrences to the object.
- BooleanT ToBeDeletedRemove()
-
Decrement refrence by 1 return true if this leaves no refrences to the object. This also checks the NoRemove flag.
- BooleanT BodyMightBeDeleted() const
-
Returns TRUE if the reference counted part of the object can be deleted, ie. flag NOREMOVE is false .
- BooleanT IsCountZero() const
-
Are there any refrences left ?
- BooleanT BRCPtrCanDeleteObject() const
-
Used by BRRCPtrC to establish if an object has ZERO refrences and can be deleted.
- IntT Count() const
-
Returns the current state of the counter, ie. how many references to this object exist.
- const BodyRefCounterC & operator=(const BodyRefCounterC & b)
-
It has not meaning to assign object 'b' to this object because it would destroy a history of the object which is counted. So this is a dummy function.
- BooleanT IsValidObject() const
-
Test if object is valid.
When amma check is disabled this always returns true.
- BooleanT UserBitTest(IntT x) const
-
Test user flag.
- void UserBitSet(IntT x,BooleanT setit = TRUE)
-
Test user flag.
- void UserBitZero(IntT x)
-
Set bit to zero.
- void ReportBRCError(char * Msg)
-
Report error, used in BRCPtrC.
- UIntT Hash() const
-
Hash on address of object.
- void SetUndeletable()
-
Make object undeletable.
Usefull to prevent recursive deleting in graph structures.
Only hackers need this function.
- void ReportInvalidObject(char * Msg = 0) const
-
Tell user about validation failure.
- LabelT Label() const
-
Returns the label of this reference counter.
The member function
is useful mainly to recognize objects during debugging.
The value of the label is uniquely defined pointer.
|
Programmer:Charles Galambos, Documentation by CxxDoc: Tue Mar 20 10:49:27 2001
|