/**
  * File: 		BasicStateHandler.java
  * Content: 	part of the RMI specification of sensei domains
  *           Defines the basic extended interface for state transfer
  * Author: 	LuisM Pena
  * Date: 		27th October 2001
  * Version:  0.51.00
  * Last change:
  *
  **/


package sensei.middleware.domains;

import sensei.middleware.gms.GroupMember;

import java.rmi.RemoteException;

/**
  * Defines the basic extended interface for state transfer
  */
public interface BasicStateHandler extends GroupMember
{
  public void assumeState () throws RemoteException;

  public void startTransfer (int[] joiningMembers, PhaseCoordinationHolder phase) throws RemoteException;

  public State getState (PhaseCoordinationHolder phase) throws RemoteException;

  public void setState (State s, PhaseCoordination phase) throws RemoteException;

  public void stopTransfer (int [] joiningMembers, boolean transferFinished) throws RemoteException;
}