#ifndef _EVT_ENGINE_H #define _EVT_ENGINE_H #pragma once #include "SpBase.h" #include "slot.h" #include "trigger.h" typedef struct slot_trigger_elem_s { char* slotns; rvc_slot_t* slotarr; rvc_trigger_t* triggerarr; }slot_trigger_elem_t; typedef struct evt_engine_t evt_engine_t; typedef void (*evt_engine_timer_func)(int timer_id, void *user_data); typedef struct evt_engine_callback_t { int (*set_timer)(evt_engine_t *engine, int timer_id, int interval, evt_engine_timer_func timer_cb, void *timer_user_data, void *user_data); int (*kill_timer)(evt_engine_t *engine, int timer_id, void *user_data); int (*subscribe_log)(evt_engine_t *engine, unsigned long long *sub_id, LogTypeEnum eLogType, const char *szEntity, SeverityLevelEnum eSeverityLevel, ErrorCodeEnum eSysError, DWORD dwUserCode, bool bIgnoreMessage, void *user_data); int (*unsubscribe_log)(evt_engine_t *engine, unsigned long long sub_id, void *user_data); int (*subscribe_sysevent)(evt_engine_t *engine, void *user_data); int (*unsubscribe_sysevent)(evt_engine_t *engine, void *user_data); int (*get_sysevent)(evt_engine_t *engine, const char *key, CSimpleStringA &strValue, void *user_data); int (*set_sysevent)(evt_engine_t *engine, const char *key,const char *val, void *user_data); int (*get_entity_id)(evt_engine_t *engine, const char *entity, void *user_data); int (*new_timer_id)(evt_engine_t *engine, void *user_data); void *user_data; }evt_engine_callback_t; int evt_engine_create(const evt_engine_callback_t *callback, evt_engine_t **p_engine); void evt_engine_destroy(evt_engine_t *engine); int evt_engine_load(evt_engine_t *engine, int nfile, const char **files); int evt_engine_load(evt_engine_t* engine, int icount, slot_trigger_elem_t* parr); int evt_engine_unload(evt_engine_t *engine); int evt_engine_process_log(evt_engine_t *engine, const CAutoArray &SubIDs, unsigned long long nLogID, LogTypeEnum eLogType, SeverityLevelEnum eLevel, DWORD dwSysError, DWORD dwUserCode, DWORD dwEntityId, const char *pszEntityName, const char *pszModuleName, const char *pszMessage); int evt_engine_process_sysvar(evt_engine_t *engine, const char *pszKey, const char *pszValue, const char *pszOldValue, const char *pszEntityName); int evt_engine_start(evt_engine_t *engine); int evt_engine_stop(evt_engine_t *engine); void SetLogType(int nIslog); #endif // _EVT_ENGINE_H