Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

Allup.idl

Go to the documentation of this file.
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

Generated on Mon Dec 1 16:29:05 2003 for CPU Broker by doxygen 1.3.4