00001 /* 00002 * Allup.idl 00003 * 00004 * Copyright (c) 2003 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. 00051 * @param o String to send to standard output. 00052 * @param e String to send to standard error. 00053 */ 00054 long Hey(in ArgV args, out string o, out string e); 00055 }; 00056 00057 /** 00058 * Sequence of FactoryLibrary objects. 00059 */ 00060 typedef sequence<FactoryLibrary> FactoryLibraryList; 00061 00062 /** 00063 * Exception raised when a library could not be found or loaded. 00064 */ 00065 exception NoSuchLibrary { 00066 string name; /**< The name of the library. */ 00067 string message; /**< A description of the problem. */ 00068 }; 00069 00070 /** 00071 * The main interface to the Allup server. The primary role of 00072 * Allup is to hold shared libraries and service the CORBA objects 00073 * created from those libraries. 00074 */ 00075 interface Allup 00076 { 00077 /** 00078 * Open a library in the server. 00079 * 00080 * @param name The full path of the library. 00081 * @return A FactoryLibrary object that can be used to 00082 * communicate with the library. 00083 * 00084 * @exception NoSuchLibrary if the library could not be found 00085 * or loaded. 00086 */ 00087 FactoryLibrary OpenLibrary(in string name) 00088 raises(NoSuchLibrary); 00089 00090 /** 00091 * @return A list of libraries current open in the server. 00092 */ 00093 FactoryLibraryList Libraries(); 00094 00095 /** 00096 * Shut down the server process. 00097 */ 00098 void Shutdown(); 00099 }; 00100 }; 00101 }; 00102 }; 00103 00104 #endif