1 /* 2 * Copyright (c) 1998-2002 The Jgroup Team. 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License version 2 as 6 * published by the Free Software Foundation. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU Lesser General Public License for more details. 12 * 13 * You should have received a copy of the GNU Lesser General Public License 14 * along with this program; if not, write to the Free Software 15 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 16 * 17 */ 18 19 package jgroup.relacs.mss; 20 21 import jgroup.core.EndPoint; 22 import jgroup.core.MemberId; 23 import jgroup.relacs.events.Event; 24 import jgroup.util.InMessage; 25 26 /** 27 * The <code>MssUser</code> interface should be implemented by layers 28 * using the Mss to receive callback notifications from the Mss itself. 29 * 30 * @author Alberto Montresor 31 * @since Jgroup 0.1 32 */ 33 public interface MssUser 34 { 35 36 /** 37 * Invoked to notify the objects implementing this interface that 38 * a message from a remote member has been received. 39 * 40 * @param tag the tag identifying the type of message 41 * @param stream the message, represented by a <CODE>InMessage</CODE> 42 * object 43 * @param src the sender of the message 44 */ 45 public void remoteReceive(byte tag, InMessage data, EndPoint host); 46 47 /** 48 * Invoked to notify the objects implementing this interface that 49 * a message from a local member has been received. 50 * 51 * @param event represents the received message 52 */ 53 public void localReceive(Event upcall); 54 55 /** 56 * Invoked to notify the objects implementing this interface that 57 * a variation in the perceived reachability set has been perceived. 58 * 59 * @param trset set of all (total) reachables hosts 60 * @param nrset set of reachable hosts that were unreachable 61 * @param nuset set of unreachable hosts that were reachable 62 * @param newinc set of hosts who has a new incarnation identifier 63 */ 64 public void remoteSuspect(EndPoint[] rset, EndPoint[] nrset, EndPoint[] nuset, EndPoint[] newinc); 65 66 /** 67 * Invoked to notify the objects implementing this interface that 68 * a remote object is not responding to remote method invocations, 69 * and thus should be crashed. 70 * 71 * @param membId a callback object identifying the suspected object; 72 * this object has been stored in the Mss through the 73 * <code>addPingListener</code> method invocation on the Mss. 74 */ 75 public void localSuspect(MemberId membId); 76 77 } // END MssUser