📄 cfpgquerylistener.java
字号:
package com.cn.darkblue.listener;
import java.util.Enumeration;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.cn.darkblue.helper.IMsgScreen;
import com.cn.darkblue.util.CFDefData;
import com.cn.darkblue.util.CFResource;
import com.cn.darkblue.util.CFUtil;
import net.jxta.discovery.DiscoveryEvent;
import net.jxta.discovery.DiscoveryListener;
import net.jxta.document.MimeMediaType;
import net.jxta.peergroup.PeerGroup;
import net.jxta.platform.NetworkConfigurator;
import net.jxta.protocol.DiscoveryResponseMsg;
import net.jxta.protocol.PeerAdvertisement;
import net.jxta.protocol.PeerGroupAdvertisement;
public class CFPGQueryListener implements DiscoveryListener{
private static final Log log = LogFactory.getLog(CFPGQueryListener.class);
//NetworkConfigurator worldGroupConfig = NetworkConfigurator.n;
PeerGroup parentPg = null;
Map conditions = null;
IMsgScreen screen = null;
public CFPGQueryListener(PeerGroup peergroup){
parentPg = peergroup;
}
public void init(Map condMap,IMsgScreen msgScreen){
conditions = condMap;
screen = msgScreen;
}
public void discoveryEvent(DiscoveryEvent ev) {
DiscoveryResponseMsg res = ev.getResponse();
PeerAdvertisement peerAdv = res.getPeerAdvertisement();
String name = "unknown";
String descr = "";
String id = "";
if (peerAdv != null) {
name = peerAdv.getName();
id = peerAdv.getPeerID().toString();
}
String msg = " 获得一个发现回馈消息 [" + res.getResponseCount() + "] 来自于peer Name: " + name;
log.info(msg + " ID:"+id);
//screen.println(msg);
PeerGroupAdvertisement pga = null;
Object obj;
PeerGroup findPg = null;
Enumeration en = res.getAdvertisements();
if (en != null) {
while (en.hasMoreElements()) {
obj = en.nextElement();
if(obj instanceof PeerGroupAdvertisement){
pga = (PeerGroupAdvertisement) obj;
log.info(pga.getDocument(MimeMediaType.XMLUTF8).toString());
/*
id = pga.getPeerGroupID().toString();
name = pga.getName();
descr = pga.getDescription();
if(areadyCatched(id)) continue;
if(CFUtil.checkConditions(conditions,name,descr,id))
try {
System.out.println("this Class loader = "+this.getClass().getClassLoader());
System.out.println("parentPg Class loader = "+parentPg.getClass().getClassLoader());
findPg = parentPg.newGroup(pga.getPeerGroupID(),pga,name,descr);
} catch (net.jxta.exception.PeerGroupException e) {//
log.error(e.getMessage());
e.printStackTrace();
}
if(findPg!=null){
// if(!CFResource.getInstance().getCurrSearchGroup().contains(findPg))
// CFResource.getInstance().getCurrSearchGroup().add(findPg);
if(!CFResource.getInstance().getGroupCache().contains(findPg))
CFResource.getInstance().getGroupCache().add(findPg);
//screen.println("查询到一个组:"+name+" , "+descr);
log.info("查询到一个组:"+name+" , "+descr);
}
*/
}
}
}
}
private boolean areadyCatched(String id){
PeerGroup pg = null;
for(int i=0;i<CFResource.getInstance().getGroupCache().size();i++){
pg = (PeerGroup)CFResource.getInstance().getGroupCache().get(i);
if(id.equals(pg.getPeerGroupID()))
return true;
}
return false;
}
/*
private boolean checkConditions(String name,String descr,String id){
String cond;
Object obj = conditions.get(CFDefData.NAME_STR);
if(obj!=null){
cond = obj.toString();
if(!cond.equalsIgnoreCase(name))
return false;
}
obj = conditions.get(CFDefData.DESCRIPTION_STR);
if(obj!=null){
cond = obj.toString();
if(descr.toUpperCase().indexOf(cond.toUpperCase())==-1)
return false;
}
obj = conditions.get(CFDefData.ID_STR);
if(obj!=null){
cond = obj.toString();
if(!cond.equalsIgnoreCase(id))
return false;
}
return true;
}
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -