swmsgq.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /************************************************************************
  2. * AUTHOR: NiuJiuRu
  3. * FILENAME: swmsgq.h
  4. * DESCRIPTION: 消息队列
  5. * NOTE:
  6. * HISTORY:
  7. * 1, [2010-09-06] created by NiuJiuRu
  8. * 2, [2016-08-08] 优化代码, 保障线程安全
  9. ***********************************************************************/
  10. #ifndef __SWMSGQ_H__
  11. #define __SWMSGQ_H__
  12. #ifdef __cplusplus
  13. extern "C"
  14. {
  15. #endif
  16. /* 创建一个消息队列 */
  17. void *sw_msgq_create(int max);
  18. /* 销毁一个消息队列 */
  19. void sw_msgq_destroy(void *hQueue);
  20. /* 向一个消息队列添加消息 */
  21. int sw_msgq_post(void *hQueue, int msg, unsigned long wParam, unsigned long lParam);
  22. /* 从一个消息队列提取消息(超时设置的时间单位为: 毫秒, 并且当timeout = -1时表示无限等待) */
  23. int sw_msgq_read(void *hQueue, int *msg, unsigned long *wParam, unsigned long *lParam, int timeout);
  24. /* 删除一个消息队列里的所有消息 */
  25. void sw_msgq_clear(void *hQueue);
  26. /* 取得一个消息队列中现有的消息数目 */
  27. int sw_msgq_get_num(void *hQueue);
  28. /* 得到一个消息队列所允许的最大消息数目 */
  29. int sw_msgq_get_max(void *hQueue);
  30. #ifdef __cplusplus
  31. }
  32. #endif
  33. #endif /* __SWMSGQ_H__ */