org.objectweb.proactive.core.component.request
Class Shortcut

java.lang.Object
  extended byorg.objectweb.proactive.core.component.request.Shortcut
All Implemented Interfaces:
java.io.Serializable

public class Shortcut
extends java.lang.Object
implements java.io.Serializable

This class represents a shortcut. A shortcut is a link between a client interface of a primitive component and the server interface of another primitive component. The shortcuting mechanism is based on tensioning, which is also used for migration of active objects with forwarders. When performing the first invocation on a functional interface, a shortcut object is created and transferred along with the component request. While it crosses membranes of possible intermediate composite components, it updates the path it has taken to reach its final destination. This final destination is an interface of a primitive component that contains the functional code.

When the final destination is reached, the shortcut object is sent back to the original sender that can decide to send further requests directly to the final destination.

Currently, the shortcut object keeps references on all crossed components, because this may be useful for managing dynamic reconfiguration in the future.

Author:
Matthieu Morel
See Also:
Serialized Form

Field Summary
static org.apache.log4j.Logger logger
           
 
Constructor Summary
Shortcut()
           
Shortcut(java.lang.String functionalInterfaceName, UniversalBody sender, UniversalBody intermediate)
           
 
Method Summary
 java.lang.String getFcFunctionalInterfaceName()
           
 FunctionalInterfaceID getLinkedInterfaceID()
           
 UniversalBody getSender()
           
 FunctionalInterfaceID getShortcutInterfaceID()
           
 UniversalBody getShortcutTargetBody()
           
 int length()
          This method returns length of the shortcut, in other words the number of bindings it represents.
 void setSender(UniversalBody sender)
           
 void updateDestination(UniversalBody destination)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

public static org.apache.log4j.Logger logger
Constructor Detail

Shortcut

public Shortcut()

Shortcut

public Shortcut(java.lang.String functionalInterfaceName,
                UniversalBody sender,
                UniversalBody intermediate)
Method Detail

getSender

public UniversalBody getSender()

setSender

public void setSender(UniversalBody sender)

length

public int length()
This method returns length of the shortcut, in other words the number of bindings it represents. A shortcut of length 1 indicates a normal binding.

Returns:
the length of the shortcut

updateDestination

public void updateDestination(UniversalBody destination)

getFcFunctionalInterfaceName

public java.lang.String getFcFunctionalInterfaceName()

getLinkedInterfaceID

public FunctionalInterfaceID getLinkedInterfaceID()
Returns:
the id of the interface which is bound through the BindingController ; it is different from the one that is the target of the communication through the shortcut.

getShortcutInterfaceID

public FunctionalInterfaceID getShortcutInterfaceID()
Returns:
the ID of the last encountered interface when creating the shortcut

getShortcutTargetBody

public UniversalBody getShortcutTargetBody()
Returns:
a reference on the body which is targetted by this shortcut


Copyright 2001-2005 INRIA All Rights Reserved.