jadex.commons.future.Future类的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(5.8k)|赞(0)|评价(0)|浏览(244)

本文整理了Java中jadex.commons.future.Future类的一些代码示例,展示了Future类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Future类的具体详情如下:
包路径:jadex.commons.future.Future
类名称:Future

Future介绍

[英]Future that includes mechanisms for callback notification. This allows a caller to decide if a) a blocking call to get() should be used b) a callback shall be invoked
[中]未来,包括回调通知机制。这允许调用方决定a)是否应使用对get()的阻塞调用b)是否应调用回调

代码示例

代码示例来源:origin: org.activecomponents.jadex/jadex-applications-bdiv3

public Mood setSlogan(final String slogan)
  {
    final Future<Mood> ret = new Future<Mood>();
    SwingUtilities.invokeLater(new Runnable()
    {
      public void run()
      {
        calls.add(ret);
        slogantf.setText(""+slogan);
      }
    });
    return ret.get();
  }
}

代码示例来源:origin: org.activecomponents.jadex/jadex-applications-bdiv3

@AgentCreated
  public void init()
  {
    Future<String> fut = new Future<String>();
    
    fut.addResultListener(new IResultListener<String>()
    {
      public void resultAvailable(String message)
      {
        ack = message;
//                setAck(message);
      }
      
      public void exceptionOccurred(Exception exception)
      {
        exception.printStackTrace();
      }
    });
    
    fut.setResult("hello");
  }

代码示例来源:origin: org.activecomponents.jadex/jadex-bridge

public void exceptionOccurred(Exception exception)
  {
    ret.setException(exception);
  }
});

代码示例来源:origin: net.sourceforge.jadex/jadex-bridge

public void exceptionOccurred(Exception exception)
        {
//                    if(type.toString().indexOf("IFile")!=-1)
//                        System.out.println("Ex result: "+exception);
          if(!ret.isDone())
          {
            ret.setException(exception);
          }
        }
      });

代码示例来源:origin: org.activecomponents.jadex/jadex-commons

public <T> IFuture<T> thenCompose(final Function<? super E, IFuture<T>> function, Class<?> futuretype)
{
  final Future<T> ret = getFuture(futuretype);
  this.addResultListener(new ExceptionDelegationResultListener<E, T>(ret)
  {
    public void customResultAvailable(E result)
    {
       IFuture<T> res = function.apply(result);
       res.addResultListener(SResultListener.delegate(ret));
    }    
  });
  return ret;
}

代码示例来源:origin: org.activecomponents.jadex/jadex-platform

protected void checkFinish()
  {
    if(ongoing==0 && finished && !ret.isDone())
    {
      ret.setExceptionIfUndone(new SecurityException("Unable to retrieve certificate: "+name));
    }
  }
});

代码示例来源:origin: org.activecomponents.jadex/jadex-platform

public IFuture<Void> execute(IInternalAccess ia)
  {
    final Future<Void> ret = new Future<Void>();
    try
    {
      AbstractSendTask task = createTask(StreamSendTask.ALIVE, null, null, null);
      sendTask(task);
      task.getFuture().addResultListener(new DelegationResultListener<Void>(ret));
    }
    catch(Exception e)
    {
      ret.setException(e);
    }
    return ret;
  }
});

代码示例来源:origin: org.activecomponents.jadex/jadex-commons

/**
 *  Get the empty future of some type.
 *  @return The empty future.
 */
public static <T> IFuture<T> getEmptyFuture()
{
  return new Future<T>((T)null);
}

代码示例来源:origin: org.activecomponents.jadex/jadex-bridge

public IFuture<Void> execute(IInternalAccess ia)
  {
    ret.setResult(null);
    return IFuture.DONE;
  }
});

代码示例来源:origin: org.activecomponents.jadex/jadex-applications-micro

