Class v.c.a.b.ProcessController(object):

Part of vmc.contrib.axiom.batch View In Hierarchy

Stateful class which tracks a Juice connection to a child process.

Communication occurs over stdin and stdout of the child process.  The
process is launched and restarted as necessary.  Failures due to the child
process terminating, either unilaterally of by request, are represented as
a transient exception class,

Mode is one of
  'stopped'       (no process running or starting)
  'starting'      (process begun but not ready for requests)
  'ready'         (process ready for requests)
  'stopping'      (process being torn down)
  'waiting_ready' (process beginning but will be shut down
                      as soon as it starts up)

Transitions are as follows

   getProcess:
       stopped -> starting:
           launch process
           create/save in waitingForStartup/return Deferred
       starting -> starting:
           create/save/return Deferred
       ready -> ready:
            return saved process
       stopping:
            return failing Deferred indicating transient failure
       waiting_ready:
            return failing Deferred indicating transient failure

   stopProcess:
       stopped -> stopped:
           return succeeding Deferred
       starting -> waiting_ready:
           create Deferred, add transient failure errback handler, return
       ready -> stopping:
           call shutdown on process
           return Deferred which fires when shutdown is done

   childProcessCreated:
       starting -> ready:
           callback saved Deferreds
           clear saved Deferreds
       waiting_ready:
           errback saved Deferred indicating transient failure
           return _shutdownIndexerProcess()

   childProcessTerminated:
       starting -> stopped:
           errback saved Deferreds indicating transient failure
       waiting_ready -> stopped:
           errback saved Deferreds indicating transient failure
       ready -> stopped:
           drop reference to process object
       stopping -> stopped:
           Callback saved shutdown deferred

@ivar process: A reference to the process object.  Set in every non-stopped
mode.

@ivar juice: A reference to the juice protocol.  Set in all modes.

@ivar connector: A reference to the process protocol.  Set in every
non-stopped mode.

@ivar onProcessStartup: None or a no-argument callable which will
be invoked whenever the connection is first established to a newly
spawned child process.

@ivar onProcessTermination: None or a no-argument callable which
will be invoked whenever a Juice connection is lost, except in the
case where process shutdown was explicitly requested via
stopProcess().
Method __init__ Undocumented
Class stopped Undocumented
Class starting Undocumented
Class ready Undocumented
Class stopping Undocumented
Class waiting_ready Undocumented
def __init__(self, name, juice, tacPath, onProcessStartup=None, onProcessTermination=None, logPath=None, pidPath=None):
Undocumented
def _startProcess(self):
Undocumented
API Documentation for vodafone-mobile-connect-card-driver-for-linux, generated by pydoctor at 2008-01-10 13:06:31.