/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.cache;

import org.jgroups.blocks.MethodCall;

import java.util.List;

/**
 * Defines an entity able to receive replications
 * @author Bela Ban
 * @version $Id: Replicatable.java,v 1.1.6.1 2005/04/06 21:07:11 starksm Exp $
 */
public interface Replicatable {

   /**
    * Receives and applies a method call as result of replication
    * @param method_call
    * @return
    * @throws Throwable
    */
   Object replicate(MethodCall method_call) throws Throwable;

   /**
    * Receives and applies a number of method calls
    * @param method_calls
    * @throws Throwable
    */
   void replicate(List method_calls) throws Throwable;
}