📄 catalogexchangeserviceimpl.java
字号:
/* * Created on 27-nov-2005 * *//** * @author magowiz * * */package catalog_exchange;import java.net.URL;import java.util.Date;import java.util.Vector;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 Exchange Service Interface, a Service that * allow a peer to get a catalog from another peer or web * */public class CatalogExchangeServiceImpl implements CatalogExchangeService { private Vector registeredListeners = new Vector(); private ResolverService resolver = null; private Advertisement implAdvertisement = null; private String handlerName=null; private PeerGroup myPeerGroup=null; private CatalogHandler handler=null; private CatalogManager catman=null; //private int catn=0; public void catRefresh() { CatalogInfo[] ci=catman.getInfo(); for (int i=0; i<ci.length;i++) { if(ci[i]!=null){ long dl=ci[i].getDownloadDate(); Date d=new Date(dl); Date s=new Date(System.currentTimeMillis()); s.setDate(s.getDate()-3); if(d.before(s)&&(!ci[i].getCatalogName().equals("*"))) { System.out.println("older"); this.refreshCatalogFromWeb(ci[i].getCatalogName(), ci[i].getCatalogUrl()); } } } } public boolean refreshCatalogFromWeb(String cn, URL u) { return handler.catRWeb(cn, u); } public boolean getCatalogFromWeb(String cn, URL u) { return handler.catWeb(cn,u); } public boolean isInLocalCache(String cn) { boolean r=false; if (catman.search(cn)!=-1) r=true; return r; } public boolean catDelete(String cname) { return catman.delete(cname); } public boolean getCatalog(int qid,String cn,URL u){ boolean s=true; if(resolver!=null) { CatalogExchangeQuery query; if(catman.getCatalog(cn)==null){query=new CatalogExchangeQuery(cn,u);} else{query=new CatalogExchangeQuery(cn,u,catman.getCatalogLastModified(cn).getTime());} //System.out.println(handlerName); //System.out.println(query.toString()); ResolverQuery rq = new ResolverQuery(handlerName, null, myPeerGroup.getPeerID().toString(), query.toString(), qid); resolver.sendQuery(null,rq); } return s;} public void removeListener(CatalogExchangeListener cl) { registeredListeners.removeElement(cl); } public synchronized void addListener(CatalogExchangeListener cl) { registeredListeners.addElement(cl); } public void init(PeerGroup pg, ID id,Advertisement adv) throws PeerGroupException { implAdvertisement = (ModuleImplAdvertisement) adv; handlerName = id.toString(); myPeerGroup = pg; } public int startApp(String [] s) { resolver=myPeerGroup.getResolverService(); catman=new CatalogManager(10); handler=new CatalogHandler(resolver,registeredListeners,handlerName,catman); resolver.registerHandler(handlerName,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; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -