oaa2javanetmain.java

来自「SRI international 发布的OAA框架软件」· Java 代码 · 共 105 行

JAVA
105
字号
/* $Id: Oaa2JavaNetMain.java,v 1.2 2003/06/25 20:32:30 giuli Exp $*/
/**************************************************************************
 * Copyright 2001, 2002 SRI International. All rights reserved.
 *
 * The material contained in this file is confidential and proprietary to SRI
 * International and may not be reproduced, published, or disclosed to others
 * without authorization from SRI International.
 *
 * DISCLAIMER OF WARRANTIES
 *
 * SRI International MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
 * SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT
 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
 * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SRI International SHALL NOT BE
 * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
 * OR DISTRIBUTING THIS SOFTWARE
 **************************************************************************/
package com.sri.oaa2.javanetbridge;

import gnu.getopt.Getopt;

import java.io.PrintStream;

import com.sri.sedc.javanetbridge.io.InvocationHandlerServer;
import com.sri.sedc.javanetbridge.io.JavaNetBridgeIOFactory;
import com.sri.sedc.javanetbridge.io.JavaNetBridgeBeanCreator;
import com.sri.sedc.javanetbridge.JavaNetBridgeBeanImpl;

/**
 * Main class for executing JavaNetBridgeGenerator.
 */
public class Oaa2JavaNetMain {
    private static String getProgramName() {
        return Oaa2JavaNetMain.class.getName();
    }

    private static String getShortProgramName() {
        String fullName = getProgramName();
        int index = fullName.lastIndexOf('.') + 1;
        return fullName.substring(index);
    }

    /**
     * Main execution for MessageServerMain.
     */
    public static void main(String[] args) {
        Getopt g = new Getopt(getShortProgramName(), args, "hl:");
        int c;
        int listenPort = -1;

        while ((c = g.getopt()) != -1) {
            switch (c) {
                case 'h':
                    printUsageAndExit();
                    break;

                case 'l':
                    try {
                        listenPort = Integer.valueOf(g.getOptarg()).intValue();
                    } catch (Throwable ex) {
                        ex.printStackTrace();
                        printUsageAndExit();
                    }
                    break;

                default:
                    printUsageAndExit();
                    break;
            }
        }

        if (listenPort == -1) {
            printUsageAndExit();
        }

        try {
            Oaa2JavaNet ax = new Oaa2JavaNet();
            InvocationHandlerServer server = JavaNetBridgeIOFactory.getFactory().newDataMarshalServer(listenPort,
                    new JavaNetBridgeBeanCreator() {
                        public JavaNetBridgeBeanImpl newJavaNetBridgeBeanImpl() {
                            return new Oaa2JavaNet();
                        }
                    });
            System.out.println("Listening on port " + listenPort + " for client connections");
            server.runServer();
        } catch (Throwable e) {
            e.printStackTrace();
            System.exit(1);
        }
    }

    public static void printUsageAndExit() {
        PrintStream o = System.out;
        o.println("usage:");
        o.print("java [java options] ");
        o.print(getProgramName());
        o.println(" -l listenPort [-h]");
        o.println("required parameters:");
        o.println("-l server socket listen port");
        o.println("options:");
        o.println("-h print this help");
        System.exit(1);
    }
}

⌨️ 快捷键说明

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