|
JanosVM v1.0 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.lang.isolate.Isolate
Inner Class Summary | |
(package private) class |
Isolate.IsolateEventHandler
|
Field Summary | |
(package private) static AggregateStateManager |
aggregateStateManager
Global status (mapping isolate handles to starter/exit status) |
private static java.lang.String |
bootclassPath
|
private static IsolatePermission |
CONTEXT_PERMISSION
|
private static IsolatePermission |
CONTROL_PERMISSION
|
private static IsolatePermission |
CREATE_PERMISSION
|
private static java.lang.String[] |
defaultClassPath
Default class path for new Isolates. |
private java.lang.Long |
guid
|
private static IsolateGUID |
guidManager
Global Isolate GUID manager. |
(package private) Isolate.IsolateEventHandler |
handler
|
private static java.lang.Class |
isolateBackEndClass
|
private static java.lang.Class |
isolateClass
|
private IsolateState |
remoteState
State of remote Isolate. |
private AggregateStateManager.IsolateStatusHandle |
statusHandle
Handle on the global isolate status. |
private EventTeamHandle |
teamH
Handle on the Team associated with this Isolate (local or remote). |
Constructor Summary | |
(package private) |
Isolate(java.lang.Long guid,
EventTeamHandle t)
Constructor for creating an Isolate object that refers to the given Team (and implicitly that Team's IsolateBackEnd). |
|
Isolate(java.lang.String mainClass,
java.lang.String[] mainArgs)
|
|
Isolate(java.lang.String mainClass,
java.lang.String[] mainArgs,
java.util.prefs.TransientPreferences context,
IsolateMessage stdin,
IsolateMessage stdout,
IsolateMessage stderr)
|
Method Summary | |
private java.lang.Object[] |
checkArray(java.lang.Object[] arr)
Copy given array so that mutations to it will not work around safety and security checks on the contents. |
private static void |
childSidePrefsFixup(java.util.prefs.TransientPreferences context)
|
(package private) Isolate |
clone(TeamHandle source,
TeamHandle current)
|
private java.util.prefs.TransientPreferences |
cloneContext(TeamReservation inittr,
java.util.prefs.TransientPreferences parentPrefs)
Deeply clone the context. |
private void |
cloneContextNode(TeamReservation inittr,
java.util.prefs.TransientPreferences parentPrefs,
java.util.prefs.TransientPreferences childPrefs)
|
private static java.lang.Long |
cloneLong(java.lang.Long l)
|
private static IsolateMessage |
cloneMessage(IsolateMessage m,
TeamHandle source,
TeamHandle current)
|
(package private) static java.lang.String |
cloneString(java.lang.String s)
|
private static java.lang.String[] |
cloneStringArray(java.lang.String[] s)
|
static Isolate |
currentIsolate()
|
static java.util.prefs.TransientPreferences |
currentIsolateContext()
|
static IsolateMessage[] |
currentIsolateIOBindings()
|
static IsolateMessage[] |
currentIsolateStartMessages()
Retrieve the available IsolateMessage objects for the currently running isolate. |
private void |
doShutdown(boolean doHalt,
int status)
|
boolean |
equals(java.lang.Object other)
|
void |
exit(int status)
Equivalent to this Isolate calling Runtime.exit() or System.exit. |
protected void |
finalize()
Drop the ref count in the global status map when the Isolate handle is collected. |
private void |
fixupImmutablePrefs(java.util.prefs.TransientPreferences childPrefs)
|
private static java.lang.String[] |
getClassPath(java.util.prefs.TransientPreferences context,
java.lang.String[] defcp)
|
(package private) java.lang.Long |
getGUID()
|
(package private) TeamHandle |
getTeamHandle()
May return null. |
void |
halt(int status)
|
boolean |
hasExited()
|
int |
hashCode()
Returns the hashcode for this Isolate |
boolean |
hasStarted()
|
boolean |
hasTerminated()
|
private void |
installDefaultPrefs(java.util.prefs.TransientPreferences childPrefs)
|
(package private) boolean |
isCurrent()
|
(package private) static java.lang.String |
isolateName(java.lang.Long guid)
|
private static FileSystemSpec |
makeFileSystemSpec(java.util.prefs.TransientPreferences tp)
|
private IsolateMessage |
makeStdioMessage(java.lang.String spec,
IsolateMessage rawSourceMessage)
We must create a clone of the given type of IsolateMessage but as a wrapper for the fd in the given spec. |
private static StdioSpec |
makeStdioSpec(IsolateMessage stdin,
IsolateMessage stdout,
IsolateMessage stderr)
XXX race condition between copying an FD out of the isolate message and then that fd being closed and something completely unrelated being re-opened on that FD before we get to the resource subscription. |
Link |
newEventLink()
|
(package private) static Isolate |
newHandle(java.lang.Long guid)
|
void |
start(IsolateMessage[] messages)
|
private static java.lang.String |
stringifyStrArray(java.lang.String[] paths)
|
java.lang.String |
toString()
|
private void |
updateRemoteState()
|
Methods inherited from class java.lang.Object |
clone, getClass, notify, notifyAll, wait, wait, wait, wait0 |
Field Detail |
private static final IsolateGUID guidManager
static final AggregateStateManager aggregateStateManager
private static final java.lang.Class isolateBackEndClass
private static final java.lang.Class isolateClass
private static final java.lang.String bootclassPath
private static final IsolatePermission CREATE_PERMISSION
private static final IsolatePermission CONTROL_PERMISSION
private static final IsolatePermission CONTEXT_PERMISSION
private final java.lang.Long guid
private final AggregateStateManager.IsolateStatusHandle statusHandle
private static final java.lang.String[] defaultClassPath
final Isolate.IsolateEventHandler handler
private IsolateState remoteState
private EventTeamHandle teamH
Constructor Detail |
public Isolate(java.lang.String mainClass, java.lang.String[] mainArgs) throws IsolateStartupException
public Isolate(java.lang.String mainClass, java.lang.String[] mainArgs, java.util.prefs.TransientPreferences context, IsolateMessage stdin, IsolateMessage stdout, IsolateMessage stderr) throws IsolateStartupException
Isolate(java.lang.Long guid, EventTeamHandle t)
Method Detail |
private static java.lang.String stringifyStrArray(java.lang.String[] paths)
private static java.lang.Long cloneLong(java.lang.Long l)
static java.lang.String cloneString(java.lang.String s)
private static java.lang.String[] cloneStringArray(java.lang.String[] s)
private void installDefaultPrefs(java.util.prefs.TransientPreferences childPrefs)
private void fixupImmutablePrefs(java.util.prefs.TransientPreferences childPrefs)
private void cloneContextNode(TeamReservation inittr, java.util.prefs.TransientPreferences parentPrefs, java.util.prefs.TransientPreferences childPrefs) throws TeamEjectionException
private java.util.prefs.TransientPreferences cloneContext(TeamReservation inittr, java.util.prefs.TransientPreferences parentPrefs) throws TeamEjectionException
private static IsolateMessage cloneMessage(IsolateMessage m, TeamHandle source, TeamHandle current)
private static StdioSpec makeStdioSpec(IsolateMessage stdin, IsolateMessage stdout, IsolateMessage stderr) throws IsolateStartupException
private static FileSystemSpec makeFileSystemSpec(java.util.prefs.TransientPreferences tp)
private static java.lang.String[] getClassPath(java.util.prefs.TransientPreferences context, java.lang.String[] defcp)
static Isolate newHandle(java.lang.Long guid)
private java.lang.Object[] checkArray(java.lang.Object[] arr)
private IsolateMessage makeStdioMessage(java.lang.String spec, IsolateMessage rawSourceMessage) throws java.io.IOException
private static void childSidePrefsFixup(java.util.prefs.TransientPreferences context)
public void start(IsolateMessage[] messages) throws java.lang.IllegalStateException, IsolateStartupException
public static IsolateMessage[] currentIsolateIOBindings()
public static IsolateMessage[] currentIsolateStartMessages()
private void doShutdown(boolean doHalt, int status) throws java.lang.SecurityException
public void exit(int status) throws java.lang.SecurityException, java.lang.IllegalStateException
Termination
- status. By convention, a nonzero status code indicates abnormal termination.java.lang.SecurityException
- if security policy does not permit
exiting this Isolate.java.lang.IllegalStateException
- if this isolate is terminatedpublic void halt(int status) throws java.lang.SecurityException, java.lang.IllegalStateException
private void updateRemoteState()
public Link newEventLink() throws ClosedLinkException
public boolean hasStarted()
public boolean hasExited()
public boolean hasTerminated()
public static Isolate currentIsolate()
boolean isCurrent()
public static java.util.prefs.TransientPreferences currentIsolateContext()
public int hashCode()
hashCode
in class java.lang.Object
java.lang.Long getGUID()
TeamHandle getTeamHandle()
Isolate clone(TeamHandle source, TeamHandle current)
static java.lang.String isolateName(java.lang.Long guid)
public java.lang.String toString()
toString
in class java.lang.Object
public boolean equals(java.lang.Object other)
equals
in class java.lang.Object
protected void finalize()
finalize
in class java.lang.Object
|
JanosVM v1.0 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |