|
Sun SPOT API |
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.sun.squawk.Isolate
public final class Isolate
The Squawk implementation of isolates.
| Nested Class Summary | |
|---|---|
static class |
Isolate.Breakpoint
A Breakpoint instance describes a point in a method at which a breakpoint has been set. |
static class |
Isolate.Message
|
static class |
Isolate.Parcel
A Parcel encapsulates a Isolate.Message posted to an isolate
and contains a reference to the sending isolate. |
| Field Summary | |
|---|---|
MulticastOutputStream |
stderr
|
MulticastOutputStream |
stdout
|
| Constructor Summary | |
|---|---|
Isolate(String mainClassName,
String[] args,
String classPath,
String parentSuiteSourceURI)
Creates an new isolate. |
|
| Method Summary | |
|---|---|
void |
addErr(String url)
Adds a new connection to which System.err will send its output. |
void |
addOut(String url)
Adds a new connection to which System.out will send its output. |
void |
cleanupMailboxes()
Tell remote isolates that we won't talk to them again, and close our Mailboxes. |
void |
clearErr()
Removes all the connections to which System.err is sending its output. |
void |
clearOut()
Removes all the connections to which System.out is sending its output. |
static Isolate |
currentIsolate()
Gets the current isolate context. |
void |
exit(int code)
Stop the isolate. |
void |
forgetMailbox(Mailbox mailbox)
Tell the system to forget about this mailbox. |
void |
forgetMailboxAddress(MailboxAddress address)
Tell the system to forget about this mailbox. |
int |
getChildThreadCount()
Gets the number of child threads of this isolate. |
Enumeration |
getChildThreads()
Gets the child threads of this isolate. |
String |
getClassPath()
Gets the class path for the isolate. |
Debugger |
getDebugger()
Gets the debugger under which this isolate is executing. |
int |
getExitCode()
Get the isolate exit code. |
static Isolate[] |
getIsolates()
Returns an array of active Isolate objects. |
Suite |
getLeafSuite()
Gets the suite that is the starting point for class lookup in this isolate. |
String[] |
getMainClassArguments()
Get the arguments. |
String |
getMainClassName()
Get the name of the main class. |
String |
getParentSuiteSourceURI()
|
String |
getProperty(String key)
Gets a named property of this isolate. |
TranslatorInterface |
getTranslator()
Gets a translator that is to be used to locate, load and convert classes that are not currently installed in this isolate's runtime environment. |
void |
hibernate()
Hibernate the isolate. |
String |
intern(String value)
Returns a canonical representation for the string object. |
boolean |
isAlive()
Determines if this isolate has been (re)started and not yet (re)hibernated or exited. |
boolean |
isBeingDebugged()
Determines whether this isolate is being debugged |
boolean |
isClassKlassInitialized()
Test to see if class Klass is initialized. |
boolean |
isExited()
Determines if this isolate is exited. |
boolean |
isHibernated()
Determines if this isolate is hibernated. |
boolean |
isNew()
Determines if this isolate has not yet been started. |
boolean |
isTrusted()
Determines if this isolate can access trusted classes. |
void |
join()
Waits for all the other threads and child isolates belonging to this isolate to stop. |
String[] |
listErr()
Gets a list of URLs denoting the streams to which System.err is currently sending its output. |
String[] |
listOut()
Gets a list of URLs denoting the streams to which System.out is currently sending its output. |
static Isolate |
load(DataInputStream dis,
String uri)
Loads a serialized isolate from an input stream into RAM. |
static Isolate.Parcel |
receiveMessage(Isolate from)
Retrieves the next available message sent to this isolate, blocking until a message is available. |
void |
recordMailbox(Mailbox mailbox)
Record this mailbox with the system. |
void |
recordMailboxAddress(MailboxAddress address)
Record all MailboxAddress objects that this Isolate uses to send messages to. |
void |
removeErr(String url)
Removes the connection identified by url (if any) to which System.err
is currently sending its output. |
void |
removeOut(String url)
Removes the connection identified by url (if any) to which System.out
is currently sending its output. |
void |
run()
Starts running this isolate. |
void |
save(DataOutputStream dos,
String uri)
Serializes the object graph rooted by this hibernated isolate and writes it to a given stream. |
void |
save(DataOutputStream dos,
String uri,
boolean bigEndian)
Serializes the object graph rooted by this hibernated isolate and writes it to a given stream. |
static void |
sendMessage(Isolate to,
Isolate.Message message)
|
void |
setProperty(String key,
String value)
Adds a named property to this isolate. |
void |
start()
Start the isolate. |
String |
toString()
Get the string representation of the isolate. |
void |
unhibernate()
Unhibernate the isolate. |
void |
updateBreakpoints(Isolate.Breakpoint[] breakpoints)
|
| Methods inherited from class java.lang.Object |
|---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public final MulticastOutputStream stdout
public final MulticastOutputStream stderr
| Constructor Detail |
|---|
public Isolate(String mainClassName,
String[] args,
String classPath,
String parentSuiteSourceURI)
mainClassName - the name of the class with main()args - the command line argumentsclassPath - the path where classes and suites can be foundparentSuiteSourceURI -
NullPointerException - if mainClassName or args is null| Method Detail |
|---|
public String getClassPath()
public static Isolate[] getIsolates()
public String getParentSuiteSourceURI()
public String getMainClassName()
public static Isolate currentIsolate()
public boolean isTrusted()
public String[] getMainClassArguments()
public Suite getLeafSuite()
closed, then it's also the suite into which
any dynamically loaded classes (i.e. those loaded via Class.forName(String))
are installed.
public TranslatorInterface getTranslator()
throws IllegalThreadStateException
IllegalThreadStateException
public void setProperty(String key,
String value)
System.getProperty(String).
key - the name of the propertyvalue - the value of the property or null to remove the propertypublic String getProperty(String key)
key - the name of the property to get
public String intern(String value)
A pool of strings, initially empty, is maintained privately by the
class Isolate.
When the intern method is invoked, if the pool already contains a
string equal to this String object as determined by
the Object.equals(Object) method, then the string from the pool is
returned. Otherwise, this String object is added to the
pool and a reference to this String object is returned.
It follows that for any two strings s and t,
s.intern() == t.intern() is true
if and only if s.equals(t) is true.
All literal strings and string-valued constant expressions are interned. String literals are defined in §3.10.5 of the Java Language Specification
public void start()
public final void run()
throws IllegalStateException
run in interface RunnableIllegalStateException - if this isolate has already been startedThread.run()public void join()
public boolean isClassKlassInitialized()
public void exit(int code)
code - the exit code
IllegalStateException - if this isolate has not yet been started or is
already hibernated or exited
public void save(DataOutputStream dos,
String uri)
throws IOException
dos - the DataOutputStream to which the serialized isolate should be writtenuri - a URI identifying the serialized isolate
OutOfMemoryError - if there was insufficient memory to do the save
IOException - if there was some IO problem while writing the output
IllegalStateException - if this isolate is not currently hibernated or exited
public void save(DataOutputStream dos,
String uri,
boolean bigEndian)
throws IOException
dos - the DataOutputStream to which the serialized isolate should be writtenuri - a URI identifying the serialized isolatebigEndian - the endianess to be used when serializing this isolate
OutOfMemoryError - if there was insufficient memory to do the save
IOException - if there was some IO problem while writing the output
IllegalStateException - if this isolate is not currently hibernated or exited
public static Isolate load(DataInputStream dis,
String uri)
dis - the data input stream to load fromuri - a URI identifying the serialized isolate
public void hibernate()
throws IOException,
IllegalStateException
IOException - if the underlying IO system cannot be serialized
IllegalStateException - if this isolate has not yet been started or is
already hibernated or exited or has a debugger attached to itpublic void unhibernate()
public boolean isHibernated()
hibernated.
public boolean isAlive()
public boolean isExited()
exited.
public boolean isNew()
started.
public boolean isBeingDebugged()
public int getExitCode()
public String toString()
toString in class Objectpublic void addOut(String url)
System.out will send its output.
If the current thread is not owned by this isolate,
opening of the connection is delayed until the next time System.out
is written to by one of this isolate's threads. Otherwise the connection is
opened as part of this call.
If there was an existing connection identified by url prior to this
call, it is replaced and will rely on finalization for being closed.
The following code snippet is an example of how to pipe the standard output of the current isolate to a network connection:
Thread.currentThread().getIsolate().addOut("socket://server.domain.com:9999").
url - the URL used to open the connection via Connector.openOutputStream(java.lang.String)public void addErr(String url)
System.err will send its output.
If the current thread is not owned by this isolate,
opening of the connection is delayed until the next time System.err
is written to by one of this isolate's threads. Otherwise the connection is
opened as part of this call.
If there was an existing connection identified by url prior to this
call, it is replaced and will rely on finalization for being closed.
url - the URL used to open the connection via Connector.openOutputStream(java.lang.String)public void removeOut(String url)
url (if any) to which System.out
is currently sending its output. The removed connection relies upon
finalization for releasing any system resources it holds.
url - the URL identifying the connection to be removedpublic void removeErr(String url)
url (if any) to which System.err
is currently sending its output. The removed connection relies upon
finalization for releasing any system resources it holds.
url - the URL identifying the connection to be removedpublic void clearOut()
System.out is sending its output.
The removed connections rely upon finalization for
releasing any system resources they hold.
public void clearErr()
System.err is sending its output.
The removed connections rely upon finalization for
releasing any system resources they hold.
public String[] listOut()
System.out is currently sending its output.
Note that due to multi-threading, the returned list may not reflect the complete
set of streams. If a stream was added by another thread, then the returned list
may not include the URL of the added stream. If a stream was removed by another thread,
then the returned list may include the URL of the removed stream.
System.out is currently sending its outputpublic String[] listErr()
System.err is currently sending its output.
Note that due to multi-threading, the returned list may not reflect the complete
set of streams. If a stream was added by another thread, then the returned list
may not include the URL of the added stream. If a stream was removed by another thread,
then the returned list may include the URL of the removed stream.
System.err is currently sending its outputpublic void recordMailbox(Mailbox mailbox)
mailbox - the mailbox to record.public void forgetMailbox(Mailbox mailbox)
mailbox - the mailbox to forget.public void recordMailboxAddress(MailboxAddress address)
mailbox - the mailbox to record.public void forgetMailboxAddress(MailboxAddress address)
mailbox - the mailbox to forget.public void cleanupMailboxes()
public static void sendMessage(Isolate to,
Isolate.Message message)
public static Isolate.Parcel receiveMessage(Isolate from)
from - if not null, only a message sent by from
will be returned
public Debugger getDebugger()
public Enumeration getChildThreads()
public int getChildThreadCount()
public void updateBreakpoints(Isolate.Breakpoint[] breakpoints)
|
Sun SPOT API |
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||