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

Allup.idl

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

Generated on Fri Oct 22 07:50:24 2004 for CPU Broker by  doxygen 1.3.9.1