/* ***************************************** * * FILE: CHAIMSRAP.idl * AUTHOR: Pankaj Jain * First Rev: 10/21/97 * Second Rev: 6/24/98 Woody Pollack * * IDL Description of the CHAIMS interface * * *****************************************/ #define CHAIMSTERMINATEALL -1 // Call ID to terminate the current session // with the client interface CHAIMSRAP { typedef string ATTR; typedef sequence BLOB; struct ATTRVAL { ATTR name; BLOB value; }; typedef sequence CHAIMSATTRVALSEQ; typedef long CHAIMSMMID; typedef string CHAIMSMETHODNAME; typedef string CHAIMSPARAMNAME; typedef long CHAIMSMETHODID; typedef long CHAIMSCALLID; typedef boolean CHAIMSINVKSTATUS; typedef sequence CHAIMSATTRSEQ; typedef long CHAIMSESTIMATE; void SETUP ( in CHAIMSATTRVALSEQ attrvalseq, // (named) attribute-value sequence for initialization out CHAIMSMMID mmid // A handle returned by the megamodule to the client for // future references ); void INVOKE ( in CHAIMSMETHODNAME methodname, // method to invoke in CHAIMSATTRVALSEQ attrvalseq, // (named) attribute-value sequence for the method out CHAIMSCALLID callid // ID supplied by the Client ); // Client supplies an unique ID for a method call which in conjunction // with the Client ID (assigned at the time of setup by the megamodule) // serves as an unique identifier for the method invokation. // For now assume that an instance of megamodule corresponds to exactly // one client. CHAIMSINVKSTATUS EXAMINE ( in CHAIMSCALLID callid // callid of the invocation to examine ); CHAIMSESTIMATE ESTIMATE ( in CHAIMSMETHODNAME methodname // Name of the method for which estimate is required ); void GETATTRIBUTES ( in CHAIMSATTRSEQ attrseq, // Sequence of attributes to extract out CHAIMSATTRVALSEQ attrvalseq // Sequence of attribute-value extracted ); void EXTRACT ( in CHAIMSCALLID callid, // CallId for which results need to be extracted out ATTRVAL attrval // Sequence of attribute-value pairs of the result ); void GETPARAM(in CHAIMSMETHODNAME methodname, in CHAIMSPARAMNAME paramname, out ATTRVAL attrval); void SETATTRIBUTES ( in CHAIMSATTRVALSEQ attrvalseq // Sequence of attribute-values to set ); void TERMINATE ( in CHAIMSCALLID callid // callid of the invocation to terminate // A special callid CHAIMSTERMINATEALL is used to terminate // all the invocation of the session with the given client ); // **************************************************************** // Is that all? Do we need something to facilitate client obtaining // the interface information of the megamodule // **************************************************************** };