ICElib.h revision 266e564d
1266e564dSmrg/* $Xorg: ICElib.h,v 1.5 2001/02/09 02:03:26 xorgcvs Exp $ */ 2266e564dSmrg/****************************************************************************** 3266e564dSmrg 4266e564dSmrg 5266e564dSmrgCopyright 1993, 1998 The Open Group 6266e564dSmrg 7266e564dSmrgPermission to use, copy, modify, distribute, and sell this software and its 8266e564dSmrgdocumentation for any purpose is hereby granted without fee, provided that 9266e564dSmrgthe above copyright notice appear in all copies and that both that 10266e564dSmrgcopyright notice and this permission notice appear in supporting 11266e564dSmrgdocumentation. 12266e564dSmrg 13266e564dSmrgThe above copyright notice and this permission notice shall be included in 14266e564dSmrgall copies or substantial portions of the Software. 15266e564dSmrg 16266e564dSmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17266e564dSmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18266e564dSmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19266e564dSmrgOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 20266e564dSmrgAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 21266e564dSmrgCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22266e564dSmrg 23266e564dSmrgExcept as contained in this notice, the name of The Open Group shall not be 24266e564dSmrgused in advertising or otherwise to promote the sale, use or other dealings 25266e564dSmrgin this Software without prior written authorization from The Open Group. 26266e564dSmrg 27266e564dSmrgAuthor: Ralph Mor, X Consortium 28266e564dSmrg******************************************************************************/ 29266e564dSmrg/* $XFree86: xc/lib/ICE/ICElib.h,v 3.4 2001/12/14 19:53:35 dawes Exp $ */ 30266e564dSmrg 31266e564dSmrg#ifndef _ICELIB_H_ 32266e564dSmrg#define _ICELIB_H_ 33266e564dSmrg 34266e564dSmrg#include <X11/ICE/ICE.h> 35266e564dSmrg#include <X11/Xfuncproto.h> 36266e564dSmrg 37266e564dSmrg#define Bool int 38266e564dSmrg#define Status int 39266e564dSmrg#define True 1 40266e564dSmrg#define False 0 41266e564dSmrg 42266e564dSmrgtypedef void *IcePointer; 43266e564dSmrg 44266e564dSmrgtypedef enum { 45266e564dSmrg IcePoAuthHaveReply, 46266e564dSmrg IcePoAuthRejected, 47266e564dSmrg IcePoAuthFailed, 48266e564dSmrg IcePoAuthDoneCleanup 49266e564dSmrg} IcePoAuthStatus; 50266e564dSmrg 51266e564dSmrgtypedef enum { 52266e564dSmrg IcePaAuthContinue, 53266e564dSmrg IcePaAuthAccepted, 54266e564dSmrg IcePaAuthRejected, 55266e564dSmrg IcePaAuthFailed 56266e564dSmrg} IcePaAuthStatus; 57266e564dSmrg 58266e564dSmrgtypedef enum { 59266e564dSmrg IceConnectPending, 60266e564dSmrg IceConnectAccepted, 61266e564dSmrg IceConnectRejected, 62266e564dSmrg IceConnectIOError 63266e564dSmrg} IceConnectStatus; 64266e564dSmrg 65266e564dSmrgtypedef enum { 66266e564dSmrg IceProtocolSetupSuccess, 67266e564dSmrg IceProtocolSetupFailure, 68266e564dSmrg IceProtocolSetupIOError, 69266e564dSmrg IceProtocolAlreadyActive 70266e564dSmrg} IceProtocolSetupStatus; 71266e564dSmrg 72266e564dSmrgtypedef enum { 73266e564dSmrg IceAcceptSuccess, 74266e564dSmrg IceAcceptFailure, 75266e564dSmrg IceAcceptBadMalloc 76266e564dSmrg} IceAcceptStatus; 77266e564dSmrg 78266e564dSmrgtypedef enum { 79266e564dSmrg IceClosedNow, 80266e564dSmrg IceClosedASAP, 81266e564dSmrg IceConnectionInUse, 82266e564dSmrg IceStartedShutdownNegotiation 83266e564dSmrg} IceCloseStatus; 84266e564dSmrg 85266e564dSmrgtypedef enum { 86266e564dSmrg IceProcessMessagesSuccess, 87266e564dSmrg IceProcessMessagesIOError, 88266e564dSmrg IceProcessMessagesConnectionClosed 89266e564dSmrg} IceProcessMessagesStatus; 90266e564dSmrg 91266e564dSmrgtypedef struct { 92266e564dSmrg unsigned long sequence_of_request; 93266e564dSmrg int major_opcode_of_request; 94266e564dSmrg int minor_opcode_of_request; 95266e564dSmrg IcePointer reply; 96266e564dSmrg} IceReplyWaitInfo; 97266e564dSmrg 98266e564dSmrgtypedef struct _IceConn *IceConn; 99266e564dSmrgtypedef struct _IceListenObj *IceListenObj; 100266e564dSmrg 101266e564dSmrgtypedef void (*IceWatchProc) ( 102266e564dSmrg IceConn /* iceConn */, 103266e564dSmrg IcePointer /* clientData */, 104266e564dSmrg Bool /* opening */, 105266e564dSmrg IcePointer * /* watchData */ 106266e564dSmrg); 107266e564dSmrg 108266e564dSmrgtypedef void (*IcePoProcessMsgProc) ( 109266e564dSmrg IceConn /* iceConn */, 110266e564dSmrg IcePointer /* clientData */, 111266e564dSmrg int /* opcode */, 112266e564dSmrg unsigned long /* length */, 113266e564dSmrg Bool /* swap */, 114266e564dSmrg IceReplyWaitInfo * /* replyWait */, 115266e564dSmrg Bool * /* replyReadyRet */ 116266e564dSmrg); 117266e564dSmrg 118266e564dSmrgtypedef void (*IcePaProcessMsgProc) ( 119266e564dSmrg IceConn /* iceConn */, 120266e564dSmrg IcePointer /* clientData */, 121266e564dSmrg int /* opcode */, 122266e564dSmrg unsigned long /* length */, 123266e564dSmrg Bool /* swap */ 124266e564dSmrg); 125266e564dSmrg 126266e564dSmrgtypedef struct { 127266e564dSmrg int major_version; 128266e564dSmrg int minor_version; 129266e564dSmrg IcePoProcessMsgProc process_msg_proc; 130266e564dSmrg} IcePoVersionRec; 131266e564dSmrg 132266e564dSmrgtypedef struct { 133266e564dSmrg int major_version; 134266e564dSmrg int minor_version; 135266e564dSmrg IcePaProcessMsgProc process_msg_proc; 136266e564dSmrg} IcePaVersionRec; 137266e564dSmrg 138266e564dSmrgtypedef IcePoAuthStatus (*IcePoAuthProc) ( 139266e564dSmrg IceConn /* iceConn */, 140266e564dSmrg IcePointer * /* authStatePtr */, 141266e564dSmrg Bool /* cleanUp */, 142266e564dSmrg Bool /* swap */, 143266e564dSmrg int /* authDataLen */, 144266e564dSmrg IcePointer /* authData */, 145266e564dSmrg int * /* replyDataLenRet */, 146266e564dSmrg IcePointer * /* replyDataRet */, 147266e564dSmrg char ** /* errorStringRet */ 148266e564dSmrg); 149266e564dSmrg 150266e564dSmrgtypedef IcePaAuthStatus (*IcePaAuthProc) ( 151266e564dSmrg IceConn /* iceConn */, 152266e564dSmrg IcePointer * /* authStatePtr */, 153266e564dSmrg Bool /* swap */, 154266e564dSmrg int /* authDataLen */, 155266e564dSmrg IcePointer /* authData */, 156266e564dSmrg int * /* replyDataLenRet */, 157266e564dSmrg IcePointer * /* replyDataRet */, 158266e564dSmrg char ** /* errorStringRet */ 159266e564dSmrg); 160266e564dSmrg 161266e564dSmrgtypedef Bool (*IceHostBasedAuthProc) ( 162266e564dSmrg char * /* hostName */ 163266e564dSmrg); 164266e564dSmrg 165266e564dSmrgtypedef Status (*IceProtocolSetupProc) ( 166266e564dSmrg IceConn /* iceConn */, 167266e564dSmrg int /* majorVersion */, 168266e564dSmrg int /* minorVersion */, 169266e564dSmrg char * /* vendor */, 170266e564dSmrg char * /* release */, 171266e564dSmrg IcePointer * /* clientDataRet */, 172266e564dSmrg char ** /* failureReasonRet */ 173266e564dSmrg); 174266e564dSmrg 175266e564dSmrgtypedef void (*IceProtocolActivateProc) ( 176266e564dSmrg IceConn /* iceConn */, 177266e564dSmrg IcePointer /* clientData */ 178266e564dSmrg); 179266e564dSmrg 180266e564dSmrgtypedef void (*IceIOErrorProc) ( 181266e564dSmrg IceConn /* iceConn */ 182266e564dSmrg); 183266e564dSmrg 184266e564dSmrgtypedef void (*IcePingReplyProc) ( 185266e564dSmrg IceConn /* iceConn */, 186266e564dSmrg IcePointer /* clientData */ 187266e564dSmrg); 188266e564dSmrg 189266e564dSmrgtypedef void (*IceErrorHandler) ( 190266e564dSmrg IceConn /* iceConn */, 191266e564dSmrg Bool /* swap */, 192266e564dSmrg int /* offendingMinorOpcode */, 193266e564dSmrg unsigned long /* offendingSequence */, 194266e564dSmrg int /* errorClass */, 195266e564dSmrg int /* severity */, 196266e564dSmrg IcePointer /* values */ 197266e564dSmrg); 198266e564dSmrg 199266e564dSmrgtypedef void (*IceIOErrorHandler) ( 200266e564dSmrg IceConn /* iceConn */ 201266e564dSmrg); 202266e564dSmrg 203266e564dSmrg 204266e564dSmrg/* 205266e564dSmrg * Function prototypes 206266e564dSmrg */ 207266e564dSmrg 208266e564dSmrg_XFUNCPROTOBEGIN 209266e564dSmrg 210266e564dSmrgextern int IceRegisterForProtocolSetup ( 211266e564dSmrg char * /* protocolName */, 212266e564dSmrg char * /* vendor */, 213266e564dSmrg char * /* release */, 214266e564dSmrg int /* versionCount */, 215266e564dSmrg IcePoVersionRec * /* versionRecs */, 216266e564dSmrg int /* authCount */, 217266e564dSmrg char ** /* authNames */, 218266e564dSmrg IcePoAuthProc * /* authProcs */, 219266e564dSmrg IceIOErrorProc /* IOErrorProc */ 220266e564dSmrg); 221266e564dSmrg 222266e564dSmrgextern int IceRegisterForProtocolReply ( 223266e564dSmrg char * /* protocolName */, 224266e564dSmrg char * /* vendor */, 225266e564dSmrg char * /* release */, 226266e564dSmrg int /* versionCount */, 227266e564dSmrg IcePaVersionRec * /* versionRecs */, 228266e564dSmrg int /* authCount */, 229266e564dSmrg char ** /* authNames */, 230266e564dSmrg IcePaAuthProc * /* authProcs */, 231266e564dSmrg IceHostBasedAuthProc /* hostBasedAuthProc */, 232266e564dSmrg IceProtocolSetupProc /* protocolSetupProc */, 233266e564dSmrg IceProtocolActivateProc /* protocolActivateProc */, 234266e564dSmrg IceIOErrorProc /* IOErrorProc */ 235266e564dSmrg); 236266e564dSmrg 237266e564dSmrgextern IceConn IceOpenConnection ( 238266e564dSmrg char * /* networkIdsList */, 239266e564dSmrg IcePointer /* context */, 240266e564dSmrg Bool /* mustAuthenticate */, 241266e564dSmrg int /* majorOpcodeCheck */, 242266e564dSmrg int /* errorLength */, 243266e564dSmrg char * /* errorStringRet */ 244266e564dSmrg); 245266e564dSmrg 246266e564dSmrgextern IcePointer IceGetConnectionContext ( 247266e564dSmrg IceConn /* iceConn */ 248266e564dSmrg); 249266e564dSmrg 250266e564dSmrgextern Status IceListenForConnections ( 251266e564dSmrg int * /* countRet */, 252266e564dSmrg IceListenObj ** /* listenObjsRet */, 253266e564dSmrg int /* errorLength */, 254266e564dSmrg char * /* errorStringRet */ 255266e564dSmrg); 256266e564dSmrg 257266e564dSmrgextern Status IceListenForWellKnownConnections ( 258266e564dSmrg char * /* port */, 259266e564dSmrg int * /* countRet */, 260266e564dSmrg IceListenObj ** /* listenObjsRet */, 261266e564dSmrg int /* errorLength */, 262266e564dSmrg char * /* errorStringRet */ 263266e564dSmrg); 264266e564dSmrg 265266e564dSmrgextern int IceGetListenConnectionNumber ( 266266e564dSmrg IceListenObj /* listenObj */ 267266e564dSmrg); 268266e564dSmrg 269266e564dSmrgextern char *IceGetListenConnectionString ( 270266e564dSmrg IceListenObj /* listenObj */ 271266e564dSmrg); 272266e564dSmrg 273266e564dSmrgextern char *IceComposeNetworkIdList ( 274266e564dSmrg int /* count */, 275266e564dSmrg IceListenObj * /* listenObjs */ 276266e564dSmrg); 277266e564dSmrg 278266e564dSmrgextern void IceFreeListenObjs ( 279266e564dSmrg int /* count */, 280266e564dSmrg IceListenObj * /* listenObjs */ 281266e564dSmrg); 282266e564dSmrg 283266e564dSmrgextern void IceSetHostBasedAuthProc ( 284266e564dSmrg IceListenObj /* listenObj */, 285266e564dSmrg IceHostBasedAuthProc /* hostBasedAuthProc */ 286266e564dSmrg); 287266e564dSmrg 288266e564dSmrgextern IceConn IceAcceptConnection ( 289266e564dSmrg IceListenObj /* listenObj */, 290266e564dSmrg IceAcceptStatus * /* statusRet */ 291266e564dSmrg); 292266e564dSmrg 293266e564dSmrgextern void IceSetShutdownNegotiation ( 294266e564dSmrg IceConn /* iceConn */, 295266e564dSmrg Bool /* negotiate */ 296266e564dSmrg); 297266e564dSmrg 298266e564dSmrgextern Bool IceCheckShutdownNegotiation ( 299266e564dSmrg IceConn /* iceConn */ 300266e564dSmrg); 301266e564dSmrg 302266e564dSmrgextern IceCloseStatus IceCloseConnection ( 303266e564dSmrg IceConn /* iceConn */ 304266e564dSmrg); 305266e564dSmrg 306266e564dSmrgextern Status IceAddConnectionWatch ( 307266e564dSmrg IceWatchProc /* watchProc */, 308266e564dSmrg IcePointer /* clientData */ 309266e564dSmrg); 310266e564dSmrg 311266e564dSmrgextern void IceRemoveConnectionWatch ( 312266e564dSmrg IceWatchProc /* watchProc */, 313266e564dSmrg IcePointer /* clientData */ 314266e564dSmrg); 315266e564dSmrg 316266e564dSmrgextern IceProtocolSetupStatus IceProtocolSetup ( 317266e564dSmrg IceConn /* iceConn */, 318266e564dSmrg int /* myOpcode */, 319266e564dSmrg IcePointer /* clientData */, 320266e564dSmrg Bool /* mustAuthenticate */, 321266e564dSmrg int * /* majorVersionRet */, 322266e564dSmrg int * /* minorVersionRet */, 323266e564dSmrg char ** /* vendorRet */, 324266e564dSmrg char ** /* releaseRet */, 325266e564dSmrg int /* errorLength */, 326266e564dSmrg char * /* errorStringRet */ 327266e564dSmrg); 328266e564dSmrg 329266e564dSmrgextern Status IceProtocolShutdown ( 330266e564dSmrg IceConn /* iceConn */, 331266e564dSmrg int /* majorOpcode */ 332266e564dSmrg); 333266e564dSmrg 334266e564dSmrgextern IceProcessMessagesStatus IceProcessMessages ( 335266e564dSmrg IceConn /* iceConn */, 336266e564dSmrg IceReplyWaitInfo * /* replyWait */, 337266e564dSmrg Bool * /* replyReadyRet */ 338266e564dSmrg); 339266e564dSmrg 340266e564dSmrgextern Status IcePing ( 341266e564dSmrg IceConn /* iceConn */, 342266e564dSmrg IcePingReplyProc /* pingReplyProc */, 343266e564dSmrg IcePointer /* clientData */ 344266e564dSmrg); 345266e564dSmrg 346266e564dSmrgextern char *IceAllocScratch ( 347266e564dSmrg IceConn /* iceConn */, 348266e564dSmrg unsigned long /* size */ 349266e564dSmrg); 350266e564dSmrg 351266e564dSmrgextern int IceFlush ( 352266e564dSmrg IceConn /* iceConn */ 353266e564dSmrg); 354266e564dSmrg 355266e564dSmrgextern int IceGetOutBufSize ( 356266e564dSmrg IceConn /* iceConn */ 357266e564dSmrg); 358266e564dSmrg 359266e564dSmrgextern int IceGetInBufSize ( 360266e564dSmrg IceConn /* iceConn */ 361266e564dSmrg); 362266e564dSmrg 363266e564dSmrgextern IceConnectStatus IceConnectionStatus ( 364266e564dSmrg IceConn /* iceConn */ 365266e564dSmrg); 366266e564dSmrg 367266e564dSmrgextern char *IceVendor ( 368266e564dSmrg IceConn /* iceConn */ 369266e564dSmrg); 370266e564dSmrg 371266e564dSmrgextern char *IceRelease ( 372266e564dSmrg IceConn /* iceConn */ 373266e564dSmrg); 374266e564dSmrg 375266e564dSmrgextern int IceProtocolVersion ( 376266e564dSmrg IceConn /* iceConn */ 377266e564dSmrg); 378266e564dSmrg 379266e564dSmrgextern int IceProtocolRevision ( 380266e564dSmrg IceConn /* iceConn */ 381266e564dSmrg); 382266e564dSmrg 383266e564dSmrgextern int IceConnectionNumber ( 384266e564dSmrg IceConn /* iceConn */ 385266e564dSmrg); 386266e564dSmrg 387266e564dSmrgextern char *IceConnectionString ( 388266e564dSmrg IceConn /* iceConn */ 389266e564dSmrg); 390266e564dSmrg 391266e564dSmrgextern unsigned long IceLastSentSequenceNumber ( 392266e564dSmrg IceConn /* iceConn */ 393266e564dSmrg); 394266e564dSmrg 395266e564dSmrgextern unsigned long IceLastReceivedSequenceNumber ( 396266e564dSmrg IceConn /* iceConn */ 397266e564dSmrg); 398266e564dSmrg 399266e564dSmrgextern Bool IceSwapping ( 400266e564dSmrg IceConn /* iceConn */ 401266e564dSmrg); 402266e564dSmrg 403266e564dSmrgextern IceErrorHandler IceSetErrorHandler ( 404266e564dSmrg IceErrorHandler /* handler */ 405266e564dSmrg); 406266e564dSmrg 407266e564dSmrgextern IceIOErrorHandler IceSetIOErrorHandler ( 408266e564dSmrg IceIOErrorHandler /* handler */ 409266e564dSmrg); 410266e564dSmrg 411266e564dSmrgextern char *IceGetPeerName ( 412266e564dSmrg IceConn /* iceConn */ 413266e564dSmrg); 414266e564dSmrg 415266e564dSmrg/* 416266e564dSmrg * Multithread Routines 417266e564dSmrg */ 418266e564dSmrg 419266e564dSmrgextern Status IceInitThreads ( 420266e564dSmrg void 421266e564dSmrg); 422266e564dSmrg 423266e564dSmrgextern void IceAppLockConn ( 424266e564dSmrg IceConn /* iceConn */ 425266e564dSmrg); 426266e564dSmrg 427266e564dSmrgextern void IceAppUnlockConn ( 428266e564dSmrg IceConn /* iceConn */ 429266e564dSmrg); 430266e564dSmrg 431266e564dSmrg_XFUNCPROTOEND 432266e564dSmrg 433266e564dSmrg#endif /* _ICELIB_H_ */ 434