Create Xref-Html Frames Remove All Frames
file:c:/local/Cygwin/usr/X11R6/include/X11/SM/SMlib.h (Sat Apr 10 16:25:48 2004
)
1: /* $Xorg: SMlib.h,v 1.4 2001/02/09 02:03:30 xorgcvs Exp $ */
2:
3: /*
4:
5: Copyright 1993, 1998 The Open Group
6:
7: Permission to use, copy, modify, distribute, and sell this software and its
8: documentation for any purpose is hereby granted without fee, provided that
9: the above copyright notice appear in all copies and that both that
10: copyright notice and this permission notice appear in supporting
11: documentation.
12:
13: The above copyright notice and this permission notice shall be included in
14: all copies or substantial portions of the Software.
15:
16: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17: IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18: FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19: OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
20: AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21: CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22:
23: Except as contained in this notice, the name of The Open Group shall not be
24: used in advertising or otherwise to promote the sale, use or other dealings
25: in this Software without prior written authorization from The Open Group.
26:
27: */
28:
29: /*
30: * Author: Ralph Mor, X Consortium
31: */
32:
33: #ifndef _SMLIB_H_
34: #define _SMLIB_H_
35:
36: #include <X11/SM/SM.h>
37: #include <X11/ICE/ICElib.h>
38:
39:
40: /*
41: * Generic SM pointer
42: */
43:
44: typedef IcePointer SmPointer;
45:
46:
47: /*
48: * Connection objects. Defined in SMlibint.h
49: */
50:
51: typedef struct _SmcConn *SmcConn;
52: typedef struct _SmsConn *SmsConn;
53:
54:
55: /*
56: * Session Management property
57: */
58:
59: typedef struct {
60: int length; /* length (in bytes) of the value */
61: SmPointer value; /* the value */
62: } SmPropValue;
63:
64: typedef struct {
65: char *name; /* name of property */
66: char *type; /* type of property */
67: int num_vals; /* number of values in property */
68: SmPropValue *vals; /* the values */
69: } SmProp;
70:
71:
72:
73: /*
74: * SmcCloseConnection status return
75: */
76:
77: typedef enum {
78: SmcClosedNow,
79: SmcClosedASAP,
80: SmcConnectionInUse
81: } SmcCloseStatus;
82:
83:
84:
85: /*
86: * Client callbacks
87: */
88:
89: typedef void (*SmcSaveYourselfProc) (
90: SmcConn /* smcConn */,
91: SmPointer /* clientData */,
92: int /* saveType */,
93: Bool /* shutdown */,
94: int /* interactStyle */,
95: Bool /* fast */
96: );
97:
98: typedef void (*SmcSaveYourselfPhase2Proc) (
99: SmcConn /* smcConn */,
100: SmPointer /* clientData */
101: );
102:
103: typedef void (*SmcInteractProc) (
104: SmcConn /* smcConn */,
105: SmPointer /* clientData */
106: );
107:
108: typedef void (*SmcDieProc) (
109: SmcConn /* smcConn */,
110: SmPointer /* clientData */
111: );
112:
113: typedef void (*SmcShutdownCancelledProc) (
114: SmcConn /* smcConn */,
115: SmPointer /* clientData */
116: );
117:
118: typedef void (*SmcSaveCompleteProc) (
119: SmcConn /* smcConn */,
120: SmPointer /* clientData */
121: );
122:
123: typedef void (*SmcPropReplyProc) (
124: SmcConn /* smcConn */,
125: SmPointer /* clientData */,
126: int /* numProps */,
127: SmProp ** /* props */
128: );
129:
130:
131: /*
132: * Callbacks set up at SmcOpenConnection time
133: */
134:
135: typedef struct {
136:
137: struct {
138: SmcSaveYourselfProc callback;
139: SmPointer client_data;
140: } save_yourself;
141:
142: struct {
143: SmcDieProc callback;
144: SmPointer client_data;
145: } die;
146:
147: struct {
148: SmcSaveCompleteProc callback;
149: SmPointer client_data;
150: } save_complete;
151:
152: struct {
153: SmcShutdownCancelledProc callback;
154: SmPointer client_data;
155: } shutdown_cancelled;
156:
157: } SmcCallbacks;
158:
159: #define SmcSaveYourselfProcMask (1L << 0)
160: #define SmcDieProcMask (1L << 1)
161: #define SmcSaveCompleteProcMask (1L << 2)
162: #define SmcShutdownCancelledProcMask (1L << 3)
163:
164:
165:
166: /*
167: * Session manager callbacks
168: */
169:
170: typedef Status (*SmsRegisterClientProc) (
171: SmsConn /* smsConn */,
172: SmPointer /* managerData */,
173: char * /* previousId */
174: );
175:
176: typedef void (*SmsInteractRequestProc) (
177: SmsConn /* smsConn */,
178: SmPointer /* managerData */,
179: int /* dialogType */
180: );
181:
182: typedef void (*SmsInteractDoneProc) (
183: SmsConn /* smsConn */,
184: SmPointer /* managerData */,
185: Bool /* cancelShutdown */
186: );
187:
188: typedef void (*SmsSaveYourselfRequestProc) (
189: SmsConn /* smsConn */,
190: SmPointer /* managerData */,
191: int /* saveType */,
192: Bool /* shutdown */,
193: int /* interactStyle */,
194: Bool /* fast */,
195: Bool /* global */
196: );
197:
198: typedef void (*SmsSaveYourselfPhase2RequestProc) (
199: SmsConn /* smsConn */,
200: SmPointer /* managerData */
201: );
202:
203: typedef void (*SmsSaveYourselfDoneProc) (
204: SmsConn /* smsConn */,
205: SmPointer /* managerData */,
206: Bool /* success */
207: );
208:
209: typedef void (*SmsCloseConnectionProc) (
210: SmsConn /* smsConn */,
211: SmPointer /* managerData */,
212: int /* count */,
213: char ** /* reasonMsgs */
214: );
215:
216: typedef void (*SmsSetPropertiesProc) (
217: SmsConn /* smsConn */,
218: SmPointer /* managerData */,
219: int /* numProps */,
220: SmProp ** /* props */
221: );
222:
223: typedef void (*SmsDeletePropertiesProc) (
224: SmsConn /* smsConn */,
225: SmPointer /* managerData */,
226: int /* numProps */,
227: char ** /* propNames */
228: );
229:
230: typedef void (*SmsGetPropertiesProc) (
231: SmsConn /* smsConn */,
232: SmPointer /* managerData */
233: );
234:
235:
236: /*
237: * Callbacks set up by a session manager when a new client connects.
238: */
239:
240: typedef struct {
241:
242: struct {
243: SmsRegisterClientProc callback;
244: SmPointer manager_data;
245: } register_client;
246:
247: struct {
248: SmsInteractRequestProc callback;
249: SmPointer manager_data;
250: } interact_request;
251:
252: struct {
253: SmsInteractDoneProc callback;
254: SmPointer manager_data;
255: } interact_done;
256:
257: struct {
258: SmsSaveYourselfRequestProc callback;
259: SmPointer manager_data;
260: } save_yourself_request;
261:
262: struct {
263: SmsSaveYourselfPhase2RequestProc callback;
264: SmPointer manager_data;
265: } save_yourself_phase2_request;
266:
267: struct {
268: SmsSaveYourselfDoneProc callback;
269: SmPointer manager_data;
270: } save_yourself_done;
271:
272: struct {
273: SmsCloseConnectionProc callback;
274: SmPointer manager_data;
275: } close_connection;
276:
277: struct {
278: SmsSetPropertiesProc callback;
279: SmPointer manager_data;
280: } set_properties;
281:
282: struct {
283: SmsDeletePropertiesProc callback;
284: SmPointer manager_data;
285: } delete_properties;
286:
287: struct {
288: SmsGetPropertiesProc callback;
289: SmPointer manager_data;
290: } get_properties;
291:
292: } SmsCallbacks;
293:
294:
295: #define SmsRegisterClientProcMask (1L << 0)
296: #define SmsInteractRequestProcMask (1L << 1)
297: #define SmsInteractDoneProcMask (1L << 2)
298: #define SmsSaveYourselfRequestProcMask (1L << 3)
299: #define SmsSaveYourselfP2RequestProcMask (1L << 4)
300: #define SmsSaveYourselfDoneProcMask (1L << 5)
301: #define SmsCloseConnectionProcMask (1L << 6)
302: #define SmsSetPropertiesProcMask (1L << 7)
303: #define SmsDeletePropertiesProcMask (1L << 8)
304: #define SmsGetPropertiesProcMask (1L << 9)
305:
306:
307:
308: typedef Status (*SmsNewClientProc) (
309: SmsConn /* smsConn */,
310: SmPointer /* managerData */,
311: unsigned long * /* maskRet */,
312: SmsCallbacks * /* callbacksRet */,
313: char ** /* failureReasonRet */
314: );
315:
316:
317:
318: /*
319: * Error handlers
320: */
321:
322: typedef void (*SmcErrorHandler) (
323: SmcConn /* smcConn */,
324: Bool /* swap */,
325: int /* offendingMinorOpcode */,
326: unsigned long /* offendingSequence */,
327: int /* errorClass */,
328: int /* severity */,
329: SmPointer /* values */
330: );
331:
332: typedef void (*SmsErrorHandler) (
333: SmsConn /* smsConn */,
334: Bool /* swap */,
335: int /* offendingMinorOpcode */,
336: unsigned long /* offendingSequence */,
337: int /* errorClass */,
338: int /* severity */,
339: SmPointer /* values */
340: );
341:
342:
343:
344: /*
345: * Function Prototypes
346: */
347:
348: _XFUNCPROTOBEGIN
349:
350: extern SmcConn SmcOpenConnection (
351: char * /* networkIdsList */,
352: SmPointer /* context */,
353: int /* xsmpMajorRev */,
354: int /* xsmpMinorRev */,
355: unsigned long /* mask */,
356: SmcCallbacks * /* callbacks */,
357: char * /* previousId */,
358: char ** /* clientIdRet */,
359: int /* errorLength */,
360: char * /* errorStringRet */
361: );
362:
363: extern SmcCloseStatus SmcCloseConnection (
364: SmcConn /* smcConn */,
365: int /* count */,
366: char ** /* reasonMsgs */
367: );
368:
369: extern void SmcModifyCallbacks (
370: SmcConn /* smcConn */,
371: unsigned long /* mask */,
372: SmcCallbacks * /* callbacks */
373: );
374:
375: extern void SmcSetProperties (
376: SmcConn /* smcConn */,
377: int /* numProps */,
378: SmProp ** /* props */
379: );
380:
381: extern void SmcDeleteProperties (
382: SmcConn /* smcConn */,
383: int /* numProps */,
384: char ** /* propNames */
385: );
386:
387: extern Status SmcGetProperties (
388: SmcConn /* smcConn */,
389: SmcPropReplyProc /* propReplyProc */,
390: SmPointer /* clientData */
391: );
392:
393: extern Status SmcInteractRequest (
394: SmcConn /* smcConn */,
395: int /* dialogType */,
396: SmcInteractProc /* interactProc */,
397: SmPointer /* clientData */
398: );
399:
400: extern void SmcInteractDone (
401: SmcConn /* smcConn */,
402: Bool /* cancelShutdown */
403: );
404:
405: extern void SmcRequestSaveYourself (
406: SmcConn /* smcConn */,
407: int /* saveType */,
408: Bool /* shutdown */,
409: int /* interactStyle */,
410: Bool /* fast */,
411: Bool /* global */
412: );
413:
414: extern Status SmcRequestSaveYourselfPhase2 (
415: SmcConn /* smcConn */,
416: SmcSaveYourselfPhase2Proc /* saveYourselfPhase2Proc */,
417: SmPointer /* clientData */
418: );
419:
420: extern void SmcSaveYourselfDone (
421: SmcConn /* smcConn */,
422: Bool /* success */
423: );
424:
425: extern int SmcProtocolVersion (
426: SmcConn /* smcConn */
427: );
428:
429: extern int SmcProtocolRevision (
430: SmcConn /* smcConn */
431: );
432:
433: extern char *SmcVendor (
434: SmcConn /* smcConn */
435: );
436:
437: extern char *SmcRelease (
438: SmcConn /* smcConn */
439: );
440:
441: extern char *SmcClientID (
442: SmcConn /* smcConn */
443: );
444:
445: extern IceConn SmcGetIceConnection (
446: SmcConn /* smcConn */
447: );
448:
449: extern Status SmsInitialize (
450: char * /* vendor */,
451: char * /* release */,
452: SmsNewClientProc /* newClientProc */,
453: SmPointer /* managerData */,
454: IceHostBasedAuthProc /* hostBasedAuthProc */,
455: int /* errorLength */,
456: char * /* errorStringRet */
457: );
458:
459: extern char *SmsClientHostName (
460: SmsConn /* smsConn */
461: );
462:
463: extern char *SmsGenerateClientID (
464: SmsConn /* smsConn */
465: );
466:
467: extern Status SmsRegisterClientReply (
468: SmsConn /* smsConn */,
469: char * /* clientId */
470: );
471:
472: extern void SmsSaveYourself (
473: SmsConn /* smsConn */,
474: int /* saveType */,
475: Bool /* shutdown */,
476: int /* interactStyle */,
477: Bool /* fast */
478: );
479:
480: extern void SmsSaveYourselfPhase2 (
481: SmsConn /* smsConn */
482: );
483:
484: extern void SmsInteract (
485: SmsConn /* smsConn */
486: );
487:
488: extern void SmsDie (
489: SmsConn /* smsConn */
490: );
491:
492: extern void SmsSaveComplete (
493: SmsConn /* smsConn */
494: );
495:
496: extern void SmsShutdownCancelled (
497: SmsConn /* smsConn */
498: );
499:
500: extern void SmsReturnProperties (
501: SmsConn /* smsConn */,
502: int /* numProps */,
503: SmProp ** /* props */
504: );
505:
506: extern void SmsCleanUp (
507: SmsConn /* smsConn */
508: );
509:
510: extern int SmsProtocolVersion (
511: SmsConn /* smsConn */
512: );
513:
514: extern int SmsProtocolRevision (
515: SmsConn /* smsConn */
516: );
517:
518: extern char *SmsClientID (
519: SmsConn /* smsConn */
520: );
521:
522: extern IceConn SmsGetIceConnection (
523: SmsConn /* smsConn */
524: );
525:
526: extern SmcErrorHandler SmcSetErrorHandler (
527: SmcErrorHandler /* handler */
528: );
529:
530: extern SmsErrorHandler SmsSetErrorHandler (
531: SmsErrorHandler /* handler */
532: );
533:
534: extern void SmFreeProperty (
535: SmProp * /* prop */
536: );
537:
538: extern void SmFreeReasons (
539: int /* count */,
540: char ** /* reasonMsgs */
541: );
542:
543: _XFUNCPROTOEND
544:
545: #endif /* _SMLIB_H_ */
546:
Html form generated by Xrefactory version 1.6.7 on Fri Sep 03 17:18:59 2004