📄 catalogsearchserviceimpl.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 + -