org.objectweb.proactive.core.component.representative
Class FunctionalInterfaceProxyImpl

java.lang.Object
  extended byorg.objectweb.proactive.core.component.representative.FunctionalInterfaceProxyImpl
All Implemented Interfaces:
java.lang.Cloneable, FunctionalInterfaceProxy, Proxy, java.io.Serializable

public class FunctionalInterfaceProxyImpl
extends java.lang.Object
implements FunctionalInterfaceProxy, java.io.Serializable, java.lang.Cloneable

This class acts as a proxy between a representative interface and the actual destination of the invocation. It therefore allows the creation of shortcuts : functional requests can cross membranes of composites and directly go to the target primitive component that is able to handle the request.

This feature is especially useful in the context of distributed systems, where hierarchies can be quite complex and composite components distributed over many different and remote sites.

The implementation of the shorcuts is based on tensioning : the first functional request on an interface goes all the way through possible intermediate composite components, and when it reaches its final destination, which is the primitive component that holds the business code for handling this functional request, the original sender of the request receives a notification of the shortcut which can be realized. The following requests on the same interface will then go directly to the target primitive component, without having to cross possible intermediate composite components. Note that the tensioning is performed during the rendez-vous , which guarantees causal dependency.

Author:
Matthieu Morel
See Also:
Serialized Form

Field Summary
protected static org.apache.log4j.Logger logger
           
 
Constructor Summary
FunctionalInterfaceProxyImpl(Proxy bodyProxyDelegatee, java.lang.String fcItfName)
           
 
Method Summary
 Proxy getBodyProxy()
           
 java.lang.Object reify(MethodCall c)
          Reifies a method call invoked on the object
 void setBodyProxy(Proxy proxy)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

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

FunctionalInterfaceProxyImpl

public FunctionalInterfaceProxyImpl(Proxy bodyProxyDelegatee,
                                    java.lang.String fcItfName)
Method Detail

reify

public java.lang.Object reify(MethodCall c)
                       throws java.lang.Throwable
Description copied from interface: Proxy
Reifies a method call invoked on the object

Specified by:
reify in interface FunctionalInterfaceProxy
Throws:
java.lang.Throwable

setBodyProxy

public void setBodyProxy(Proxy proxy)
Specified by:
setBodyProxy in interface FunctionalInterfaceProxy

getBodyProxy

public Proxy getBodyProxy()
Specified by:
getBodyProxy in interface FunctionalInterfaceProxy


Copyright 2001-2005 INRIA All Rights Reserved.