gmsimpl.java
来自「JGRoups源码」· Java 代码 · 共 60 行
JAVA
60 行
// $Id: GmsImpl.java,v 1.5 2005/08/11 12:43:47 belaban Exp $package org.jgroups.protocols;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.jgroups.*;import java.util.Vector;public abstract class GmsImpl { protected GMS gms=null; protected final Log log=LogFactory.getLog(getClass()); final boolean warn=log.isWarnEnabled(); public abstract void init(); // initialize variables public abstract void join(Address mbr); public abstract void leave(Address mbr); public abstract void suspect(Address mbr); public abstract void merge(Vector coords); public abstract boolean handleJoin(Address mbr); public abstract void handleLeave(Address mbr, boolean suspected); public abstract void handleViewChange(ViewId new_view, Vector mbrs); public abstract View handleMerge(ViewId other_view,Vector other_members); public abstract void handleSuspect(Address mbr); public boolean handleUpEvent(Event evt) {return true;} public boolean handleDownEvent(Event evt) {return true;} protected void wrongMethod(String method_name) { if(log.isErrorEnabled()) log.error("method " + method_name + "() should not be sent to an instance of " + getClass().getName()); } /** Returns potential coordinator based on lexicographic ordering of member addresses. Another approach would be to keep track of the primary partition and return the first member if we are the primary partition. */ protected boolean iWouldBeCoordinator(Vector new_mbrs) { Membership tmp_mbrs=gms.mbrs.copy(); tmp_mbrs.merge(new_mbrs, null); tmp_mbrs.sort(); if(tmp_mbrs.size() <= 0 || gms.local_addr == null) return false; return gms.local_addr.equals(tmp_mbrs.elementAt(0)); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?