Package jade.lang.acl

Examples of jade.lang.acl.ACLMessage


         *
         * @param message
         */
        private void sendNotBusyMessage(ACLMessage message) {
            if (!isBusy()) {
                ACLMessage reply = message.createReply();
                reply.setPerformative(ACLMessage.CONFIRM);
                myAgent.send(reply);
            }
        }
View Full Code Here


         * that made the initial request.
         *
         * @param message
         */
        private void sendRequestResponse(ACLMessage message) {
            ACLMessage response = currentMessage.createReply();
            response.setPerformative(ACLMessage.INFORM);
            System.out.println(message.getContent());
            response.setContent(message.getContent());
            myAgent.send(response);
            busy = false;
            currentMessage = null;
            Logger.getLogger(NodeAgent.class.getName()).log(Level.INFO,
                    "{0} not busy anymore.",
View Full Code Here

     * Kills the specified node
     *
     * @param localName The name of the node to kill
     */
    public void killNode(String localName) {
        ACLMessage message = new ACLMessage(ACLMessage.CANCEL);
        message.addReceiver(new AID(localName, false));
        message.setContent("terminate");
        send(message);
    }
View Full Code Here

    public final void action(){

  switch(state){
  case WAITING_MSG_STATE:{
        ACLMessage request = myAgent.receive(template);
        if(request != null){
      getDataStore().put(REQUEST_KEY,request);
      state = PREPARE_RESPONSE_STATE;
        }else
      block();
        break;
  }
  case PREPARE_RESPONSE_STATE:{
      DataStore ds = getDataStore();
      ACLMessage request = (ACLMessage)ds.get(REQUEST_KEY);
      ACLMessage response = null;
      state = SEND_RESPONSE_STATE;
      try{
    response = prepareResponse(request);
      }catch(NotUnderstoodException nue){
    response = request.createReply();
    response.setContent(nue.getMessage());
    response.setPerformative(ACLMessage.NOT_UNDERSTOOD);
      }catch(RefuseException re){
    response = request.createReply();
    response.setContent(re.getMessage());
    response.setPerformative(ACLMessage.REFUSE);
      }
      ds.put(RESPONSE_KEY,response);
      break;
  }
  case SEND_RESPONSE_STATE:{
      DataStore ds = getDataStore();
      ACLMessage response = (ACLMessage)ds.get(RESPONSE_KEY);
      if(response != null){
    ACLMessage receivedMsg = (ACLMessage)ds.get(REQUEST_KEY);
 
    response = arrangeMessage(receivedMsg,response);
    myAgent.send(response);
    if(response.getPerformative() == ACLMessage.AGREE)
        state = PREPARE_RES_NOT_STATE;
    else
        state = RESET_STATE;

      }else{
    //could directly send a resultNotification message.
    state = PREPARE_RES_NOT_STATE;
      }
      break;
  }
  case PREPARE_RES_NOT_STATE:{
      state = SEND_RESULT_NOTIFICATION_STATE;
      DataStore ds = getDataStore();
      ACLMessage request = (ACLMessage)ds.get(REQUEST_KEY);
      ACLMessage response = (ACLMessage)ds.get(RESPONSE_KEY);
      ACLMessage resNotification = null;
      try{
    resNotification = prepareResultNotification(request,response);
      }catch(FailureException fe){
    resNotification = request.createReply();
    resNotification.setContent(fe.getMessage());
    resNotification.setPerformative(ACLMessage.FAILURE);
      }
      ds.put(RESULT_NOTIFICATION_KEY,resNotification);
      break;
  }
  case SEND_RESULT_NOTIFICATION_STATE:{
      state = RESET_STATE;
      DataStore ds = getDataStore();
      ACLMessage resNotification = (ACLMessage)ds.get(RESULT_NOTIFICATION_KEY);
      if(resNotification != null){
    ACLMessage receivedMsg = (ACLMessage)ds.get(REQUEST_KEY);

    myAgent.send(arrangeMessage(receivedMsg,resNotification));
      }
      break;
  }
View Full Code Here

    if (dfd.getName() == null) {
      dfd.setName(a.getAID());
    }
    checkIsValid(dfd, true);
   
    ACLMessage request = createRequestMessage(a, dfName, FIPAManagementVocabulary.REGISTER, dfd, null);
    ACLMessage reply = doFipaRequestClient(a,request);
    if (reply == null) {
      throw new FIPAException("Missing reply");
    }
    return decodeDone(reply.getContent());
  }
View Full Code Here

    }
    if (dfd.getName() == null) {
      dfd.setName(a.getAID());
    }
   
    ACLMessage request = createRequestMessage(a, dfName, FIPAManagementVocabulary.DEREGISTER, dfd, null);
    ACLMessage reply = doFipaRequestClient(a,request);
    if (reply == null) {
      throw new FIPAException("Missing reply");
    }
  }
View Full Code Here

    if (dfd.getName() == null) {
      dfd.setName(a.getAID());
    }     
    checkIsValid(dfd, true);
   
    ACLMessage request = createRequestMessage(a, dfName, FIPAManagementVocabulary.MODIFY, dfd, null);
    ACLMessage reply = doFipaRequestClient(a,request);
    if (reply == null) {
      throw new FIPAException("Missing reply");
    }
   
    return decodeDone(reply.getContent());
  }
View Full Code Here

    if (constraints == null) {
      constraints = new SearchConstraints();
      constraints.setMaxResults(MINUSONE);
    }
   
    ACLMessage request = createRequestMessage(a, dfName, FIPAManagementVocabulary.SEARCH, dfd, constraints);
    ACLMessage inform = doFipaRequestClient(a,request);
    if (inform == null) {
      throw new FIPAException("Missing reply");
    }
   
    return decodeResult(inform.getContent());
  }
View Full Code Here

   message is received from the DF (to indicate some error condition)
   or if the supplied DF-Description template is not valid.
   */
  public static DFAgentDescription[] searchUntilFound(Agent a, AID dfName, DFAgentDescription dfd, SearchConstraints constraints, long timeout) throws FIPAException {
   
    ACLMessage subscribe = createSubscriptionMessage(a, dfName, dfd, constraints);
   
    ACLMessage inform = doFipaRequestClient(a, subscribe, timeout);
   
    // Send the CANCEL message
    ACLMessage cancel = createCancelMessage(a, dfName, subscribe);
    a.send(cancel);
   
    DFAgentDescription[] result = null;
    if (inform != null) {
      result = decodeNotification(inform.getContent());
View Full Code Here

   @see jade.proto.AchieveREInitiator
   @see #decodeDone(String)
   @see #decodeResult(String)
   */
  public static ACLMessage createRequestMessage(Agent a, AID dfName, String action, DFAgentDescription dfd, SearchConstraints constraints) {
    ACLMessage request = createRequestMessage(a, dfName);
    request.setContent(encodeAction(dfName, action, dfd, constraints));
    return request;
  }
View Full Code Here

TOP

Related Classes of jade.lang.acl.ACLMessage

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.