//////////////////////////////////////////////////////////////////// // Dorothea Beringer // CHAIMS Project // JavaRMI Wrappers 2.0 // // August 11, 1998 // Update: September 10, 1998 (Guido Schryen) // // ChaimsCompliantObject.java //////////////////////////////////////////////////////////////////// import java.rmi.*; public interface ChaimsCompliantObject extends Remote { public String testRMI() throws RemoteException; // only for test purposes, to be deleted //********************** SETUP ********************** public void SETUP(String clientID) throws RemoteException; // IN clientID: ID of the calling megaprogram //********************** INVOKE ********************* public long INVOKE(String clientID, String methodName, ChaimsAttrValContainer attrValContainer) throws RemoteException; // IN clientID : ID of the calling megaprogram // IN methodName: name of the method to be invoked. Valid method names are given by // the repository. // IN cont: list of name-value pairs that are the invocation-specific parameters for // this invocation. Valid names are given by the repository. // OUT long: callID by which this invocation can be referenced later on until it // gets terminated //********************** EXAMINE ******************** public int EXAMINE(long callID) throws RemoteException; // IN callID: reference of the invocation to be investigated // OUT ChaimsInvokStatus: status of this invocation (INVALID, EXECUTING, DONE) //********************** ESTIMATE ******************* // right now the semantics of ESTIMATE are not clearly defined public ChaimsAttrValContainer ESTIMATE( long clientID, String methodName, ChaimsAttrSequence seq ) throws RemoteException; // IN clientID: ID of the calling client // IN methodName: name of the method for which an estimate is asked for // IN seq: list of names of those attributes asked for. // OUT ChaimsAttrValContainer: list of (name, value) pairs, where the names correspond to those in >>seq<< and the values are // the corresponding computed ones or being // -1 for fee, 0000:00:00::00:00:00 for time, and -1 for volume, if no estimate is possible. //********************** EXTRACT ******************** public ChaimsAttrValContainer EXTRACT(long callID, ChaimsAttrSequence seq ) throws RemoteException; // IN callID: reference of the invocation from which we want the results // IN seq: list of names. The names tell the megamodule which results are requested. // OUT ChaimsAttrValContainer: list of (name, value) pairs, where the names correspond to those in >>seq<< and the values are // the corresponding result values // If a value is not yet available, an empty value is returned //********************** TERMINATE ******************** public void TERMINATE(long callID) throws RemoteException; // IN callID: reference of the invocation that is no longer needed. //********************** TERMINATEALL ***************** public void TERMINATEALL(String clientID) throws RemoteException; // IN clientID: ID of the calling megaprogram which is no more interested in // this megamodule. All invocations belonging to this megaprogram are // terminated //********************** GETPARAM ********************* public ChaimsAttrValContainer GETPARAM(String clientID, ChaimsAttrSequence seq ) throws RemoteException; // IN clientID: ID of the calling client // IN seq: list of name-value pairs. The names are a subset of the parameters and global variables // available in this megamodule (for valid names see repository). // OUT ChaimsAttrValContainer: list of (name, value) pairs, where the names correspond to those in >>seq<< and the values contain // the corresponding current // settings for the calling megaprogram. If no client-specific settings // have been made yet, default values (for the megamodule itself) are returned. //********************** SETPARAM ******************** public void SETPARAM( String clientID, ChaimsAttrValContainer cont ) throws RemoteException; // IN clientID: ID of the calling megaprogram // IN cont: list of name-value pairs containing the parameters of global // variables that should be specified megamodule-specific. This // specification overrides general default-settings and will be // used by INVOKE's whenever no invocation specific values are // given. }