コード例 #1
0
ファイル: DAOAgentPool.java プロジェクト: srvarey/postion
 public static void register(GaiaDAOAgent agent) {
   if (daoAgentList == null) {
     try {
       daoAgentList = new ArrayList();
       daoCallerAgent = new DAOCallerAgent();
       String containerName = agent.getContainerController().getContainerName();
       Integer id = new Integer(containerName.substring(6));
       AgentController controller =
           agent
               .getContainerController()
               .acceptNewAgent(
                   DAOCallerAgent.class.getSimpleName() + "-" + id + "-0", daoCallerAgent);
       controller.start();
       positionCallerAgent = new DAOCallerAgent();
       logger.error("accept agent PositionCallerAgent-" + id + "-0 from " + agent.getName());
       controller =
           agent
               .getContainerController()
               .acceptNewAgent("PositionCallerAgent-" + id + "-0", positionCallerAgent);
       controller.start();
     } catch (ControllerException | NumberFormatException e) {
       logger.error(StringUtils.formatErrorMessage(e));
     }
   }
   daoAgentList.add(agent);
 }
コード例 #2
0
ファイル: DAOAgentPool.java プロジェクト: srvarey/postion
 public static void callAsynchroneMethod(
     Class clazz, String methodName, List<Serializable> arguments) {
   GaiaDAOAgent daoagent = getAvailableDAOAgent();
   if (daoagent != null) {
     DAOCallerAgent.DAOCallBehaviour request =
         new DAOCallerAgent.DAOCallBehaviour(
             daoagent.getAID(), clazz.getName(), methodName, arguments, true, false);
     daoCallerAgent.addBehaviour(new ThreadedBehaviourFactory().wrap(request));
   } else {
     logger.error("ERROR : DAOAGENTPOOL CALL FROM GUI FORBIDEN => USE DAO CALLER AGENT INSTEAD");
     logger.error("   ON : " + clazz + StringUtils.DOT + methodName);
   }
 }
コード例 #3
0
ファイル: DAOAgentPool.java プロジェクト: srvarey/postion
  public static Serializable callMethod(
      Class clazz, String methodName, List<Serializable> arguments) {
    GaiaDAOAgent daoagent = getAvailableDAOAgent();
    /** thread */
    DAOCallerAgent.DAOCallBehaviour request =
        new DAOCallerAgent.DAOCallBehaviour(
            daoagent.getAID(), clazz.getName(), methodName, arguments, false, false);

    daoCallerAgent.addBehaviour(new ThreadedBehaviourFactory().wrap(request));
    ACLMessage msg = daoCallerAgent.blockingReceive();

    try {
      if (msg.getConversationId().equals(DAO_QUERY_REPLY)) {
        return msg.getContentObject();
      }
    } catch (Exception e) {
      logger.error(StringUtils.formatErrorMessage(e));
      logger.error(msg.getConversationId());
      logger.error(msg.getContent());
    }
    return null;
  }