15.7 Data Management
Xlib provides two ways to help you manage data within an application: the context manager and association tables. The former saves you the trouble of creating arrays and dynamically allocating memory for data to be used only within your application. The latter is a different way of doing the same thing, maintained for backwards compatibility with X10. We will describe only the context manager. If you are interested in investigating association tables, see Appendix B.
15.7.1 The Context Manager
Four routines are provided to let you associate data with a
window locally in Xlib, rather than in the server as in properties.
The context manager routines store and retrieve untyped data according
to the display, a window ID, and an assigned context ID. The display
argument to the context manager routine (returned from
XOpenDisplay()
) is used as an additional dimension
to the array, not as a pointer to the display structure. No requests
to the server are made.
First, you call XUniqueContext()
to obtain an
ID for a particular type of information you want to assign to windows.
XUniqueContext()
just provides a unique integer ID
every time you call it (you can also make up your own if you wish).
This ID indicates to the application what type of information is
stored, but none of the calls require you to specify the data type.
Then use XSaveContext()
to store information into
the context manager and XFindContext()
to read it. If you plan to rewrite a particular piece of data ...
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.