/**
   *  Block until the given time has passed.
   */
  public IFuture<Void>	block(long millis)
  {
    Future<Void> ret = new Future<Void>();
    if(millis>0)
    {
      agent.getComponentFeature(IExecutionFeature.class).waitForDelay(millis).get();
      ret.setResult(null);
    }
    else
    {
      // do not set result at all and block forever
      ret.get();
    }
    return ret;
  }
}

代码示例来源:origin: net.sourceforge.jadex/jadex-platform

public void customResultAvailable(Boolean res)
  {
    if(res.booleanValue())
    {
      ret.setResult(componentfactory);
    }
    else
    {
      ret.setException(new ComponentCreationException("No factory found for: "+model, ComponentCreationException.REASON_NO_COMPONENT_FACTORY));
    }
  }
}));

代码示例来源:origin: org.activecomponents.jadex/jadex-applications-bdi

/**
 *  Get the item catalog.
 *  @return  The catalog.
 */	
public IFuture<ItemInfo[]> getCatalog()
{
  IBDIXAgentFeature capa = comp.getComponentFeature(IBDIXAgentFeature.class);
  
  final Future<ItemInfo[]> ret = new Future<ItemInfo[]>();
  ret.setResult((ItemInfo[])capa.getBeliefbase().getBeliefSet("catalog").getFacts());
  return ret;
}

代码示例来源:origin: org.activecomponents.jadex/jadex-commons

public void resultAvailable(E result)
{
  synchronized(resultIndicator) {
    if (!resultIndicator.isDone()) {
      resultIndicator.setResult(null);
      action.accept(result);
      ret.setResult(null);
    }
  }
}

代码示例来源:origin: net.sourceforge.jadex/jadex-platform-base

public void run()
  {
    if(!ret.isDone())
    {
      try
      {
        transport.getConnectionManager().ping(adr);
        ret.setResultIfUndone(adr);
      }
      catch(Exception e)
      {
        crl.exceptionOccurred(e);
      }
    }
  }
});

代码示例来源:origin: org.activecomponents.jadex/jadex-platform

public void exceptionOccurred(Exception exception)
  {
    if(!found)
      ret.setExceptionIfUndone(exception);
  }
});

代码示例来源:origin: org.activecomponents.jadex/jadex-commons

/**
 * Add an functional result listener, which is only called on success.
 * Exceptions will be handled by DefaultResultListener.
 * 
 * @param sucListener The listener.
 */
public void addResultListener(IFunctionalResultListener<E> sucListener)
{
  addResultListener(sucListener, null);
}

代码示例来源:origin: org.activecomponents.jadex/jadex-kernel-bdiv3

public void resultAvailable(Object result)
{
  if(partfuture==ret)
  {
    partfuture    = null;
  }
  ret.setResultIfUndone(result);
}

代码示例来源:origin: org.activecomponents.jadex/jadex-platform

@Override
  public void run()
  {
    try
    {
      ret.setResultIfUndone(doGetPeerServers(peeraddress, ownaddress, ownid, dbstate, initial));
    }
    catch(Exception e)
    {
      ret.setExceptionIfUndone(e);
    }
  }
});

代码示例来源:origin: net.sourceforge.jadex/jadex-bridge

public IFuture<Void> execute(IInternalAccess ia)
  {
    if(!ret.isDone())
    {
      ret.sendForwardCommand(IForwardCommandFuture.Type.UPDATETIMER);
      ia.waitForDelay(w, this, realtime);
    }
    return IFuture.DONE;
  }
};

代码示例来源:origin: org.activecomponents.jadex/jadex-commons

/**
 *  Get the result - blocking call.
 *  @param timeout The timeout in millis.
 *  @return The future result.
 */
public E get(long timeout)
{
  // Default for realtime is false because normally waits should
  // use the kind of wait of the internal clock. Outbound calls 
  // might use explicitly realtime to avoid immediate simulation timeouts.
  return get(timeout, false);
}

相关文章