ghatak@CS.UTK.EDU (04/10/91)
Hello all, How does one tell rosy that certain operations will be invoked by the server (PERFORMER in most cases) and not by the client (the INVOKER in most cases) withiut marking them as linked operations ? Right now rosy thinks that ALL the operations will be invoked by the INVOKER. Any thoughts on this will be appreciated. Thanks, Subhendu Ghatak
shia@dset.UUCP (Dan Shia) (04/12/91)
Subhendu, > How does one tell rosy that certain operations will be invoked by the >server (PERFORMER in most cases) and not by the client (the INVOKER in most >cases) withiut marking them as linked operations ? > Right now rosy thinks that ALL the operations will be invoked by the >INVOKER. Any thoughts on this will be appreciated. You are right. You cannot define operations invoked by the server with ROSY. However, our Distributed Systems Generator (DSG) allows you to do so with ISODE. If you need further information, please send me your postal address. Dan
mhs@rufsun6.ffm.fgan.de (X.400) (04/24/91)
Dear Subhendu, we refer to your question concerning the invocation of operations by both the initiator and the responder. Because we have not seen any satisfying answer in the list we want to present our solution. Any comments are very welcome. Our work is based on the responder and the interactive initiator as shown in the example in chapter 10 (Volume 4 of the ISODE 6.0 user's manual, 155 pp.). We modified the main programs (lookup.c, lookupd.c in the example), the makefile and the rosy routines ryinitiator.c and ryresponder.c. In addition we have written a small awk-procedure which transforms the file MODULE-ops.h. We have successfully tested these modifications in an implementation of the X.400 P7 protocol. In both of the main programs we replaced the table "dispatches" by two tables "ivdispatches" and "pfdispatches". The table "ivdispatches" has the structure of the old initiator's dispatches table and "pfdispatches" has the structure of the old responder's dispatches table. In the parameter list of ryinitiator and ryresponder the dispatches entry is replaced by the two entries ivdispatches and pfdispatches. The ryinitiator routine must register the operation handler functions of those operations for which it is the performer (call of RyDispatch). The ryinitiator routine now has to react upon two types of events: keyboard input and invocations by the responder (xselect). In case of an invocation by the responder the routine RyWait is called with an invocation id of zero. This results in performing the operation. The ryresponder routine invokes operations by calling the routine invoke. The awk procedure changes the #ifdef-statements in MODULE-ops.c. It replaces "#ifdef INVOKER" by "#ifdef INITIATOR" or "#ifdef RESPONDER". The actual replacement depends on a user-defined table defining which operations are invoked by the initiator and which are invoked by the responder. The makefile was changed according to the above outlined modifications (e. g. -DRESPONDER instead of -DPERFORMER). Further information (including the sources) is available. Norbert Haak Reinhard Detering