/**
  * File: 		SetMemberInfo.java
  * Content: 	part of the RMI specification of sensei gmns
  * Author: 	LuisM Pena
  * Date: 		1st December 2001
  * Version:  0.29.00
  * Last change:
  *
  **/


package sensei.middleware.gmns;

import sensei.middleware.domains.ExtendedCheckpointable;
import sensei.middleware.domains.MemberStateException;

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface SetMemberInfo extends ExtendedCheckpointable, SetMemberInfoObservable, Remote
{
  /**
   * Adds the specified element to this set if it is not already present
   */
  public boolean add(MemberInfo member) throws MemberStateException, RemoteException;

  /**
    * Removes the specified element from this set if it is present
    **/
  public boolean remove(MemberInfo handler) throws MemberStateException, RemoteException;

  /**
    * Specific operation, not existing in a normal Set, to avoid the use of an iterator
    * Returns an element of the set
    **/
  public MemberInfo get() throws MemberStateException, RemoteException;

  /**
   * Returns the contents of the set
   */
  public MemberInfo[] toArray() throws MemberStateException, RemoteException;
}