#ifndef SP_TMR_H #define SP_TMR_H #pragma once #ifdef __cplusplus extern "C" { #endif #include "sp_rsn.h" /* one shot timer */ typedef struct sp_tmr_t sp_tmr_t; typedef struct sp_tmr_mgr_t sp_tmr_mgr_t; typedef struct sp_tmr_callback { void (*on_timer)(sp_tmr_t *timer, int err, void *user_data); void (*on_destroy)(sp_tmr_t *timer, void *user_data); void *user_data; }sp_tmr_callback; typedef struct sp_svc_t sp_svc_t; typedef struct strand_t strand_t; int sp_tmr_create(sp_tmr_mgr_t *mgr, strand_t *strand, sp_tmr_callback *cb, sp_tmr_t **p_timer); void sp_tmr_destroy(sp_tmr_t *timer); int sp_tmr_schedule(sp_tmr_t *timer, unsigned int delay); int sp_tmr_cancel(sp_tmr_t *timer); void sp_tmr_set_tag(sp_tmr_t *timer, void *tag); void *sp_tmr_get_tag(sp_tmr_t *timer); const sp_rsn_context_t *sp_tmr_get_rsn_context(sp_tmr_t *timer); int sp_tmr_mgr_create(sp_svc_t *svc, sp_tmr_mgr_t **p_mgr); void sp_tmr_mgr_destroy(sp_tmr_mgr_t *mgr); int sp_tmr_mgr_cancel_all_tmr(sp_tmr_mgr_t *mgr); int sp_tmr_mgr_tmr_cnt(sp_tmr_mgr_t *mgr); #ifdef __cplusplus } // extern "C" { #endif #endif // SP_TMR_H