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