From: Stephen D. <sd...@us...> - 2005-03-26 16:40:53
|
Update of /cvsroot/naviserver/naviserver/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17754/include Modified Files: ns.h Log Message: * include/ns.h: * nsd/nsd.h: * nsd/Makefile: * nsd/tclcallbacks.c: Add routines to support calling Tcl code from C for callback events. * nsd/proc.c: * nsd/tclcmds.c: * nsd/tclsched.c: Update to use new callback and parse proc APIs. Index: ns.h =================================================================== RCS file: /cvsroot/naviserver/naviserver/include/ns.h,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** ns.h 26 Mar 2005 15:53:06 -0000 1.11 --- ns.h 26 Mar 2005 16:40:40 -0000 1.12 *************** *** 388,391 **** --- 388,403 ---- /* + * The following structure defines the Tcl code to run + * for a callback function. + */ + + typedef struct Ns_TclCallback { + void *cbProc; + char *server; + char *script; + char *scriptarg; + } Ns_TclCallback; + + /* * The following structure defines an I/O * scatter/gather buffer for WIN32. *************** *** 964,968 **** */ - NS_EXTERN void Ns_RegisterProcDesc(void *procAddr, char *desc); NS_EXTERN void Ns_RegisterProcInfo(void *procAddr, char *desc, Ns_ArgProc *argProc); NS_EXTERN void Ns_GetProcInfo(Tcl_DString *dsPtr, void *procAddr, void *arg); --- 976,979 ---- *************** *** 1163,1166 **** --- 1174,1193 ---- /* + * tclcallbacks.c: + */ + + NS_EXTERN Ns_TclCallback *Ns_TclNewCallback(Tcl_Interp *interp, void *cbProc, + char *script, char *scriptarg); + NS_EXTERN Ns_TclCallback *Ns_TclNewCallbackObj(Tcl_Interp *interp, + void *cbProc, + Tcl_Obj *scriptObjPtr, + Tcl_Obj *argObjPtr); + NS_EXTERN int Ns_TclEvalCallback(Tcl_Interp *interp, Ns_TclCallback *cbPtr, + Ns_DString *result, ...); + NS_EXTERN Ns_Callback Ns_TclCallbackProc; + NS_EXTERN Ns_Callback Ns_TclFreeCallback; + NS_EXTERN Ns_ArgProc Ns_TclCallbackArgProc; + + /* * tclenv.c: */ |