Files
pcas/src/db/callback.h

85 lines
2.2 KiB
C
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* $Id$ */
/* includes for general purpose callback tasks */
/*
* Original Author: Marty Kraimer
* Date: 07-18-91
*/
/********************COPYRIGHT NOTIFICATION**********************************
This software was developed under a United States Government license
described on the COPYRIGHT_UniversityOfChicago file included as part
of this distribution.
****************************************************************************/
/* Modification Log:
* -----------------
* .01 12-12-91 mrk Initial version
* .02 04-05-94 mrk Remove casts on Lvalues (ANSI forbids)
* .02 02-09-95 joh if def'd out typedef CALLBACK for
* windows
*/
#ifndef INCcallbackh
#define INCcallbackh 1
/*
* WINDOWS also has a "CALLBACK" type def
*/
#ifdef _WIN32
# ifdef CALLBACK
# undef CALLBACK
# endif /*CALLBACK*/
#endif /*_WIN32*/
#define NUM_CALLBACK_PRIORITIES 3
#define priorityLow 0
#define priorityMedium 1
#define priorityHigh 2
typedef struct callbackPvt {
#ifdef __STDC__
void (*callback)(struct callbackPvt*);
#else
void(*callback)();
#endif
int priority;
void *user; /*for use by callback user*/
}CALLBACK;
#ifdef __STDC__
typedef void (*CALLBACKFUNC)(struct callbackPvt*);
#else
typedef void (*CALLBACKFUNC)();
#endif
#define callbackSetCallback(PFUN,PCALLBACK)\
( (PCALLBACK)->callback = (PFUN) )
#define callbackSetPriority(PRIORITY,PCALLBACK)\
( (PCALLBACK)->priority = (PRIORITY) )
#define callbackSetUser(USER,PCALLBACK)\
( (PCALLBACK)->user = (void *)(USER) )
#define callbackGetUser(USER,PCALLBACK)\
( (USER) = (void *)((CALLBACK *)(PCALLBACK))->user )
#ifdef __STDC__
long callbackInit();
void callbackRequest(CALLBACK *pCallback);
void callbackRequestProcessCallback(CALLBACK *pCallback,
int Priority, void *pRec);
void callbackRequestDelayed(CALLBACK *pCallback,double seconds);
void callbackRequestProcessCallbackDelayed(CALLBACK *pCallback,
int Priority, void *pRec,double seconds);
int callbackSetQueueSize(int size);
#else
long callbackInit();
void callbackRequest();
void callbackRequestProcessCallback();
void callbackRequestDelayed();
void callbackRequestProcessCallbackDelayed();
int callbackSetQueueSize();
#endif /*__STDC__*/
#endif /*INCcallbackh*/