private void determineAndAddNewMemberJoins() { final List<GMSMember> newMembership = getCurrentView(); String token; if (views.size() == 1) { if (newMembership.size() > 1) { for (GMSMember member : newMembership) { token = member.getMemberToken(); if (!token.equals(getGMSContext().getServerIdentityToken())) { syncDSC(token); } if (member.getMemberType().equalsIgnoreCase(CORETYPE)) { addJoinNotificationSignal(token, member.getGroupName(), member.getStartTime()); } } } } else if (views.size() > 1) { final List<String> oldMembers = getTokens(getPreviousView()); for (GMSMember member : newMembership) { token = member.getMemberToken(); if (!oldMembers.contains(token)) { syncDSC(token); if (member.getMemberType().equalsIgnoreCase(CORETYPE)) { addJoinNotificationSignal(token, member.getGroupName(), member.getStartTime()); } } } } }
private void determineAndAddNewMemberJoins() { final List<GMSMember> newMembership = getCurrentView(); String token; if (views.size() == 1) { if (newMembership.size() > 1) { for (GMSMember member : newMembership) { token = member.getMemberToken(); if (!token.equals(getGMSContext().getServerIdentityToken())) { syncDSC(token); } if (member.getMemberType().equalsIgnoreCase(CORETYPE)) { addJoinNotificationSignal(token, member.getGroupName(), member.getStartTime()); } } } } else if (views.size() > 1) { final List<String> oldMembers = getTokens(getPreviousView()); for (GMSMember member : newMembership) { token = member.getMemberToken(); if (!oldMembers.contains(token)) { syncDSC(token); if (member.getMemberType().equalsIgnoreCase(CORETYPE)) { addJoinNotificationSignal(token, member.getGroupName(), member.getStartTime()); } } } } }
private void addNewMemberJoins(final EventPacket packet) { final SystemAdvertisement advert = packet.getSystemAdvertisement(); final GMSMember member = Utility.getGMSMember(advert); final String token = member.getMemberToken(); final List<String> oldMembers = getTokens(getPreviousView()); RejoinSubevent rjse = getGMSContext().getInstanceRejoins().get(packet.getSystemAdvertisement().getName()); if (logger.isLoggable(Level.FINE)) { logger.log(Level.FINE, "addNewMemberJoins: member: " + member + " joined group time:" + new Date(Utility.getStartTime(advert)) + " rejoin subevent=" + rjse); } // Series of checks needed to avoid duplicate ADD messages. // This conditional was added to avoid duplicate ADD events caused // by GroupLeaderShip change notifications. // The coordinator handles ADD event differently than all other members. // Lastly, this instance is always added to view so let ADD event through w/o check for this instance. if (isCoordinator() || ! oldMembers.contains(token) || rjse != null || token.compareTo(getGMSContext().getServerIdentityToken()) == 0) { if (packet.getClusterView().getSize() > 1) { // TODO: Figure out a better way to sync syncDSC(advert.getID()); } if (member.isCore()) { addJoinNotificationSignal(token, member.getGroupName(), member.getStartTime()); } } }
private void addNewMemberJoins(final EventPacket packet) { final SystemAdvertisement advert = packet.getSystemAdvertisement(); final GMSMember member = Utility.getGMSMember(advert); final String token = member.getMemberToken(); final List<String> oldMembers = getTokens(getPreviousView()); RejoinSubevent rjse = getGMSContext().getInstanceRejoins().get(packet.getSystemAdvertisement().getName()); if (logger.isLoggable(Level.FINE)) { logger.log(Level.FINE, "addNewMemberJoins: member: " + member + " joined group time:" + new Date(Utility.getStartTime(advert)) + " rejoin subevent=" + rjse); } // Series of checks needed to avoid duplicate ADD messages. // This conditional was added to avoid duplicate ADD events caused // by GroupLeaderShip change notifications. // The coordinator handles ADD event differently than all other members. // Lastly, this instance is always added to view so let ADD event through w/o check for this instance. if (isCoordinator() || ! oldMembers.contains(token) || rjse != null || token.compareTo(getGMSContext().getServerIdentityToken()) == 0) { if (packet.getClusterView().getSize() > 1) { // TODO: Figure out a better way to sync syncDSC(advert.getID()); } if (member.isCore()) { addJoinNotificationSignal(token, member.getGroupName(), member.getStartTime()); } } }