?? rendezvoustracker.java
字號:
/**
* -- Copyright (C) 2006 Hisham Khalil. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
*
* Author: Hisham Khalil <hishberlin@hotmail.com>
*/
package connex.core.WS;
import java.util.Enumeration;
import net.jxta.peergroup.PeerGroup;
import net.jxta.rendezvous.*;
import org.apache.log4j.Logger;
import java.util.Vector;
public class RendezvousTracker implements RendezvousListener {
private RendezVousService rendezvousService;
private PeerGroup peerGroup;
private String rdvID;
/**
* @associates connex.core.WS.RdvListener
* @directed
*/
private Vector rdvListeners;
public RendezvousTracker(PeerGroup peerGroup) {
rdvListeners = new Vector();
this.peerGroup = peerGroup;
Logger.getLogger("connex.core.WS.Boot").info(
"RendezvousTracker started for " +
peerGroup.getPeerName() + ";");
rendezvousService = peerGroup.getRendezVousService();
rendezvousService.addListener(this);
}
public String getCurrentConnectedRendezvous() {
Enumeration rendezvous = rendezvousService.getConnectedRendezVous();
if (rendezvous.hasMoreElements()) {
return rendezvous.nextElement().toString();
} else {
return null;
}
}
public void rendezvousEvent(RendezvousEvent e) {
String event;
switch (e.getType()) {
case 0:
event = "rendezvous connect";
rdvID = e.getPeerID().toString();
break;
case 1:
event = "rendezvous reconnect";
break;
case 2:
event = "client connect";
break;
case 6:
event = "client disconnect";
break;
case 7:
event = "client failed";
break;
case 3:
event = "client reconnect";
break;
case 4:
event = "rendezvous disconnect";
break;
case 5:
event = "rendezvous failed";
break;
case 8:
event = "became rendezvous";
break;
case 9:
event = "became edge";
break;
default:
event = "Unknown: " + e.getType();
break;
}
this.dispatchEvent(event);
}
public String getConnectedRdvID() {
return rdvID;
}
public void addListener(RdvListener rdvListener) {
rdvListeners.addElement(rdvListener);
}
public void removeListener(RdvListener rdvListener) {
rdvListeners.removeElement(rdvListener);
rendezvousService.removeListener(this);
}
public void dispatchEvent(String e) {
java.util.Enumeration enumeration = rdvListeners();
while (enumeration.hasMoreElements()) {
((RdvListener) enumeration.nextElement()).update(e);
}
}
public Enumeration rdvListeners() {
return ((java.util.Vector) rdvListeners.clone()).elements();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -