uka.karmi.rmi
Class RemoteClientRef

java.lang.Object
  extended byuka.karmi.rmi.RemoteClientRef
Direct Known Subclasses:
SingleRemoteClientRef

public abstract class RemoteClientRef
extends java.lang.Object

Base class for remote Client references.

An implementation must implement the applicationCall methods. These methods are called by the stub object when the application wants to do a remote method call.

RemoteClientRef must implement equals() and hashCode(). The implementations must fit the RMI specification.

One more thing is very important when implementing RemoteClientRefs: If a stub (and its RemoteClientRef) is local the (now local) remote object which is controlled by the RemoteClientRef is NOT allowed to be garbage collected. This means that it is important that a local RemoteClientRef has a reference to the controlled RemoteServerRef(s). This reference must be transient.

Author:
Christian Nester, Bernhard Haumacher

Constructor Summary
RemoteClientRef()
           
 
Method Summary
abstract  ClientConnection getContext(int mid)
          This method is called by the stub when a remote method call is executed.
static MarshalInput getMarshalInput(java.io.ObjectInput objectInput)
           
static MarshalOutput getMarshalOutput(java.io.ObjectOutput objectOutput)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RemoteClientRef

public RemoteClientRef()
Method Detail

getContext

public abstract ClientConnection getContext(int mid)
                                     throws RemoteException
This method is called by the stub when a remote method call is executed.

Throws:
RemoteException

getMarshalOutput

public static MarshalOutput getMarshalOutput(java.io.ObjectOutput objectOutput)
                                      throws RemoteException
Throws:
RemoteException

getMarshalInput

public static MarshalInput getMarshalInput(java.io.ObjectInput objectInput)
                                    throws RemoteException
Throws:
RemoteException