Annotation of libwww/Library/src/HTEvent.c, revision 2.3.2.1
2.1 eric 1: /* HTEvntrg.c
2: ** EVENT DISPATCHER
3: **
4: ** (c) COPYRIGHT MIT 1996.
5: ** Please first read the full copyright statement in the file COPYRIGH.
2.3.2.1 ! eric 6: ** @(#) $Id: HTEvent.c,v 2.3 1996/06/02 00:34:46 frystyk Exp $
2.1 eric 7: **
8: ** The event dispatcher allows applications to register their own event
9: ** models. They may register the standard HTEventrg methods from
10: ** HTEventrg.c, of implement their functionality with their on methods.
11: **
12: ** Authors:
13: ** EGP Eric Gordon Prud'hommeuax
14: ** Bugs
15: **
16: */
17:
18: /* Implementation dependent include files */
19: #include "sysdep.h"
2.2 frystyk 20: #include "WWWUtil.h"
2.1 eric 21: #include "HTEvent.h" /* Implemented here */
22:
2.2 frystyk 23: PRIVATE HTEvent_registerCallback * RegisterCBF = NULL;
24: PRIVATE HTEvent_unregisterCallback * UnregisterCBF = NULL;
2.1 eric 25:
26: PUBLIC void HTEvent_setRegisterCallback(HTEvent_registerCallback * registerCBF)
27: {
2.2 frystyk 28: if (CORE_TRACE) HTTrace("Event....... registering %p\n", registerCBF);
2.1 eric 29: RegisterCBF = registerCBF;
30: }
31:
32: PUBLIC void HTEvent_setUnregisterCallback(HTEvent_unregisterCallback * unregisterCBF)
33: {
2.2 frystyk 34: if (CORE_TRACE) HTTrace("Event....... registering %p\n", unregisterCBF);
2.1 eric 35: UnregisterCBF = unregisterCBF;
36: }
37:
2.3.2.1 ! eric 38: PUBLIC int HTEvent_unregister (SOCKET s, HTEvent_type type)
2.1 eric 39: {
2.3.2.1 ! eric 40: if (!UnregisterCBF) {
2.2 frystyk 41: if (CORE_TRACE) HTTrace("Event....... No handler registered\n");
2.1 eric 42: return -1;
2.2 frystyk 43: }
2.3.2.1 ! eric 44: return (*UnregisterCBF)(s, type);
2.1 eric 45: }
46:
2.3.2.1 ! eric 47: PUBLIC int HTEvent_register(SOCKET s, HTEvent_type type, HTEvent * event)
2.1 eric 48: {
2.3.2.1 ! eric 49: if (!RegisterCBF) {
2.2 frystyk 50: if (CORE_TRACE) HTTrace("Event....... No handler registered\n");
2.1 eric 51: return -1;
2.2 frystyk 52: }
2.3.2.1 ! eric 53: return (*RegisterCBF)(s, type, event);
! 54: }
! 55:
! 56: PUBLIC BOOL HTEvent_setCallback(HTEvent * event, HTEventCallback * cbf)
! 57: {
! 58: if (!event) return NO;
! 59: event->cbf = cbf;
! 60: return YES;
! 61: }
! 62:
! 63: PUBLIC BOOL HTEvent_setParam(HTEvent * event, void * param)
! 64: {
! 65: if (!event) return NO;
! 66: event->param = param;
! 67: return YES;
! 68: }
! 69:
! 70: PUBLIC BOOL HTEvent_setPriority(HTEvent * event, HTPriority priority)
! 71: {
! 72: if (!event) return NO;
! 73: event->priority = priority;
! 74: return YES;
2.1 eric 75: }
76:
Webmaster