JanosVM v1.0 API

java.lang.isolate
Class OneWayLink_RendezvousPoint

java.lang.Object
  |
  +--edu.utah.janosvm.sys.Exportable
        |
        +--java.lang.isolate.OneWayLink_RendezvousPoint
All Implemented Interfaces:
ManagedExportable, TemporaryExport

class OneWayLink_RendezvousPoint
extends Exportable
implements TemporaryExport, ManagedExportable

A rendezvous point for a one-way link. Rendezvous points are always allocated by and installed as an export in the sending team.


Field Summary
private  boolean closed
           
(package private) static java.lang.Object CLOSED_TOKEN
          Global constant.
private  ExportManager em
           
private  ExportManager.ImportEnumerator ienum
           
(package private) static java.lang.Object INTERRUPTED_TOKEN
          Global constant.
private  java.lang.Object lock
           
private  java.lang.String name
           
private  IsolateMessage waitingMessage
           
private  java.lang.Object waitingSender
           
 
Fields inherited from class edu.utah.janosvm.sys.Exportable
anonManager, owner
 
Constructor Summary
private OneWayLink_RendezvousPoint(java.lang.String name)
           
 
Method Summary
(package private)  void close()
           
 boolean expired()
          To satisfy the TemporaryExport interface.
(package private)  java.lang.Object fetchMessage()
          Returns a sender's IsolateMessage, or a ClosedLinkException, or null.
 java.lang.Object getName()
          To satisfy the TemporaryExport interface.
(package private)  boolean isOpen()
           
private  void notifyAllReceivers()
           
private  void notifyAllSenders()
           
(package private) static boolean receiverDoesSetup(TeamHandle sender, java.lang.String xname)
          Find existing rendezvous point with the given name in the sender team.
 void release()
          To satisfy the ManagedExportable interface.
private static OneWayLink_RendezvousPoint rpFromEm(ExportManager em)
           
(package private)  void send(IsolateMessage im)
          Either returns cleanly (indicating the message was successfully sent) or throws an exception.
(package private) static OneWayLink_RendezvousPoint senderDoesSetup(java.lang.String name)
          Find existing rendezvous point with the given name, or install a new one if there is no such export.
 java.lang.String toString()
           
(package private)  void waitWithCLE()
           
 
Methods inherited from class edu.utah.janosvm.sys.Exportable
getAnonymousManager, pushOwnerReservation, returnFromOwner, setAnonymousManager, switchToOwner
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait, wait0
 

Field Detail

lock

private final java.lang.Object lock

name

private final java.lang.String name

closed

private boolean closed

waitingSender

private java.lang.Object waitingSender

waitingMessage

private IsolateMessage waitingMessage

ienum

private ExportManager.ImportEnumerator ienum

em

private ExportManager em

CLOSED_TOKEN

static final java.lang.Object CLOSED_TOKEN
Global constant.

INTERRUPTED_TOKEN

static final java.lang.Object INTERRUPTED_TOKEN
Global constant.
Constructor Detail

OneWayLink_RendezvousPoint

private OneWayLink_RendezvousPoint(java.lang.String name)
Method Detail

rpFromEm

private static OneWayLink_RendezvousPoint rpFromEm(ExportManager em)

senderDoesSetup

static OneWayLink_RendezvousPoint senderDoesSetup(java.lang.String name)
Find existing rendezvous point with the given name, or install a new one if there is no such export.

receiverDoesSetup

static boolean receiverDoesSetup(TeamHandle sender,
                                 java.lang.String xname)
Find existing rendezvous point with the given name in the sender team. Install a new rendezvous point in the sender if one does not exist. Object must be imported to be used by receiver, of course. Returns false if the sender team is dead.
Returns:
true if rendezvouspoint was set up, false if not (i.e., if link should be closed).

notifyAllSenders

private void notifyAllSenders()

notifyAllReceivers

private void notifyAllReceivers()

close

void close()

isOpen

boolean isOpen()

expired

public boolean expired()
To satisfy the TemporaryExport interface. (Invoked when there are no more imports of this exportable.)
Specified by:
expired in interface TemporaryExport
Following copied from interface: edu.utah.janosvm.sys.TemporaryExport
Returns:
True if the export has expired and should be revoked.

getName

public java.lang.Object getName()
To satisfy the TemporaryExport interface.
Specified by:
getName in interface TemporaryExport

release

public void release()
To satisfy the ManagedExportable interface. (Invoked when the exportable being reclaimed.)
Specified by:
release in interface ManagedExportable

waitWithCLE

void waitWithCLE()
           throws ClosedLinkException

send

void send(IsolateMessage im)
    throws ClosedLinkException,
           LinkSerializationException
Either returns cleanly (indicating the message was successfully sent) or throws an exception.

fetchMessage

java.lang.Object fetchMessage()
Returns a sender's IsolateMessage, or a ClosedLinkException, or null.

toString

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

JanosVM v1.0 API

This documentation is Copyright (C) 2000-2003 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 Feb 13, 2003