org.objectweb.carol.cmi
Class Distributor

java.lang.Object
  extended byorg.objectweb.carol.cmi.Distributor

public abstract class Distributor
extends java.lang.Object

Each clustered server object has to be accompanied by a class which extends this one to specify configuration information. It specifies how the replicates will be accessed by the clients, and how replicates are recognized in the cluster.

For CMI to load this configuration, the class has to be named under the form : full.ServerClass_Cmi

It must provide a constructor without parameter. The results should be constant in the cluster so that each server and client uses the same configuration.

Author:
Simon Nieuviarts

Constructor Summary
Distributor()
           
 
Method Summary
 StubData choose(java.lang.reflect.Method method, java.lang.Object[] parameters)
          Choose a stub among the stub list The application deployer can override this method to make its own choices.
abstract  boolean equivAtBind()
          To be overriden
abstract  boolean equivAtExport()
          To be overriden
protected  java.util.Set getCurrentState()
          Get the current state of the stubs
 Decision onException(StubData sd, java.lang.Exception ex)
          Decison on Exception The application deployer can override this method to make its own choices.
 Decision onReturn(StubData sd, java.lang.Object retVal)
          Decision on return The application deployer can override this method to make its own choices.
protected  void removeStub(StubData sd)
          Remove a stub in the list
 java.lang.String toContentsString()
          Build a readable view of the stub list
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Distributor

public Distributor()
Method Detail

getCurrentState

protected java.util.Set getCurrentState()
Get the current state of the stubs

Returns:
set of stubs

removeStub

protected void removeStub(StubData sd)
Remove a stub in the list

Parameters:
sd - stub

equivAtBind

public abstract boolean equivAtBind()
To be overriden

Returns:
true if the bound object have to be clustered

equivAtExport

public abstract boolean equivAtExport()
To be overriden

Returns:
true if the export object have to be clustered

choose

public StubData choose(java.lang.reflect.Method method,
                       java.lang.Object[] parameters)
                throws NoServerException
Choose a stub among the stub list The application deployer can override this method to make its own choices.

Parameters:
method - calling method
parameters - parameters of the calling method
Throws:
NoServerException - if no server available

onException

public Decision onException(StubData sd,
                            java.lang.Exception ex)
Decison on Exception The application deployer can override this method to make its own choices.

Parameters:
sd - stub data
ex - exception
Returns:
decision

onReturn

public Decision onReturn(StubData sd,
                         java.lang.Object retVal)
Decision on return The application deployer can override this method to make its own choices.

Parameters:
sd - stub data
retVal - return value
Returns:
decision

toContentsString

public java.lang.String toContentsString()
Build a readable view of the stub list

Returns:
string

toString

public java.lang.String toString()
Returns:
readable view of the stub list