Package jade.tools.logging

Source Code of jade.tools.logging.LogManagerAgent

package jade.tools.logging;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Map;

import jade.core.*;
import jade.domain.FIPAAgentManagement.APDescription;
import jade.domain.introspection.*;
import jade.content.lang.sl.SLCodec;
import jade.domain.JADEAgentManagement.JADEManagementOntology;
import jade.tools.logging.ontology.LogManagementOntology;
import jade.tools.logging.gui.LogManagerGUI;

/**
* This tool agent supports local and remote management of logs in JADE containers.
*
* @author Giovanni Caire - TILAB
* @author Rosalba Bochicchio - TILAB
*/
public class LogManagerAgent extends Agent {
  private LogManagerGUI myGui;
  private APDescription myPlatformProfile;
 
  private AMSSubscriber myAMSSubscriber;
 
  protected void setup() {
    getContentManager().registerLanguage(new SLCodec());
    getContentManager().registerOntology(JADEManagementOntology.getInstance());
    getContentManager().registerOntology(LogManagementOntology.getInstance());
   
    myAMSSubscriber = new AMSSubscriber() {
      protected void installHandlers(Map handlersTable) {
        handlersTable.put(IntrospectionVocabulary.META_RESETEVENTS, new EventHandler() {
          public void handle(Event ev) {
            myGui.resetTree();
          }
        });
       
        handlersTable.put(IntrospectionVocabulary.ADDEDCONTAINER, new EventHandler() {
          public void handle(Event ev) {
            AddedContainer ac = (AddedContainer) ev;
            ContainerID cid = ac.getContainer();
            String name = cid.getName();
            String address = cid.getAddress();
            try {
              InetAddress addr = InetAddress.getByName(address);
              myGui.addContainer(name, addr);
            } catch (UnknownHostException uhe) {
              myGui.addContainer(name, null);
            }
          }
        });
       
        handlersTable.put(IntrospectionVocabulary.REMOVEDCONTAINER, new EventHandler() {
          public void handle(Event ev) {
            RemovedContainer rc = (RemovedContainer) ev;
            ContainerID cid = rc.getContainer();
            String name = cid.getName();
            myGui.removeContainer(name);
          }
        });
       
        //handle the APDescription provided by the AMS
        handlersTable.put(IntrospectionVocabulary.PLATFORMDESCRIPTION, new EventHandler() {
          public void handle(Event ev) {
            PlatformDescription pd = (PlatformDescription) ev;
            APDescription APdesc = pd.getPlatform();
            myPlatformProfile = APdesc;
            myGui.refreshLocalPlatformName(myPlatformProfile.getName());
          }
        });
       
      }
    };
   
    addBehaviour(myAMSSubscriber);
   
    myGui = new LogManagerGUI(this);
    myGui.showCorrect()
  }
 
  protected void takeDown() {
    myGui.dispose();
    send(myAMSSubscriber.getCancel());
  }
}
TOP

Related Classes of jade.tools.logging.LogManagerAgent

TOP
Copyright © 2018 www.massapi.com. 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.