⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cfpgquerylistener.java

📁 CoolFace是基于jxta的P2P系统
💻 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 + -