Document: srvreq Purpose: user interface module Category: SYSTEM, USER-INTERFACE File: srvreq.c Author: J.P. Terlouw Description: The routines available to applications programmers which communicate with HERMES are the following (Each routine is described in more detail in its own DC2 document): Name Type Action ----------- ------------------ ---------------------------------- INIT Subroutine Open communication with HERMES FINIS Subroutine Close communication with HERMES USERINT integer function Get integers from user USERLOG integer function Get logicals from user USERREAL integer function Get reals from user USERDBLE integer function Get doubles from user USERCHAR integer function Get char. strings from user USERCHARU integer function As USERCHAR, but now upperc. USERCHARL integer function As USERCHAR, but now lowerc. USERTEXT integer function Get text from user ANYOUT subroutine Send text to screen/logfile ERROR subroutine Report an error to user ABORT integer function Abort an other task. PAUSE subroutine Put task in pause state CANCEL subroutine Remove keyword from list REJECT subroutine Reject keyword XEQ subroutine Execute another task XEQCONT integer function Start task and continue TYPE subroutine Type something in UTA STATUS subroutine Show status message WKEY subroutine Put keyword in list DEPUTY subroutine Start another task SUBST subroutine Keyword substitution CANALL subroutine Cancel all keywords in list XEQXIT subroutine Execute task and stop MYNAME character function Return name of task ALLPAR integer function Obtain all USERxxx parameters SAVEPAR integer function Save USERxxx parameters in file EDITFILE integer function Edit a text file LISTCTRL integer function Control ANYOUT device mask DECODEINT integer function Decode integers DECODEREAL integer function Decode reals DECODEDBLE integer function Decode doubles DCDERRSTR character function Return DECODExxx error message GIPSYTASK logical function Test whether program is GIPSY task atfinis int function register callback with FINIS atfinisrm void function unregister callback with FINIS atabort void function register callback for user aborts notify int function connect to notification socket keystatus int function check status of last user input status_cb void function register status messages callback wkey_cb void function register wkey callback (for Ggi) For C programmers all prototype declarations can be made available by including srvreq.h. Limitations: Though the code of this routine is complete, not all functions may actually work. This is depends on which functions are actually provided by the specific kind and version of Hermes. Updates: Jul 13, 1989: KGB, Document created. Feb 15, 1990: JPT, Rewritten for new Hermes Mar 16, 1990: JPT, Trim trailing blanks from Userinp keywords Sep 17, 1990: JPT, Bug removed from USERTEXT part Oct 11, 1990: JPT, INIT can bind to different commun. methods Nov 7, 1990: JPT, atfinis() and atfinisrm() added Dec 3, 1990: JPT, message length bugs in a.o. deputy_c fixed Dec 17, 1990: JPT, subroutine REJECT added Apr 17, 1991: JPT, reply buffer check added for Userinp. Jun 29, 1991: KGB, correct alignment for all variable types. Jul 3, 1991: PRR, exit status 1 for ERROR and DEPUTY etc. Nov 29, 1991: JPT, atabort() added. Dec 2, 1991: JPT, XEQ return codes revised. Sep 07, 1992: JPT, change directory performed in init_c(). Nov 09, 1992: JPT, implemented EDITFILE Oct 15, 1993: JPT, removed buffer size limitations Oct 19, 1993: JPT, added logging of process starts and stops Jan 4, 1994: JPT, implemented LISTCTRL Feb 23, 1994: JPT, removed RAWPAR; implemented ALLPAR Jul 21, 1994: JPT, implemented DECODExxx Jul 22, 1994: JPT, implemented GIPSYTASK Dec 8, 1994: JPT, implemented DCDERRSTR Apr 8, 1997: JPT, implemented notify() Nov 24, 1997: JPT, implemented keystatus() Feb 9, 1998: JPT, implemented status_cb() Jun 10, 1998: JPT, updated doc. for USERTEXT and DEPUTY Jul 1, 1998: JPT, implemented SAVEPAR Jan 17, 2001: JPT, implemented XEQCONT Jun 2, 2004: JPT, use errno.h instead of explicit declaration Jan 15, 2009: JPT, GIPSYTASK returns TRUE after successful INIT