public ISubscriptionIntermediateFuture<String> subscribeToLottery() { final SubscriptionIntermediateFuture<String> ret = new SubscriptionIntermediateFuture<String>(); // final TerminableIntermediateFuture<String> ret = (TerminableIntermediateFuture<String>)SFuture.getNoTimeoutFuture(TerminableIntermediateFuture.class, agent); ret.setTerminationCommand(new ITerminationCommand() { public void terminated(Exception reason) { subscriptions.remove(ret); } public boolean checkTermination(Exception reason) { return true; } }); subscriptions.add(ret); return ret; }
/** * */ protected void publishEvent(RuleEvent event) { for(SubscriptionIntermediateFuture<RuleEvent> sub: resubscribers) { if(!sub.addIntermediateResultIfUndone(event)) { resubscribers.remove(sub); } } } }
/** * */ public ISubscriptionIntermediateFuture<String> test() { SubscriptionIntermediateFuture<String> ret = new SubscriptionIntermediateFuture<String>(); ret.addIntermediateResult("a"); ret.addIntermediateResult("b"); ret.addIntermediateResult("c"); ret.setFinished(); return ret; } }
/** * Subscribe to rule executions. */ public ISubscriptionIntermediateFuture<RuleEvent> subscribeToEngine() { final SubscriptionIntermediateFuture<RuleEvent> ret = (SubscriptionIntermediateFuture<RuleEvent>)SFuture.getNoTimeoutFuture(SubscriptionIntermediateFuture.class, agent); ret.setTerminationCommand(new TerminationCommand() { public void terminated(Exception reason) { resubscribers.remove(ret); } }); resubscribers.add(ret); // signal with null subscribe done ret.addIntermediateResultIfUndone(null); return ret; }
return new SubscriptionIntermediateFuture<byte[]>(new RuntimeException("Stream has reader")); ifuture = new SubscriptionIntermediateFuture<byte[]>(new ITerminationCommand() ifuture.addIntermediateResultIfUndone(next); ifuture.setFinishedIfUndone();
final SubscriptionIntermediateFuture<String> ret = new SubscriptionIntermediateFuture<String>(); if(!ret.addIntermediateResultIfUndone(fn+"."+fi.getName())) if(file.isDirectory() && !ret.isDone()) ret.setFinishedIfUndone(); ret.setFinishedIfUndone();
final SubscriptionIntermediateFuture<ChangeEvent<Object>> ret = new SubscriptionIntermediateFuture<ChangeEvent<Object>>(); ret.setTerminationCommand(new TerminationCommand() ret.addIntermediateResultIfUndone(null); ret.addIntermediateResultIfUndone(new ChangeEvent<Object>(null, PROPERTY_KEYSTORESETTINGS, new String[]{storepath, storepass, keypass})); ret.addIntermediateResultIfUndone(new ChangeEvent<Object>(null, PROPERTY_KEYSTOREENTRIES, null)); ret.addIntermediateResultIfUndone(new ChangeEvent<Object>(null, PROPERTY_PLATFORMPASS, platformpasses)); ret.addIntermediateResultIfUndone(new ChangeEvent<Object>(null, PROPERTY_NETWORKPASS, networkpasses)); ret.addIntermediateResultIfUndone(new ChangeEvent<Object>(null, PROPERTY_LOCALPASS, password)); ret.addIntermediateResultIfUndone(new ChangeEvent<Object>(null, PROPERTY_USEPASS, usepass? Boolean.TRUE: Boolean.FALSE)); ret.addIntermediateResultIfUndone(new ChangeEvent<Object>(null, PROPERTY_TRUSTEDLAN, trustedlan? Boolean.TRUE: Boolean.FALSE)); ret.addIntermediateResultIfUndone(new ChangeEvent<Object>(null, PROPERTY_SELECTEDMECHANISM, selmech)); ret.addIntermediateResultIfUndone(new ChangeEvent<Object>(null, PROPERTY_VALIDITYDURATION, Long.valueOf(valdur)));
final SubscriptionIntermediateFuture<String> ret = new SubscriptionIntermediateFuture<String>(); ret.setFinished(); return ret; for(int i=0; i<urls.length && !ret.isDone(); i++) for(Enumeration<JarEntry> e=jar.entries(); e.hasMoreElements() && !ret.isDone(); ) ret.addIntermediateResultIfUndone(je.getName());
ret.setTerminationCommand(tcom); ret.addIntermediateResult(subscribed); ret.addIntermediateResult(bme);
/** * Subscribe to events from the chat service. * @return A future publishing chat events as intermediate results. */ public ISubscriptionIntermediateFuture<ChatEvent> subscribeToEvents() { if(subscribers==null) { subscribers = new LinkedHashSet<SubscriptionIntermediateFuture<ChatEvent>>(); } SubscriptionIntermediateFuture<ChatEvent> ret = new SubscriptionIntermediateFuture<ChatEvent>(); subscribers.add(ret); return ret; }
ifuture.addIntermediateResultIfUndone(next); ifuture.setFinishedIfUndone();
final SubscriptionIntermediateFuture<Email> ret = new SubscriptionIntermediateFuture<Email>(); ret.setException(new RuntimeException("No email account given.")); return ret; ret.setTerminationCommand(tcom);
final SubscriptionIntermediateFuture<Long> ret = new SubscriptionIntermediateFuture<Long>(); ret.setExceptionIfUndone(e);
/** * Publish events to all subscribers. */ protected void publishEvent(ChangeEvent<Object> event) { for(SubscriptionIntermediateFuture<ChangeEvent<Object>> sub: subscribers) { sub.addIntermediateResult(event); } }
/** * Search for services. */ // read public <T> ISubscriptionIntermediateFuture<T> searchServices(ClassInfo type, IComponentIdentifier cid, String scope, IAsyncFilter<T> filter) { final SubscriptionIntermediateFuture<T> ret = new SubscriptionIntermediateFuture<T>(); Iterator<T> sers = (Iterator<T>)getServices(type); if(sers!=null && sers.hasNext() && !RequiredServiceInfo.SCOPE_NONE.equals(scope)) { Collection<T> ssers = checkScope(sers, cid, scope, false); checkAsyncFilters(filter, ssers.iterator()).addResultListener(new IntermediateDelegationResultListener<T>(ret)); // filter checks in loop are possibly performed outside of synchornized block // searchLoopServices(filter, sers, cid, scope).addResultListener(new IntermediateDelegationResultListener<T>(ret)); } else { ret.setFinished(); } return ret; }
public void finished() { // System.out.println("finiiii"); ret.setFinishedIfUndone(); } });
public void customResultAvailable(Void result) { long dur = System.currentTimeMillis()-start; // System.out.println("Needed for listJarFileEntries: "+dur/1000); // for(Tuple2<String, RemoteJarFile> tmp: ires) // { // Collection<FileData> dir = rjfentries.get(tmp.getFirstEntity()); // if(dir==null) // { // dir = new ArrayList<FileData>(); // rjfentries.put(tmp.getFirstEntity(), dir); // } // dir.add(tmp.getSecondEntity()); // } // // RemoteJarFile rjf = new RemoteJarFile(jad.getName(), jad.getAbsolutePath(), true, // FileData.getDisplayName(jad), rjfentries, "/", jad.getLastModified(), File.separatorChar, SUtil.getPrefixLength(jad), jad.length()); // Collection<FileData> files = rjf.listFiles(); // System.out.println("size is: "+files.size()); BunchFileData dat = new BunchFileData(ires); // BunchFileData dat = new BunchFileData((Collection)ires); ret.addIntermediateResult(dat); ret.setFinished(); }
public IFuture<Void> execute(IInternalAccess ia) { for(int i=1; !ret.isDone(); i++) { ia.getComponentFeature(IExecutionFeature.class).waitForDelay(millis).get(); ret.addIntermediateResult(Integer.valueOf(i)); } return IFuture.DONE; } });
/** * Perform cleanup in shutdown or kill. */ protected void doCleanup() { if(resfuts!=null) { Exception ex = getComponent().getException(); if(ex!=null) { for(SubscriptionIntermediateFuture<Tuple2<String, Object>> fut: resfuts) { fut.setExceptionIfUndone(ex); } } else { for(SubscriptionIntermediateFuture<Tuple2<String, Object>> fut: resfuts) { fut.setFinishedIfUndone(); } } resfuts = null; } }
/** * Subscribe to events from the chat service. * @return A future publishing chat events as intermediate results. */ public ISubscriptionIntermediateFuture<ChatEvent> subscribeToEvents() { // final SubscriptionIntermediateFuture<ChatEvent> ret = new SubscriptionIntermediateFuture<ChatEvent>(); final SubscriptionIntermediateFuture<ChatEvent> ret = (SubscriptionIntermediateFuture<ChatEvent>)SFuture.getNoTimeoutFuture(SubscriptionIntermediateFuture.class, agent); if(subscribers==null) { subscribers = new LinkedHashSet<SubscriptionIntermediateFuture<ChatEvent>>(); } subscribers.add(ret); ret.setTerminationCommand(new TerminationCommand() { public void terminated(Exception reason) { subscribers.remove(ret); } }); return ret; }