Browse Source

code for event handling

1.0.0
Georg Hopp 12 years ago
parent
commit
72d8b99bc0
  1. 14
      include/tr/event_dispatcher.h
  2. 6
      include/tr/event_handler.h
  3. 4
      src/Makefile.am
  4. 1
      src/event_handler.c

14
include/tr/event_dispatcher.h

@ -27,6 +27,11 @@
#include "trbase.h"
#include "trdata.h"
#include "tr/event.h"
TR_CLASS(TR_EventDispatcher);
#include "tr/event_handler.h"
typedef enum TR_e_EventDispatcherMode {
@ -47,6 +52,15 @@ TR_INSTANCE_INIT(TR_EventDispatcher);
TR_CLASSVARS_DECL(TR_EventDispatcher) {};
void TR_eventDispatcherRegisterHandler(TR_EventDispatcher, TR_EventHandler);
void TR_eventDispatcherSetHeartbeat(TR_EventDispatcher, time_t);
time_t TR_eventDispatcherGetBeatTime(TR_EventDispatcher);
time_t TR_eventDispatcherGerDataWaitTime(TR_EventDispatcher);
//void TR_eventDispatcherEnqueueEvent(TR_EventDispatcher, TR_Event);
void TR_eventDispatcherStart(TR_EventDispatcher);
void TR_eventDispatcherStop(TR_EventDispatcher);
void TR_eventDispatcherShutdown(TR_EventDispatcher);
#define TR_eventDispatcherEnqueueEvent(disp,ev) (TR_queuePut((disp)->events, (ev)))
#endif // __TR_EVENT_DISPATCHER_H__

6
include/tr/event_handler.h

@ -23,8 +23,11 @@
#ifndef __TR_EVENT_HANDLER_H__
#define __TR_EVENT_HANDLER_H__
#include <sys/types.h>
#include "trbase.h"
#include "trdata.h"
#include "tr/event.h"
#include "tr/event_subject.h"
@ -32,8 +35,11 @@ TR_CLASS(TR_EventHandler);
#include "tr/event_dispatcher.h"
typedef int (* TR_EventMethod_fptr)(TR_Event);
TR_CLASS(TR_EventHandler) {
TR_EventDispatcher dispatcher[10];
size_t ndispatcher;
TR_Hash event_methods;
};
TR_INSTANCE_INIT(TR_EventHandler);

4
src/Makefile.am

@ -5,7 +5,11 @@ AM_CFLAGS += -I../include/
TREVENT = event.c \
event_dispatcher.c \
event_dispatcher_register_handler.c \
event_handler.c \
event_handler_handle_event.c \
event_handler_issue_event.c \
event_handler_set_dispatcher.c \
event_subject.c \
event_subject_emit.c \
event_subject_id.c

1
src/event_handler.c

@ -32,6 +32,7 @@ int
eventHandlerCtor(void * _this, va_list * params) {
TR_EventHandler this = _this;
this->ndispatcher = 0;
this->event_methods = TR_new(TR_Hash);
return 0;

Loading…
Cancel
Save