Google

JanosVM v0.6.0 Java API Documentation: Class TeamHandle
JanosVM v0.6.0 Java API

edu.utah.janosvm.sys
Class TeamHandle

java.lang.Object
  |
  +--edu.utah.janosvm.sys.ListNode
        |
        +--edu.utah.janosvm.sys.Importable
              |
              +--edu.utah.janosvm.sys.TeamHandle
Direct Known Subclasses:
Team

public class TeamHandle
extends Importable
implements java.lang.Cloneable

Provides a safe handle to a Team. Technically, this points to the kernel team's TeamBackEnd object that represents the team in question.

Author:
Tim Stack, Utah Janos Team
See Also:
TeamBackEnd, Team

Field Summary
protected  edu.utah.janosvm.sys.TeamBackEnd be
           
 
Fields inherited from class edu.utah.janosvm.sys.ListNode
pred, succ
 
Fields inherited from interface java.lang.Cloneable
KAFFE_VERSION
 
Constructor Summary
TeamHandle()
           
 
Method Summary
protected  void bindTo(Exportable ex)
          Bind this Importable to the given Exportable.
 void cancelImport(Importable im)
           
 java.lang.Object clone()
          Clone a ListNode.
 boolean equals(java.lang.Object obj)
           
 java.lang.String getDescription()
          Get the Team's description string.
 int getID()
           
 java.lang.String getName()
          Get the name of the TeamBackEnd associated with this TeamHandle handle.
 void importObject(Importable to, java.lang.Object id)
           
 boolean isTerminated()
           
 boolean owns(java.lang.Object obj)
          Test if the given object is owned by this TeamHandle.
static void popReservation()
          Pop the last TeamReservation off the stack.
 TeamReservation pushReservation()
          Create a new reservation that reserves the TeamHandle this object points to.
static void returnFrom()
          End a visit to this TeamHandle.
 void switchTo()
          Start a visit to the TeamHandle this object points to.
 void terminate()
          Terminate the team referenced by this handle.
 java.lang.String toString()
           
protected  void unbindFrom()
          Unbind this Importable from any objects its referencing.
 
Methods inherited from class edu.utah.janosvm.sys.Importable
copy, finalize, revoke
 
Methods inherited from class edu.utah.janosvm.sys.ListNode
append, prepend, remove
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

be

protected edu.utah.janosvm.sys.TeamBackEnd be
Constructor Detail

TeamHandle

public TeamHandle()
Method Detail

bindTo

protected void bindTo(Exportable ex)
Description copied from class: Importable
Bind this Importable to the given Exportable. The most common implementation of this method would be to cast the Exportable to the type that the Importable subclass handles and store it in the object as well as any other handy pointers/values.
Overrides:
bindTo in class Importable
Tags copied from class: Importable
Parameters:
ex - The Exportable that is being imported.

unbindFrom

protected void unbindFrom()
Description copied from class: Importable
Unbind this Importable from any objects its referencing. The most common implementation of this method would be null out any object references in this object.
Overrides:
unbindFrom in class Importable

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

getName

public java.lang.String getName()
Get the name of the TeamBackEnd associated with this TeamHandle handle.
Returns:
A copy of the TeamHandle's name.

getDescription

public java.lang.String getDescription()
Get the Team's description string.
Returns:
A copy of the Team's description.

getID

public int getID()
Returns:
The unique integer identifier for this TeamHandle.

owns

public boolean owns(java.lang.Object obj)
Test if the given object is owned by this TeamHandle.
Parameters:
obj - The object to test for ownership.
Returns:
True if this TeamHandle owns the object.

terminate

public void terminate()
Terminate the team referenced by this handle. This will clean up all the importables and exportables owned by the team and schedule all of its threads for destruction.

If the calling thread is owned by the team being terminated, this function will not return.

Active visits to the team being terminated will delay termination until all the visits have been completed.

See Also:
TeamBackEnd#terminate()

isTerminated

public boolean isTerminated()

importObject

public void importObject(Importable to,
                         java.lang.Object id)
                  throws DeadTeamException,
                         TeamEjectionException,
                         NoSuchExportException

cancelImport

public void cancelImport(Importable im)

pushReservation

public TeamReservation pushReservation()
                                throws DeadTeamException
Create a new reservation that reserves the TeamHandle this object points to. The reservation remains "active" until popReservation() is invoked by the current thread. Unlike a switchTo(), this call does not implicitly switch context to the other TeamHandle. That is done by invoking use on the TeamReservation instance returned by this call.
Returns:
A TeamReservation object that reserves this TeamHandle.
See Also:
switchTo(), TeamBackEnd#pushReservation(int), TeamReservation.visit(), TeamReservation.leave()

switchTo

public void switchTo()
              throws DeadTeamException,
                     TeamEjectionException
Start a visit to the TeamHandle this object points to. While the visit is active, neither TeamHandle can be terminated, so object references in either TeamHandle can be manipulated. Write-barriers are also disabled during this sequence. The visit ends when returnFromTeam() is invoked.
See Also:
returnFrom(), TeamBackEnd#switchTo(int)

returnFrom

public static void returnFrom()
End a visit to this TeamHandle.
See Also:
switchTo(), TeamBackEnd#returnFrom()

popReservation

public static void popReservation()
Pop the last TeamReservation off the stack.

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Description copied from class: ListNode
Clone a ListNode. The node is cloned in isolation; the clone is never on a list, regardless of the state of the original.
Overrides:
clone in class ListNode

toString

public java.lang.String toString()
Overrides:
toString in class Importable

JanosVM v0.6.0 Java API

This documentation is Copyright (C) 2000-2002 The University of Utah. All Rights Reserved. See the documentation license for distribution terms and restrictions.
Documentation, software, and mailing lists for the JanosVM can be found at the Janos Project web page: http://www.cs.utah.edu/flux/janos/
Generated on Mar 17, 2002