📄 basereadernotificationimpl.java
字号:
/* * BadgeAsynchronousThreadImpl.java * * Created on August 1, 2003, 5:49 PM */package gov.nist.examples.bps.reader;import java.util.*;import gov.nist.examples.bps.reader.baselistener.*;import gov.nist.examples.bps.reader.presence.*;/** * * @author Deruelle Olivier */public class BaseReaderNotificationImpl extends Thread implements BadgeNotification { private Vector activeBadges; protected Vector garbageBadgesList; protected BaseReader baseReader; /** Creates a new instance of BadgeAsynchronousThreadImpl */ public BaseReaderNotificationImpl(BaseReader baseReader) { activeBadges=new Vector(); garbageBadgesList=new Vector(); this.baseReader=baseReader; } /* * Called everytime a badge is received */ public void processBadge(Badge badge) { try{ BaseReaderDebug.println("Badge Notification received: - ID hex: "+badge.getBadgeIdHex()+" ; Id dec: "+ badge.getBadgeId() ); if ( !hasActiveBadge(badge) ) { addActiveBadge(badge); BadgeGarbageThread badgeGarbageThread=new BadgeGarbageThread(badge,this); badgeGarbageThread.start(); garbageBadgesList.addElement(badgeGarbageThread); } else { for (int i=0;i< garbageBadgesList.size();i++) { BadgeGarbageThread badgeGarbageThread=(BadgeGarbageThread) garbageBadgesList.elementAt(i); if ( badgeGarbageThread.badge.getBadgeId().equals(badge.getBadgeId()) ) badgeGarbageThread.registered=true; } } } catch(Exception e) { e.printStackTrace(); } } public boolean hasActiveBadge(Badge badgeParam) { synchronized ( activeBadges) { for (int i=0;i<activeBadges.size();i++) { Badge badge=(Badge)activeBadges.elementAt(i); if ( badge.getBadgeId().equals(badgeParam.getBadgeId()) ) return true; } return false; } } public void addActiveBadge(Badge badge) { synchronized ( activeBadges) { activeBadges.addElement(badge); BaseReaderDebug.println("###########################################"+ "###################################################################"); BaseReaderDebug.println("BaseReaderNotificationImpl, addBadge(),"+ " we added the badge: "+badge.getBadgeId() ); BaseReaderDebug.println("###########################################"+ "###################################################################"); PresenceManager presenceManager=baseReader.getPresenceManager(); String xmlBody="<?xml version='1.0' encoding='us-ascii'?>\n"+ "<badges>\n"; for (int i=0;i<activeBadges.size();i++) { Badge badgeT=(Badge)activeBadges.elementAt(i); xmlBody+=badgeT.toXMLString()+"\n"; } xmlBody+="</badges>\n"; presenceManager.sendNotifyToAllSubscribers(xmlBody); } } public void removeActiveBadge(Badge badge) { synchronized ( activeBadges) { activeBadges.remove(badge); BaseReaderDebug.println("###########################################"+ "###################################################################"); BaseReaderDebug.println("BaseReaderNotificationImpl, removeBadge(),"+ " we removed the badge: "+badge.getBadgeId() ); BaseReaderDebug.println("###########################################"+ "###################################################################"); PresenceManager presenceManager=baseReader.getPresenceManager(); String xmlBody="<?xml version='1.0' encoding='us-ascii'?>\n"+ "<badges>\n"; for (int i=0;i<activeBadges.size();i++) { Badge badgeT=(Badge)activeBadges.elementAt(i); xmlBody+=badgeT.toXMLString()+"\n"; } xmlBody+="</badges>\n"; presenceManager.sendNotifyToAllSubscribers(xmlBody); } } public Vector getActiveBadges() { synchronized ( activeBadges) { return activeBadges; } } public String getActiveBadgesXMLBody() { synchronized ( activeBadges) { String xmlBody="<?xml version='1.0' encoding='us-ascii'?>\n"+ "<badges>\n"; for (int i=0;i<activeBadges.size();i++) { Badge badgeT=(Badge)activeBadges.elementAt(i); xmlBody+=badgeT.toXMLString()+"\n"; } xmlBody+="</badges>\n"; return xmlBody; } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -