frysk.sys
Class UnhandledWaitBuilder

java.lang.Object
  extended by frysk.sys.UnhandledWaitBuilder
All Implemented Interfaces:
WaitBuilder

public abstract class UnhandledWaitBuilder
extends Object
implements WaitBuilder

Implementation of WaitBuilder that, passes any unhandled wait event onto the method unhandled(). Extenders can then either throw an exception, or discard the event.


Constructor Summary
UnhandledWaitBuilder()
           
 
Method Summary
 void cloneEvent(ProcessIdentifier pid, ProcessIdentifier clone)
          The task PID got a clone event; CLONE is the new task's ID.
 void disappeared(ProcessIdentifier pid, Throwable w)
          The task PID disappeared.
 void execEvent(ProcessIdentifier pid)
          The task PID got an exec event; the process has already been overlayed.
 void exitEvent(ProcessIdentifier pid, Signal signal, int status, boolean coreDumped)
          The task PID got an exit event; if SIGNAL is non-NULL it is the terminating signal, else STATUS is the exit status.
 void forkEvent(ProcessIdentifier pid, ProcessIdentifier child)
          The task PID got a fork event; CHILD is the new process ID.
 void stopped(ProcessIdentifier pid, Signal signal)
          The task PID stopped with SIGNAL pending (SIGNAL could be SIGNONE).
 void syscallEvent(ProcessIdentifier pid)
          XXX: It isn't currently possible to determine from the syscall event whether it is entry or exit.
 void terminated(ProcessIdentifier pid, Signal signal, int status, boolean coreDumped)
          The task PID terminated (WIFEXITED, WIFSIGNALED); if SIGNAL is non-NULL it is the terminating signal, else STATUS is the exit status.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UnhandledWaitBuilder

public UnhandledWaitBuilder()
Method Detail

cloneEvent

public void cloneEvent(ProcessIdentifier pid,
                       ProcessIdentifier clone)
The task PID got a clone event; CLONE is the new task's ID.

Specified by:
cloneEvent in interface WaitBuilder

forkEvent

public void forkEvent(ProcessIdentifier pid,
                      ProcessIdentifier child)
The task PID got a fork event; CHILD is the new process ID.

Specified by:
forkEvent in interface WaitBuilder

exitEvent

public void exitEvent(ProcessIdentifier pid,
                      Signal signal,
                      int status,
                      boolean coreDumped)
The task PID got an exit event; if SIGNAL is non-NULL it is the terminating signal, else STATUS is the exit status.

Specified by:
exitEvent in interface WaitBuilder

execEvent

public void execEvent(ProcessIdentifier pid)
The task PID got an exec event; the process has already been overlayed.

Specified by:
execEvent in interface WaitBuilder

syscallEvent

public void syscallEvent(ProcessIdentifier pid)
XXX: It isn't currently possible to determine from the syscall event whether it is entry or exit. We must do state transitioning in the upper-level and figure it out.

Specified by:
syscallEvent in interface WaitBuilder

stopped

public void stopped(ProcessIdentifier pid,
                    Signal signal)
The task PID stopped with SIGNAL pending (SIGNAL could be SIGNONE).

Specified by:
stopped in interface WaitBuilder

terminated

public void terminated(ProcessIdentifier pid,
                       Signal signal,
                       int status,
                       boolean coreDumped)
The task PID terminated (WIFEXITED, WIFSIGNALED); if SIGNAL is non-NULL it is the terminating signal, else STATUS is the exit status.

Specified by:
terminated in interface WaitBuilder

disappeared

public void disappeared(ProcessIdentifier pid,
                        Throwable w)
The task PID disappeared. Received an event for PID but then that, by the time its status was checked, the process had vanished.

Specified by:
disappeared in interface WaitBuilder