00001 /* 00002 * Allup.idl 00003 * 00004 * Copyright (c) 2003, 2004 The University of Utah and the Flux Group. 00005 * All rights reserved. 00006 * 00007 * This file is licensed under the terms of the GNU Public License. 00008 * See the file "license.terms" for restrictions on redistribution 00009 * of this file, and for a DISCLAIMER OF ALL WARRANTIES. 00010 */ 00011 00012 /** 00013 * @file Allup.idl 00014 * 00015 * IDL for the all-in-one CPU broker server, allup. 00016 */ 00017 00018 #ifndef _allup_idl 00019 #define _allup_idl 00020 00021 module edu 00022 { 00023 module utah 00024 { 00025 module pces 00026 { 00027 /** 00028 * String sequence used to pass command line arguments to the 00029 * FactoryLibrary. 00030 */ 00031 typedef sequence<string> ArgV; 00032 00033 /** 00034 * The FactoryLibrary interface provides a wrapper around shared 00035 * libraries that can communicate with CORBA objects. 00036 */ 00037 interface FactoryLibrary 00038 { 00039 /** 00040 * @return The name of this library. 00041 */ 00042 string Name(); 00043 00044 /** 00045 * Interpret a 'hey' style command line. 00046 * 00047 * @sa HeyParser 00048 * 00049 * @param args The command line arguments that the library 00050 * should act on. Note that this includes the command name and 00051 * server IOR! 00052 * @param o String to send to standard output. 00053 * @param e String to send to standard error. 00054 */ 00055 long Hey(in ArgV args, out string o, out string e); 00056 }; 00057 00058 /** 00059 * Sequence of FactoryLibrary objects. 00060 */ 00061 typedef sequence<FactoryLibrary> FactoryLibraryList; 00062 00063 /** 00064 * Exception raised when a library could not be found or loaded. 00065 */ 00066 exception NoSuchLibrary { 00067 string name; /**< The name of the library. */ 00068 string message; /**< A description of the problem. */ 00069 }; 00070 00071 /** 00072 * The main interface to the Allup server. The primary role of 00073 * Allup is to hold shared libraries and service the CORBA objects 00074 * created from those libraries. 00075 */ 00076 interface Allup 00077 { 00078 /** 00079 * Open a library in the server. 00080 * 00081 * @param name The full path of the library. 00082 * @return A FactoryLibrary object that can be used to 00083 * communicate with the library. 00084 * 00085 * @exception NoSuchLibrary if the library could not be found 00086 * or loaded. 00087 */ 00088 FactoryLibrary OpenLibrary(in string name) 00089 raises(NoSuchLibrary); 00090 00091 /** 00092 * @return A list of libraries current open in the server. 00093 */ 00094 FactoryLibraryList Libraries(); 00095 00096 /** 00097 * Shut down the server process. 00098 */ 00099 void Shutdown(); 00100 }; 00101 }; 00102 }; 00103 }; 00104 00105 #endif