diff options
Diffstat (limited to 'jim-eventloop.h')
-rw-r--r-- | jim-eventloop.h | 45 |
1 files changed, 40 insertions, 5 deletions
diff --git a/jim-eventloop.h b/jim-eventloop.h index 39be1c2..e09170e 100644 --- a/jim-eventloop.h +++ b/jim-eventloop.h @@ -63,17 +63,52 @@ typedef void Jim_EventFinalizerProc(Jim_Interp *interp, void *clientData); #define JIM_EVENT_EXCEPTION 4 #define JIM_EVENT_FEOF 8 -JIM_EXPORT void Jim_CreateFileHandler (Jim_Interp *interp, +#ifndef __JIM_EVENTLOOP_CORE__ +# if defined JIM_EXTENSION || defined JIM_EMBEDDED +# define JIM_API(x) (*x) +# define JIM_STATIC +# else +# define JIM_API(x) (*x) +# define JIM_STATIC extern +# endif +#else +# define JIM_API(x) x +# define JIM_STATIC static +#endif /* __JIM_EVENTLOOP_CORE__ */ + +JIM_STATIC void JIM_API(Jim_CreateFileHandler) (Jim_Interp *interp, void *handle, int mask, Jim_FileProc *proc, void *clientData, Jim_EventFinalizerProc *finalizerProc); -JIM_EXPORT void Jim_DeleteFileHandler (Jim_Interp *interp, +JIM_STATIC void JIM_API(Jim_DeleteFileHandler) (Jim_Interp *interp, void *handle); -JIM_EXPORT jim_wide Jim_CreateTimeHandler (Jim_Interp *interp, +JIM_STATIC jim_wide JIM_API(Jim_CreateTimeHandler) (Jim_Interp *interp, jim_wide milliseconds, Jim_TimeProc *proc, void *clientData, Jim_EventFinalizerProc *finalizerProc); -JIM_EXPORT jim_wide Jim_DeleteTimeHandler (Jim_Interp *interp, jim_wide id); -JIM_EXPORT int Jim_ProcessEvents (Jim_Interp *interp, int flags); +JIM_STATIC jim_wide JIM_API(Jim_DeleteTimeHandler) (Jim_Interp *interp, jim_wide id); +JIM_STATIC int JIM_API(Jim_ProcessEvents) (Jim_Interp *interp, int flags); + +#undef JIM_STATIC +#undef JIM_API + +#ifndef __JIM_EVENTLOOP_CORE__ + +#define JIM_GET_API(name) \ + Jim_GetApi(interp, "Jim_" #name, ((void *)&Jim_ ## name)) + +#if defined(JIM_EXTENSION) || defined(JIM_EMBEDDED) +/* This must be included "inline" inside the extension */ +static void Jim_ImportEventloopAPI(Jim_Interp *interp) +{ + JIM_GET_API(CreateFileHandler); + JIM_GET_API(DeleteFileHandler); + JIM_GET_API(CreateTimeHandler); + JIM_GET_API(DeleteTimeHandler); + JIM_GET_API(ProcessEvents); +} +#endif /* defined JIM_EXTENSION || defined JIM_EMBEDDED */ +#undef JIM_GET_API +#endif /* __JIM_EVENTLOOP_CORE__ */ #endif /* __JIM_EVENTLOOP_H__ */ |