|
JNodeOS v1.1.5 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--edu.utah.janos.nodeos.pj_Flow | +--edu.utah.janos.nodeos.Flow
Java wrapper for a flow. This is the current flow's local interface to its own flow object.
If you know BeOS or V, this is like a "Team". If you prefer Mach (or know what Fluke is), this is similar to a "Task". If all you know is Unix, then think of this as a "process". You might also call it a "resource container" or possibly a "protection domain."
Method Summary | |
void |
addClass(java.lang.String name,
byte[] bytecode)
Add a new class to an existing flow. |
void |
addSystemPackage(java.lang.String name)
Add a package to the list of "system" packages. |
static Flow |
currentFlow()
Get the current flow. |
void |
destroy()
Start flow shutdown/cleanup for this flow. |
boolean |
destroyed()
|
void |
enableAccessControls(boolean doit)
Enable access controls on the class loader. |
void |
exportClass(java.lang.String name)
Export a class from the class loader to the flow. |
java.lang.String |
getName()
|
java.lang.Object |
getObject()
|
void |
getStats(FlowStats fs)
|
java.lang.Class |
loadClass(java.lang.String name)
|
static java.lang.String |
lookupConfig(java.lang.String section,
java.lang.String tag)
Lookup something in the JanosVM config file. |
static java.lang.String |
lookupConfig(java.lang.String section,
java.lang.String tag,
int instance)
Lookup something in the JanosVM config file. |
FlowHandle |
newFlow(Credentials cred,
ThreadPoolSpec tPoolSpec,
MemSpec memSpec,
FlowStartSpec flowStartSpec,
java.lang.Runnable termHandler)
Create a new Flow, which is a child of the current Flow. |
static byte[] |
readByteCode(java.lang.String classname)
XXX Is this evil? Should it just be loadFile from class path? XXX should never return null. |
void |
sealPackage(java.lang.String name)
Seal a package so that no other classes can be added to it. |
void |
setName(java.lang.String name)
|
void |
setObject(java.lang.Object obj)
|
void |
threadStart(java.lang.Runnable r,
java.lang.String name)
Create an explicit thread. |
java.lang.String |
toString()
Return a fragment of an id string. |
Methods inherited from class java.lang.Object |
equals,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
Method Detail |
public FlowHandle newFlow(Credentials cred, ThreadPoolSpec tPoolSpec, MemSpec memSpec, FlowStartSpec flowStartSpec, java.lang.Runnable termHandler)
This is the only interface for creating a Flow.
The termHandler will be invoked by a thread in the parent Flow's if the child Flow is terminated. This handler has a short limit for execution.
If termHandler is null, then no termination handler is called.
XXX Should be called "create()" to sync back with NodeOS spec.
XXX don't overload Runnable for the termHandler. Use a different, jnodeos interface that doesn't overlap with the other callback interfaces.
cred
- The principal associated with this FlowtPoolSpec
- The specification for the new Flow's ThreadPoolmemSpec
- The memory limit for this flowflowStartSpec
- Class loading and startup informationtermHandler
- Termination handler invoked by the NodeOS when
an immediate child flow is being terminated.public void destroy()
public boolean destroyed()
public void threadStart(java.lang.Runnable r, java.lang.String name)
r
- the Runnable to start the target thread on.name
- the String name of the new thread.public java.lang.Object getObject()
public void setObject(java.lang.Object obj)
public java.lang.String toString()
public void addClass(java.lang.String name, byte[] bytecode)
public void addSystemPackage(java.lang.String name)
All sub-flows *share* the same definition of "system" packages for now. This is because only one EE System is loaded on the NodeOS. This will have to change.
Implicitly allows the package.
public void sealPackage(java.lang.String name)
name
- The name of the package to seal.public void exportClass(java.lang.String name)
name
- The name of the class to export.public void enableAccessControls(boolean doit)
public java.lang.Class loadClass(java.lang.String name) throws java.lang.ClassNotFoundException
public static byte[] readByteCode(java.lang.String classname) throws java.lang.ClassNotFoundException
public void getStats(FlowStats fs)
public static java.lang.String lookupConfig(java.lang.String section, java.lang.String tag, int instance)
public static java.lang.String lookupConfig(java.lang.String section, java.lang.String tag)
public static final Flow currentFlow()
public void setName(java.lang.String name)
public java.lang.String getName()
|
JNodeOS v1.1.5 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |