frysk.proc.live
Class LinuxPtraceProcState

java.lang.Object
  extended by frysk.proc.live.State
      extended by frysk.proc.live.LinuxPtraceProcState
Direct Known Subclasses:
LinuxPtraceProcState.Attaching.ToMainTask, LinuxPtraceProcState.Attaching.ToOtherTasks, LinuxPtraceProcState.Detaching

abstract class LinuxPtraceProcState
extends State

A UNIX Process State


Nested Class Summary
private static class LinuxPtraceProcState.Attaching
          A process is being attached, this is broken down into sub-states.
private static class LinuxPtraceProcState.Detaching
          In the process of detaching; waiting for all tasks to report back that they have successfully detached.
 
Field Summary
private static LinuxPtraceProcState destroyed
          The process has been destroyed.
private static LinuxPtraceProcState detached
          The process is running free (or at least was the last time its status was checked).
private static Log fine
           
private static Log finest
           
private static LinuxPtraceProcState running
          The process is running, add and remove observers.
 
Constructor Summary
LinuxPtraceProcState(String state)
           
 
Method Summary
(package private)  LinuxPtraceProcState handleAddObservation(LinuxPtraceProc proc, Observation observation)
           
(package private)  LinuxPtraceProcState handleDeleteObservation(LinuxPtraceProc proc, Observation observation)
           
(package private)  LinuxPtraceProcState handleDetach(LinuxPtraceProc proc, boolean shouldRemoveObservers)
           
(package private)  LinuxPtraceProcState handleRemoval(LinuxPtraceProc proc)
           
(package private)  LinuxPtraceProcState handleTaskAttachCompleted(LinuxPtraceProc proc, LinuxPtraceTask task)
           
(package private)  LinuxPtraceProcState handleTaskDetachCompleted(LinuxPtraceProc proc, LinuxPtraceTask task)
           
(package private)  LinuxPtraceProcState handleTaskDetachCompleted(LinuxPtraceProc proc, LinuxPtraceTask task, LinuxPtraceTask clone)
           
(package private) static LinuxPtraceProcState initial(boolean starting)
          Return the Proc's initial state.
 
Methods inherited from class frysk.proc.live.State
toString, unhandled, unhandled
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

fine

private static final Log fine

finest

private static final Log finest

detached

private static final LinuxPtraceProcState detached
The process is running free (or at least was the last time its status was checked).


destroyed

private static final LinuxPtraceProcState destroyed
The process has been destroyed.


running

private static final LinuxPtraceProcState running
The process is running, add and remove observers. If the number of observers ever reaches zero, start detaching.

Constructor Detail

LinuxPtraceProcState

LinuxPtraceProcState(String state)
Method Detail

handleRemoval

LinuxPtraceProcState handleRemoval(LinuxPtraceProc proc)

handleTaskAttachCompleted

LinuxPtraceProcState handleTaskAttachCompleted(LinuxPtraceProc proc,
                                               LinuxPtraceTask task)

handleTaskDetachCompleted

LinuxPtraceProcState handleTaskDetachCompleted(LinuxPtraceProc proc,
                                               LinuxPtraceTask task)

handleTaskDetachCompleted

LinuxPtraceProcState handleTaskDetachCompleted(LinuxPtraceProc proc,
                                               LinuxPtraceTask task,
                                               LinuxPtraceTask clone)

handleAddObservation

LinuxPtraceProcState handleAddObservation(LinuxPtraceProc proc,
                                          Observation observation)

handleDeleteObservation

LinuxPtraceProcState handleDeleteObservation(LinuxPtraceProc proc,
                                             Observation observation)

handleDetach

LinuxPtraceProcState handleDetach(LinuxPtraceProc proc,
                                  boolean shouldRemoveObservers)

initial

static LinuxPtraceProcState initial(boolean starting)
Return the Proc's initial state. A new detached process materializes out of no where by magically appearing in /proc; a new attached process is always created via fork. The latter, until an observer is added is assumed to be about to detach.