⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 airline.java

📁 《移动Agent技术》一书的所有章节源代码。
💻 JAVA
字号:
/* AirLine.java * $Id: AirLine.java,v 2.4 1997-12-07 14:59:50+09 ht Exp $ * $Name: alpha5_1-release $ *  */package com.ibm.acl.kqmlsample.travel;import com.ibm.acl.kqml.*;import com.ibm.acl.kqml.interpreter.*;import com.ibm.acl.util.*;import java.lang.*;import java.io.*;import java.net.*;import java.util.*;/** * AirLine Sample * * @version     $Revision: 2.4 $ $Date: 1997-12-07 14:59:50+09 $ * @author      Osamu Furusawa * @author      Hajime Tsuchitani */abstract public class AirLine {private static final String rcsid = "$Id: AirLine.java,v 2.4 1997-12-07 14:59:50+09 ht Exp $ $Name: alpha5_1-release $";    /**     * This agnet has the reference of KQMLManager,      * this agnet is KQML-Speakable.     */    protected KQMLManager kManager;    /**     * agent name     */    protected String agentName;    /**     * local hostname (ktp format)     */    protected String localHost;    /**     * facilitator address(ktp format)      */    protected String facilitator;    /**     * receiver address of an agent that can be inserted (ktp format)     */    protected String receiverAddr;    /**     *  lifecycleID     */    protected String lifecycleID;    /**     *  yellowpageID     */    protected String yellowpageID;    /**     * frame     */    protected AirFrame frame;    /**     * port number     */    protected int port;    protected Vector flightTable = new Vector();    /**     * Constructor     *     * @param port socket port number.     */    public AirLine(){	anacl_travel.setFlightTable(flightTable);    }    public Vector getFlightTable() {      return flightTable;    }    public KQMLManager getKQMLManager() {      return kManager;    }    /**     * Travel Broker register on LifeCycle     * scenario (21) & (28)     */    protected void setRegisterL() {        KQML kqml = new KQML();        String rw = new String(kManager.getInitialID());	kqml.setPerformative("register");        kqml.setParameter(":name", agentName);        kqml.setParameter(":sender", localHost);        kqml.setParameter(":receiver", facilitator);        kqml.setParameter(":reply-with", rw);        kqml.setParameter(":language", "anACL");        kqml.setParameter(":ontology", "lifecycle");        kqml.setContent("(:class anacl_travel)");	Conversation conv = null;	try {	  conv =	    (Conversation) kManager.sendMessage(kqml);	} catch (SendFailedException ex) {	  ex.printStackTrace();	} catch (InvalidFormatException ex) {	  ex.printStackTrace();	} catch (InvalidMessageSequenceException ex) {	  ex.printStackTrace();	} catch (JKQMLException ex) {	  ex.printStackTrace();	} 	        conv.getResult().waitFor(45000);        Result res = conv.getResult();	if ( res.isAvailable()) {	    ReturnValue rtn = (ReturnValue)res.getResult();	    if (rtn.isOK()) {	        lifecycleID = new String((String)rtn.getReturnValue()); 	        print("register: " + lifecycleID);	    } else {		System.err.println("setRegisterL() :Error in registered process");		System.err.println("setRegisterL() : " + 		  				(String)rtn.getReturnValue());		System.exit(-1);	    }    	} else {	    System.err.println("setRegisterL() :Error Result isn't available");	    System.exit(-1);	}    }	    /**     * AirLine recommend-one/Insert(yellowpage)     * scenario (22) & (29)     *     */    public void setRecommendoneInsertY() {        KQML kqml = new KQML();        String rw = new String(kManager.getInitialID());	kqml.setPerformative("recommend-one");        kqml.setParameter(":name", agentName);        kqml.setParameter(":sender", localHost);        kqml.setParameter(":receiver", facilitator);        kqml.setParameter(":reply-with", rw);        kqml.setParameter(":language", "KQML");        kqml.setParameter(":ontology", "kqml-ontology");	KQML kqml_i = new KQML();	kqml_i.setPerformative("insert");        kqml_i.setParameter(":sender", localHost);        kqml_i.setParameter(":language", "anACL");        kqml_i.setParameter(":ontology", "yellowpages"); 	String content = new String(                          	"(:category"   	+"\n"+			  	" :subCategory" +"\n"+			  	" :class"      +"\n"+			  	" :name )"				);	kqml_i.setContent(content);        kqml.setContent(kqml_i);	Conversation conv = null;	try {	  conv =	    (Conversation) kManager.sendMessage(kqml);	} catch (SendFailedException ex) {	  ex.printStackTrace();	} catch (InvalidFormatException ex) {	  ex.printStackTrace();	} catch (InvalidMessageSequenceException ex) {	  ex.printStackTrace();	} catch (JKQMLException ex) {	  ex.printStackTrace();	} 	        conv.getResult().waitFor(45000);        Result res = conv.getResult();	if ( res.isAvailable()) {	    ReturnValue rtn = (ReturnValue)res.getResult();            if ( rtn.isOK() ) { 	    	print("result value : " + rtn.getReturnValue().toString());		KQML kqml_result = null;		try {		  kqml_result = new KQML(rtn.getReturnValue().toString());		} catch (NotListException ex) {		  ex.printStackTrace();		  System.exit(1);		} catch (MalformedSExpressionException ex) {			  ex.printStackTrace();		  System.exit(1);		}	    	// reserve address of agent that can be inserted	    	receiverAddr = new String(kqml_result.getParameter(":receiver"));	    } else {	    	System.err.println("setRecommendoneInsertY() : scenario (22/29)");		System.err.println("setRecommendoneInsertY() : " + 						    (String)rtn.getReturnValue());	    	System.exit(-1);	    }    	} else {	    System.err.println("setRecommendoneInsertY() :Error Result isn't available");	    System.exit(-1);	}    }        /**     * AirLine advertise/ask-all(travel)     * scenario (26) & (33)     *     */    public void setAdvertiseBrokerallAskallT() {        KQML kqml = new KQML();        String rw = new String(kManager.getInitialID());	kqml.setPerformative("advertise");        kqml.setParameter(":name", agentName);        kqml.setParameter(":sender", localHost);        kqml.setParameter(":receiver", facilitator);        kqml.setParameter(":reply-with", rw);        kqml.setParameter(":language", "KQML");        kqml.setParameter(":ontology", "kqml-ontology");	KQML kqml_i = new KQML();	kqml_i.setPerformative("ask-all");        kqml_i.setParameter(":sender", facilitator);        kqml_i.setParameter(":receiver", localHost);        kqml_i.setParameter(":in-reply-to", rw);        kqml_i.setParameter(":language", "anACL");        kqml_i.setParameter(":ontology", "travel"); 	String  content = new String(                            "(:carrier"   	     +" \n"+			    " :flight"	 	     +" \n"+			    " :departure"	     +" \n"+			    " :arrival"		     +" \n"+			    " :deptTime)" );	kqml_i.setContent(content);        kqml.setContent(kqml_i);	Conversation conv = null;	try {	  conv =	    (Conversation) kManager.sendMessage(kqml);	} catch (SendFailedException ex) {	  ex.printStackTrace();	} catch (InvalidFormatException ex) {	  ex.printStackTrace();	} catch (InvalidMessageSequenceException ex) {	  ex.printStackTrace();	} catch (JKQMLException ex) {	  ex.printStackTrace();	}         conv.getResult().waitFor(0);    }    /**     * AirLine advertise/subscribe/ask-all(travel)     * scenario (27) & (34)     *     */    public void setAdvertiseSubAskallT() {        KQML kqml = new KQML();        String rw = new String(kManager.getInitialID());	kqml.setPerformative("advertise");        kqml.setParameter(":name", agentName);        kqml.setParameter(":sender", localHost);        kqml.setParameter(":receiver", facilitator);        kqml.setParameter(":reply-with", rw);        kqml.setParameter(":language", "KQML");        kqml.setParameter(":ontology", "kqml-ontology");	KQML kqml_i = new KQML();	kqml_i.setPerformative("subscribe");        kqml_i.setParameter(":sender", facilitator);        kqml_i.setParameter(":receiver", localHost);        kqml_i.setParameter(":in-reply-to", rw);        kqml_i.setParameter(":language", "KQML");        kqml_i.setParameter(":ontology", "kqml-ontology");	KQML kqml_ii = new KQML();	kqml_ii.setPerformative("ask-all");        kqml_ii.setParameter(":sender", facilitator);        kqml_ii.setParameter(":receiver", localHost);        kqml_ii.setParameter(":in-reply-to", rw);        kqml_ii.setParameter(":language", "anACL");        kqml_ii.setParameter(":ontology", "travel"); 	String  content = new String(                            "(:carrier"   	     +" \n"+			    " :flight"	 	     +" \n"+			    " :departure"	     +" \n"+			    " :arrival"		     +" \n"+			    " :deptTime)" );	kqml_ii.setContent(content);	kqml_i.setContent(kqml_ii);        kqml.setContent(kqml_i);	Conversation conv = null;	try {	  conv =	    (Conversation) kManager.sendMessage(kqml);	} catch (SendFailedException ex) {	  ex.printStackTrace();	} catch (InvalidFormatException ex) {	  ex.printStackTrace();	} catch (InvalidMessageSequenceException ex) {	  ex.printStackTrace();	} catch (JKQMLException ex) {	  ex.printStackTrace();	}         conv.getResult().waitFor(0);    }    public void updateSchedule(FlightInfo flight) {        KQML kqml = new KQML();        String rw = new String(kManager.getInitialID());	kqml.setPerformative("insert");        kqml.setParameter(":name", agentName);        kqml.setParameter(":sender", localHost);        kqml.setParameter(":receiver", localHost);        kqml.setParameter(":reply-with", rw);        kqml.setParameter(":language", "anACL");        kqml.setParameter(":ontology", "travel"); 	String content = 	  new String("(:carrier " + flight.getCarrier() + "\n" +		     " :flight " + flight.getFlight() + "\n" +		     " :departure \"" + flight.getDeparture() +"\"\n"+		     " :arrival \"" + flight.getArrival() + "\"\n" +		     " :deptTime \"" + flight.getDeptTime() +"\")");        kqml.setContent(content);	Conversation conv = null;	try {	  conv =	    (Conversation) kManager.sendMessage(kqml);	} catch (SendFailedException ex) {	  ex.printStackTrace();	} catch (InvalidFormatException ex) {	  ex.printStackTrace();	} catch (InvalidMessageSequenceException ex) {	  ex.printStackTrace();	} catch (JKQMLException ex) {	  ex.printStackTrace();	} 	if (conv == null)	  System.err.println("AirLine.updateSched: send insert performative failed");    }    /**     * print for debug.     *     * @param msg print message     */    private void print(String msg) {        if (KQMLManager.debug) {            System.err.println("AirLine." + msg);        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -