Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Tcl_SetAssocData(3)	    Tcl	Library	Procedures	   Tcl_SetAssocData(3)

______________________________________________________________________________

NAME
       Tcl_GetAssocData,  Tcl_SetAssocData, Tcl_DeleteAssocData	- manage asso-
       ciations	of string keys and user	specified data with Tcl	interpreters

SYNOPSIS
       #include	<tcl.h>

       ClientData
       Tcl_GetAssocData(interp,	key, delProcPtr)

       Tcl_SetAssocData(interp,	key, delProc, clientData)

       Tcl_DeleteAssocData(interp, key)

ARGUMENTS
       Tcl_Interp *interp (in)			       Interpreter in which to
						       execute	the  specified
						       command.

       const char *key (in)			       Key   for   association
						       with   which  to	 store
						       data or from  which  to
						       delete	 or   retrieve
						       data.   Typically   the
						       module	prefix	for  a
						       package.

       Tcl_InterpDeleteProc *delProc (in)	       Procedure to call  when
						       interp is deleted.

       Tcl_InterpDeleteProc **delProcPtr (in)	       Pointer	to location in
						       which to	store  address
						       of   current   deletion
						       procedure for  associa-
						       tion.  Ignored if NULL.

       ClientData clientData (in)		       Arbitrary      one-word
						       value  associated  with
						       the  given  key in this
						       interpreter.  This data
						       is owned	by the caller.
______________________________________________________________________________

DESCRIPTION
       These  procedures  allow	 extensions to associate their own data	with a
       Tcl interpreter.	 An association	consists of a  string  key,  typically
       the  name  of the extension, and	a one-word value, which	is typically a
       pointer to a data structure holding data	 specific  to  the  extension.
       Tcl makes no interpretation of either the key or	the value for an asso-
       ciation.

       Storage management is facilitated by storing with  each	association  a
       procedure  to  call when	the interpreter	is deleted. This procedure can
       dispose of the storage occupied by the client's data in any way it sees
       fit.

       Tcl_SetAssocData	creates	an association between a string	key and	a user
       specified datum in the given interpreter.  If there is already an asso-
       ciation with the	given key, Tcl_SetAssocData overwrites it with the new
       information.  It	is up to callers to organize their  use	 of  names  to
       avoid  conflicts,  for example, by using	package	names as the keys.  If
       the deleteProc argument is non-NULL it specifies	the address of a  pro-
       cedure  to  invoke if the interpreter is	deleted	before the association
       is deleted.  DeleteProc should have arguments and result	that match the
       type Tcl_InterpDeleteProc:

	      typedef void Tcl_InterpDeleteProc(
		      ClientData clientData,
		      Tcl_Interp *interp);

       When  deleteProc	is invoked the clientData and interp arguments will be
       the same	as the corresponding  arguments	 passed	 to  Tcl_SetAssocData.
       The  deletion  procedure	 will  not  be	invoked	 if the	association is
       deleted before the interpreter is deleted.

       Tcl_GetAssocData	returns	the datum stored in the	association  with  the
       specified  key in the given interpreter,	and if the delProcPtr field is
       non-NULL, the address indicated by it gets the address  of  the	delete
       procedure  stored  with	this  association.  If no association with the
       specified key exists in the given interpreter Tcl_GetAssocData  returns
       NULL.

       Tcl_DeleteAssocData  deletes an association with	a specified key	in the
       given interpreter.  Then	it calls the deletion procedure.

KEYWORDS
       association, data, deletion procedure, interpreter, key

Tcl				      7.5		   Tcl_SetAssocData(3)

NAME | SYNOPSIS | ARGUMENTS | DESCRIPTION | KEYWORDS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Tcl_DeleteAssocData.tcl87&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help