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); }
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); } }
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; }