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

📄 catalogsearchserviceimpl.java

📁 基于jxta的文件共享和聊天系统源代码,下载下来分析吧
💻 JAVA
字号:
/* * Created on 12-nov-2005 * *   *//** * @author magowiz * */package catalog_search;import java.util.Vector;import gui.MainWindow;import net.jxta.document.Advertisement;import net.jxta.exception.PeerGroupException;import net.jxta.id.ID;import net.jxta.impl.protocol.ResolverQuery;import net.jxta.peergroup.PeerGroup;import net.jxta.protocol.ModuleImplAdvertisement;import net.jxta.resolver.ResolverService;import net.jxta.service.Service;/** * Implementation of the Catalog Search Service Interface, a Service that  * allow a peer to search into catalogs  * */public class CatalogSearchServiceImpl implements CatalogSearchService {	private Vector registeredListeners = new Vector();	private Vector discRegisteredListeners = new Vector();	private ResolverService resolver = null;	private Advertisement implAdvertisement = null;	private String handlerName=null;	private String discHandlerName=null;	private PeerGroup myPeerGroup=null;	private Handler handler=null;	private DiscHandler dischandler=null;	private MainWindow mw;				public void removeListener(Handler h)	{		registeredListeners.removeElement(h);	}		public void removeListener(DiscHandler dh)	{		discRegisteredListeners.removeElement(dh);			}		public synchronized void addListener(Handler h)	{		registeredListeners.addElement(h);				}		public synchronized void addListener(DiscHandler h)	{		discRegisteredListeners.addElement(h);				}		public void init(PeerGroup pg, ID id,Advertisement adv)	throws PeerGroupException	{				implAdvertisement = (ModuleImplAdvertisement) adv;		handlerName = id.toString();		discHandlerName=id.toString()+"disc";		myPeerGroup = pg;						}		public int startApp(String [] s)	{				resolver=myPeerGroup.getResolverService();				handler=new Handler(resolver,registeredListeners,handlerName,mw);				dischandler=new DiscHandler(resolver,discRegisteredListeners,discHandlerName,myPeerGroup.getPeerID());				resolver.registerHandler(handlerName,handler);				resolver.registerHandler(discHandlerName, dischandler);		this.addListener(dischandler);		this.addListener(handler);					return 0;	}		public void stopApp()	{				// Unregister ourselves as a listener.        if (resolver != null)        {            resolver.unregisterHandler(handlerName);        }            }		public Advertisement getImplAdvertisement()	{		 return implAdvertisement;	}		public Service getInterface()	{		 return this;	 	}	 public void search(String t, String d,String [] c,int qid,MainWindow mw,boolean ow,boolean op)	 {		 		 handler.setMainWindow(mw);		 Vector [] pids=null;		 		 if(resolver!=null)		 {			 boolean ol=false;			 int count=0;			 if(c.length>0){				 for(int i=0;i<c.length;i++)				 {					 if(c[i].equals("Local Peer Catalog"))					 {						 count++;					 }				 }			 if (count==c.length)				 ol=true;				 			 }			 if((c.length>0)&&(!ol)){				 pids=null;				 			 CatalogSearchDiscQuery csdq;			 for (int i=0;i<c.length;i++)			 {				 				 if(!c[i].equals("Local Peer Catalog")){					 	csdq=new CatalogSearchDiscQuery(c[i]);					 	ResolverQuery rq = new ResolverQuery(discHandlerName,						 null, myPeerGroup.getPeerID().toString(), csdq.toString(), qid);			  			resolver.sendQuery(null,rq);					 }			 }			 			 			 while(!dischandler.isTableReady())			 {				 try{Thread.sleep(5000);}catch(InterruptedException ie){}			 }			 pids=dischandler.getTable();						 for (int i=0; i<pids[0].size();i++)			 {				 c=new String[1];				 c[0]=(String)pids[1].elementAt(i);				 String id=pids[0].elementAt(i).toString();				 CatalogSearchQuery query;					 query=new CatalogSearchQuery(t,d,c,mw,false,false);		   				 ResolverQuery rq = new ResolverQuery(handlerName,						 null, myPeerGroup.getPeerID().toString(), query.toString(), qid);		  				resolver.sendQuery(id,rq);		  	}			 			}			 if(ow)			 	{				 				 CatalogSearchQuery query;					 query=new CatalogSearchQuery(t,d,null,mw,ow,false);		   				 ResolverQuery rq = new ResolverQuery(handlerName,						 null, myPeerGroup.getPeerID().toString(), query.toString(), qid);		  				resolver.sendQuery(null,rq);				 			 	}			 if(op)			 {				 				 CatalogSearchQuery query;					 query=new CatalogSearchQuery(t,d,null,mw,false,op);		   				 ResolverQuery rq = new ResolverQuery(handlerName,						 null, myPeerGroup.getPeerID().toString(), query.toString(), qid);		  				resolver.sendQuery(null,rq);				 			 }					 }			 			 			 			 			 			 }	 	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -