B.2 Association Tables

Association tables provide a fast lookup table for data that must be searched frequently. They are implemented as a linked list of structures. To use these functions, you must link in -loldX, the X10 compatibility library.

Association tables associate arbitrary information with resource IDs. This is similar to the context manager, but the resource IDs used with association tables are existing resources, not created for the purpose of storing data for later retrieval.

An XAssocTable can be used to type X resources. For example, the user may wish to have three or four “types” of windows, each with different properties. This can be accomplished by associating each X window ID with a pointer to a window property data structure defined by the programmer. The generic type for resource IDs is XID.

There are a few guidelines that should be observed when using an XAssocTable:

  • All XIDs are relative to the currently active display. Therefore, if you are using multiple displays, you need to be sure the correct display is active before performing an XAssocTable operation. XAssocTable imposes no restrictions on the number of XIDs per table, the number of XIDs per display, or the number of displays per table.

  • Because of the hashing scheme used by the association mechanism, the following rules for determining the size of XAssocTables should be followed. Associations will be made and looked up more efficiently if the table size (number of buckets in the hashing system) is a power ...

Get XLIB Programming Manual, Rel. 5, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.