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

📄 tahitidaemon.java

📁 aglet的部分源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.ibm.aglets.tahiti;/* * $Id: TahitiDaemon.java,v 1.2 2001/08/01 03:46:59 kbd4hire Exp $ * * @(#)TahitiDaemon.java * * TahitiDaemon implements a Tahiti service which listens on * a configurable control port for commands. * * The TahitiDaemonClient class is used to communicate with * and control a TahitiDaemon. */import com.ibm.aglet.*;import com.ibm.aglet.system.ContextEvent;import com.ibm.aglet.system.ContextListener;import com.ibm.aglet.system.AgletRuntime;import com.ibm.awb.misc.Resource;import java.io.*;import java.net.*;import java.util.StringTokenizer;import java.util.Hashtable;import java.util.Enumeration;/** *  <tt>Daemon</tt> is a simple non-UI interface to an aglet server. *  TahitiDaemon implements a Tahiti service which listens on a configurable *  control port for commands. The TahitiDaemonClient class is used to *  communicate with and control a TahitiDaemon. * * @author     Lary Spector * @created    July 22, 2001 * @version    $Revision: 1.2 $ $Date: 2001/08/01 03:46:59 $ $Author: kbd4hire $ * @see        com.ibm.aglet.system.ContextListener * @see        com.ibm.aglet.system.ContextEvent */public final class TahitiDaemon implements ContextListener, Runnable {    /*     * Aglets table     */    private Hashtable                   aglets = new Hashtable();    /*     * Prompt char.     */    private String                      prompt = ">";    /*     * AgletContext     */    private AgletContext                context = null;    /*     * Null print stream to turn off messages.     * private com.ibm.awb.misc.LogPrintStream null_log;     */    private boolean                     message = false;    private boolean                     debug = false;    private boolean                     continue_processing = true;    private boolean                     reboot = false;    private boolean                     shutdown = false;    private static int                  _control_port_num = 5545;    private static UserManager          _userManager = new TahitiDaemonUserManager();    /*     * for autonumbering aglets     */    private static int                  serial = 0;    /*     * Banner and version Strings     */    private static String               _banner_string = "TahitiDaemon";    private static String               _version_string = "1.0";    /**     *  Called when an aglet has been activated     *     * @param  event  an ContextEvent     * @since     */    public void agletActivated(ContextEvent event) {        if (message) {            System.out.println("Activated " + event.getAgletProxy());        }        // added(event.getAgletProxy());    }    /**     *  Called when an aglet has arived     *     * @param  event  an ContextEvent     * @since     */    public void agletArrived(ContextEvent event) {        added(event.getAgletProxy());    }    /**     *  Called when an aglet has been cloned     *     * @param  event  an ContextEvent     * @since     */    public void agletCloned(ContextEvent event) {        added(event.getAgletProxy());    }    /**     *  Called when an aglet has been created     *     * @param  event  an AgletEvent     * @since     */    public void agletCreated(ContextEvent event) {        added(event.getAgletProxy());    }    /**     *  Called when an aglet has been deactivated     *     * @param  event  an ContextEvent     * @since     */    public void agletDeactivated(ContextEvent event) {        if (message) {            System.out.println("Deactivated " + event.getAgletProxy());        }        // removed(event.getAgletProxy());    }    /**     *  Called when an aglet has been dispatched     *     * @param  event  an ContextEvent     * @since     */    public void agletDispatched(ContextEvent event) {        // event.getAgletProxy() is the AgletProxy AFTER dispatching,        // not BEFORE dispatching.        // So it cannot be removed because aglets hashtable doesn't contain it.        // removed(event.getAgletProxy());    }    /**     *  Called when an aglet has been disposed     *     * @param  event  an ContextEvent     * @since     */    public void agletDisposed(ContextEvent event) {        removed(event.getAgletProxy());    }    /**     *  Called when an aglet has been resumed     *     * @param  event  an ContextEvent     * @since     */    public void agletResumed(ContextEvent event) {        if (message) {            System.out.println("Resumed " + event.getAgletProxy());        }        // added(event.getAgletProxy());    }    /**     *  Called when an aglet has been reverted     *     * @param  event  an ContextEvent     * @since     */    public void agletReverted(ContextEvent event) {        removed(event.getAgletProxy());    }    /**     *  Called when an aglet has been updated     *     * @param  event  an ContextEvent     * @since     */    public void agletStateChanged(ContextEvent event) {        synchronized (aglets) {            Enumeration e = aglets.keys();            while (e.hasMoreElements()) {                Object k = e.nextElement();                Item i = (Item) aglets.get(k);                if (i.equals(event.getAgletProxy())) {                    i.setText((String) event.arg);                    if (message) {                        System.out.println(k.toString() + " : " + event.arg);                    }                }            }        }    }    /**     *  Called when an aglet has been suspended     *     * @param  event  an ContextEvent     * @since     */    public void agletSuspended(ContextEvent event) {        if (message) {            System.out.println("Suspended " + event.getAgletProxy());        }        // removed(event.getAgletProxy());    }    /**     *  Description of the Method     *     * @param  ev  Description of Parameter     * @since     */    public void contextShutdown(ContextEvent ev) {        //    }    /**     *  Initializes the Viewer with the context.     *     * @param  ev  Description of Parameter     * @since     */    public void contextStarted(ContextEvent ev) {        this.context = ev.getAgletContext();        Resource res = Resource.getResourceFor("aglets");        //        // Check to see if this is a registered user.        //        if (res.getBoolean("aglets.registered", false) == false) {        }        new Thread(this).start();    }    /**     *  Infinite loop to process inputs     *     * @since     */    public void run() {        boolean socket_active = false;        BufferedReader in = null;        PrintWriter out = null;        Socket clientSocket = null;        String controlPortString =                System.getProperties().getProperty("maf.controlport");        try {            if (Integer.parseInt(controlPortString) > 0) {                _control_port_num = Integer.parseInt(controlPortString);            } else {                System.out.println("Controlport: " + controlPortString + " is out of range, defaulting to: " + _control_port_num);            }        } catch (NumberFormatException ex) {            ex.printStackTrace();            System.exit(1);        }        Thread.currentThread().setPriority(1);        // Create a socket to control this Tahiti

⌨️ 快捷键说明

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