sp_tmr.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef SP_TMR_H
  2. #define SP_TMR_H
  3. #pragma once
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #include "sp_rsn.h"
  8. /* one shot timer */
  9. typedef struct sp_tmr_t sp_tmr_t;
  10. typedef struct sp_tmr_mgr_t sp_tmr_mgr_t;
  11. typedef struct sp_tmr_callback {
  12. void (*on_timer)(sp_tmr_t *timer, int err, void *user_data);
  13. void (*on_destroy)(sp_tmr_t *timer, void *user_data);
  14. void *user_data;
  15. }sp_tmr_callback;
  16. typedef struct sp_svc_t sp_svc_t;
  17. typedef struct strand_t strand_t;
  18. int sp_tmr_create(sp_tmr_mgr_t *mgr, strand_t *strand, sp_tmr_callback *cb, sp_tmr_t **p_timer);
  19. void sp_tmr_destroy(sp_tmr_t *timer);
  20. int sp_tmr_schedule(sp_tmr_t *timer, unsigned int delay);
  21. int sp_tmr_cancel(sp_tmr_t *timer);
  22. void sp_tmr_set_tag(sp_tmr_t *timer, void *tag);
  23. void *sp_tmr_get_tag(sp_tmr_t *timer);
  24. const sp_rsn_context_t *sp_tmr_get_rsn_context(sp_tmr_t *timer);
  25. int sp_tmr_mgr_create(sp_svc_t *svc, sp_tmr_mgr_t **p_mgr);
  26. void sp_tmr_mgr_destroy(sp_tmr_mgr_t *mgr);
  27. int sp_tmr_mgr_cancel_all_tmr(sp_tmr_mgr_t *mgr);
  28. int sp_tmr_mgr_tmr_cnt(sp_tmr_mgr_t *mgr);
  29. #ifdef __cplusplus
  30. } // extern "C" {
  31. #endif
  32. #endif // SP_TMR_H