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

import java.io.Serializable;
import java.util.List;

/** The public DistributedReplicantManager user service interface
 * 
 * @author Scott.Stark@jboss.org
 * @version $Revison:$
 */
public interface IReplicants
{
   public static class NotifyData implements Serializable
   {
      static final long serialVersionUID = -1698998375571817852L;
      public Serializable key;
      public List newReplicants;
      public int newReplicantsViewId;
      public String toString()
      {
         StringBuffer tmp = new StringBuffer();
         tmp.append("key:");
         tmp.append(key);
         tmp.append(", newReplicants:");
         tmp.append(newReplicants);
         return tmp.toString();
      }
   }

   public Serializable lookupLocalReplicant();
   public Serializable lookupLocalReplicant(String key);
   public List lookupReplicants();
   public List lookupReplicants(String key);
   public void add(String key, Serializable data)
      throws Exception;
   public void remove(String key)
      throws Exception;
}
