DIRECTORY Xl USING [Connection, InitializeProcType]; XlService: CEDAR DEFINITIONS ~ BEGIN OPEN Xl; GetService: PROC [c: Connection] RETURNS [service: REF]; PutProp: PROC [service: REF, key: REF, val: REF ¬ NIL]; GetProp: PROC [service: REF, key: REF] RETURNS [val: REF ¬ NIL]; PutServiceProp: PROC [c: Connection, key: REF, val: REF ¬ NIL]; GetServiceProp: PROC [c: Connection, key: REF] RETURNS [val: REF]; GetServicePropAndInit: PROC [c: Connection, key: REF, init: InitializeProcType] RETURNS [val: REF]; END. " XlService.mesa Copyright Σ 1988, 1991 by Xerox Corporation. All rights reserved. Christian Jacobi, May 5, 1988 4:59:50 pm PDT Christian Jacobi, March 7, 1991 5:06 pm PST A "Service" is the union of connections which share name space for X entities [e.g. windows]. A service contains only connections from the same Cedar address space. Rebooting an X server creates a new service [because it creates a new name space]. Gets a ref representing the identity of the service. Identities can be compared or passed to property functions These properties stay inside the Cedar address space and are NOT moved to the actual X server; therefore these properties are vanilla Cedar properties and may contain REF's. [Clients which want to store properties into the real server address space may use normal X properties on the root window [but no REF's please]] Shortcuts Initializing utility Atomically executes init exactly when the service has no key property, then puts the return value as key property. The c parameter is passed to init. Κ©–(cedarcode) style•NewlineDelimiter ™codešœ™Kšœ Οeœ7™BKšœ,™,Kšœ+™+K™—šΟk œ˜ Kšœžœ"˜*K˜—KšΟn œžœž ˜Kšœžœžœ˜K™KšœΟbœT™^K™Kšœ- œl™K™K˜šŸ œžœžœ žœ˜8Kšœ7™7Kšœ=™=—K˜Kš Ÿœžœ žœžœžœžœ˜7šŸœžœ žœžœžœžœžœ˜@K™ΏK˜—K˜Kš Ÿœžœžœžœžœ˜?š Ÿœžœžœžœžœ˜BK™ K™—š Ÿœžœžœžœžœ˜cKšœ™Kšœ–™–—K™Kšžœ˜K˜—…—Σ