Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

Tcl_GetAssocData (3tcl)

Name

Tcl_GetAssocData - 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)

Description

Tcl_SetAssocData(3tcl)      Tcl Library Procedures      Tcl_SetAssocData(3tcl)



______________________________________________________________________________

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



ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | runtime/tcl-8    |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+

NOTES
       Source code for open source software components in Oracle  Solaris  can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source was downloaded from  http://prdownloads.sourceforge.net/tcl/tcl-
       core8.6.7-src.tar.gz.

       Further information about this software can be found on the open source
       community website at https://www.tcl.tk/.



Tcl                                   7.5               Tcl_SetAssocData(3tcl)