Query: ns_tclinitinterps
OS: debian
Section: 3aolserv
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
Ns_TclInit(3aolserver) AOLserver Library Procedures Ns_TclInit(3aolserver) __________________________________________________________________________________________________________________________________________________NAMENs_TclInitInterps, Ns_TclInitModule, Ns_TclInterpServer, Ns_TclLibrary - library proceduresSYNOPSIS#include "ns.h" int Ns_TclInitInterps(server, initProc, arg) Ns_TclInitModule(arg, arg) char * Ns_TclInterpServer(interp) char * Ns_TclLibrary(void)ARGUMENTSchar *server (in) Name of virtual server. Ns_TclInterpInitProc *initProc (in) Procedure to call to initialize interps. void *arg (in) Callback data to pass to initProc. Tcl_Interp *interp (in) Tcl interp to get server. _________________________________________________________________DESCRIPTIONNs_TclInitInterps arranges for initProc to be called on the startup initialization interp. initProc should have arguments and result that match the type Ns_TclInterpInitProc: typedef int Ns_TclInterpInitProc(Tcl_Interp *interp, void *arg); The arg parameter to initProc is a copy of the arg argument given to Ns_TclInitInterps. A typical initProc will create new commands in the given interp with Tcl_CreateCommand. The following AOLserver module example results in the msg command being in all interps. The command simply sets the "hello" static string as the interp result: static Ns_TclInterpInitProc AddCmds; static Tcl_CmdProc MsgCmd; int Ns_ModuleInit(char *server, char *module) { static char *arg = "hello"; return Ns_TclInitInterps(server, AddCmds, arg); } static int AddCmds(Tcl_Interp *interp, void *arg) { Tcl_CreateCommand(interp, "msg", MsgCmd, arg, NULL); return TCL_OK; } static int MsgCmd(ClientData arg, Tcl_Interp *interp, int argc, char **argv) { Tcl_SetResult(interp, (char *) arg, TCL_STATIC); return TCL_OK; } In AOLserver 3.x, the effect of Ns_TclInitInterps is to invoke initProc immediately on the single initializaton interp of the server and the result of Ns_TclInitInterps is the return code of initProc. The state of this interp (command, procedures) will then be copied to other interps when created via the Ns_TclAllocInterp routine. This differs from the original AOLserver 2.0 where initProc was called on each interp in an interp pool, the 2.1-2.3 behavior where initProc was called once on an interp linked to the per-server shared command tables, and the upcoming 4.0 behavior where initProc is called at interp create time. In fact, the 4.0 behavior is that of the Ns_TclReg- isterAtCreate routine. In practice, if your initProc does nothing but create commands with NULL or shared client data the effect is the same in all releases. Ns_TclInterpServer returns the virtual server in which the given interp was created. Ns_TclLibrary returns the shared Tcl library of the server installation (e.g., /usr/local/aolserver/modules/tcl).SEE ALSONs_TclRegisterAtCreate(3), Ns_TclAllocInterp(3)KEYWORDSAOLserver 4.0 Ns_TclInit(3aolserver)
Related Man Pages |
---|
ns_tclinitinterps(3aolserv) - debian |
ns_tclinitmodule(3aolserv) - debian |
tcl_staticpackage(3) - osx |
tcl_staticpackage(3) - minix |
tcl_staticpackage(3) - redhat |
Similar Topics in the Unix Linux Community |
---|
Is UNIX an open source OS ? |
Introduction |
Detecting unused variables... |
New UNIX and Linux History Sections |