Package org.jcsp.net.remote
Class ProcessSpawner
- java.lang.Object
-
- org.jcsp.net.remote.ProcessSpawner
-
- All Implemented Interfaces:
CSProcess
class ProcessSpawner extends java.lang.Object implements CSProcess
Launches a new JVM to run a process received by this spawner. This process will communicate with the new JVM, routing any exceptions to the requesting host and also any information printed to theSystem.err
orSystem.out
streams.
-
-
Field Summary
Fields Modifier and Type Field Description private ApplicationID
applicationID
The application identifier of the caller that the child should adopt.private NetChannelOutput
caller
For sending data back to the calling JVM who is running theRemoteProcess
proxy.private java.lang.String
classPath
The classpath the spawned JVM should use to get the caller's classes from a networked filesystem ornull
if the default classpath should be used.private NodeFactory
factory
The factory the child should use to initialize its node ornull
if the default initialization should take place.(package private) static int
MSG_EXCEPTION
AnException
follows that was raised by the spawned process.(package private) static int
MSG_FAIL
AnException
follows that was raised by the spawned process on failure.(package private) static int
MSG_OK
The process terminated without error.(package private) static int
MSG_STDERR
AString
follows with a line of text that was forSystem.err
.(package private) static int
MSG_STDOUT
AString
follows with a line of text that was forSystem.out
.private static java.lang.Integer
msgEXCEPTION
AnException
follows that was raised by the spawned process.private static java.lang.Integer
msgFAIL
AnException
follows that was raised by the spawned process on failure.private static java.lang.Integer
msgOK
The process terminated without error.private static java.lang.Integer
msgSTDERR
AString
follows with a line of text that was forSystem.err
.private static java.lang.Integer
msgSTDOUT
AString
follows with a line of text that was forSystem.out
.private CSProcess
process
The process that needs to be started.private SpawnerService
service
The parent service that started this one.private java.lang.String
uniqueName
A unique name generated by the service fo use in creating a temporary file.
-
Constructor Summary
Constructors Constructor Description ProcessSpawner(SpawnerService service, CSProcess process, NetChannelOutput caller, NodeFactory factory, ApplicationID applicationID, int unique, java.lang.String classPath)
Constructs a new spawner.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
run()
Main process loop.
-
-
-
Field Detail
-
MSG_STDOUT
static final int MSG_STDOUT
AString
follows with a line of text that was forSystem.out
.- See Also:
- Constant Field Values
-
MSG_STDERR
static final int MSG_STDERR
AString
follows with a line of text that was forSystem.err
.- See Also:
- Constant Field Values
-
MSG_EXCEPTION
static final int MSG_EXCEPTION
AnException
follows that was raised by the spawned process.- See Also:
- Constant Field Values
-
MSG_FAIL
static final int MSG_FAIL
AnException
follows that was raised by the spawned process on failure.- See Also:
- Constant Field Values
-
MSG_OK
static final int MSG_OK
The process terminated without error.- See Also:
- Constant Field Values
-
msgSTDOUT
private static final java.lang.Integer msgSTDOUT
AString
follows with a line of text that was forSystem.out
.
-
msgSTDERR
private static final java.lang.Integer msgSTDERR
AString
follows with a line of text that was forSystem.err
.
-
msgEXCEPTION
private static final java.lang.Integer msgEXCEPTION
AnException
follows that was raised by the spawned process.
-
msgFAIL
private static final java.lang.Integer msgFAIL
AnException
follows that was raised by the spawned process on failure.
-
msgOK
private static final java.lang.Integer msgOK
The process terminated without error.
-
service
private final SpawnerService service
The parent service that started this one.
-
process
private final CSProcess process
The process that needs to be started.
-
caller
private final NetChannelOutput caller
For sending data back to the calling JVM who is running theRemoteProcess
proxy.
-
factory
private final NodeFactory factory
The factory the child should use to initialize its node ornull
if the default initialization should take place.
-
applicationID
private final ApplicationID applicationID
The application identifier of the caller that the child should adopt.
-
uniqueName
private final java.lang.String uniqueName
A unique name generated by the service fo use in creating a temporary file.
-
classPath
private final java.lang.String classPath
The classpath the spawned JVM should use to get the caller's classes from a networked filesystem ornull
if the default classpath should be used.
-
-
Constructor Detail
-
ProcessSpawner
public ProcessSpawner(SpawnerService service, CSProcess process, NetChannelOutput caller, NodeFactory factory, ApplicationID applicationID, int unique, java.lang.String classPath)
Constructs a new spawner.- Parameters:
service
- the parent service that is creating this object.process
- the process that should be run.caller
- for sending data back to the caller.factory
- optional factory for initializing the child process' node.applicationID
- caller's application ID that the child should adopt.unique
- a unique number allocated by the parent service.classPath
- classpath specified by the caller process for any classes available from a networked filesystem.
-
-