UNIXTimer.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #ifndef _UNIXTimer_h_INCLUDED_
  2. #define _UNIXTimer_h_INCLUDED_
  3. /*****************************************************************************/
  4. /* ここから */
  5. /*****************************************************************************/
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. /*****************************************************************************/
  9. /* クラスの定義 */
  10. /*****************************************************************************/
  11. typedef struct _UNIXTimer * UNIXTimer;
  12. typedef int (*UNIXTimerCallBack)(void *);
  13. /*****************************************************************************/
  14. /* メンバ関数の宣言 */
  15. /*****************************************************************************/
  16. /*---------------------------------------------------------------------------*/
  17. /* タイマの ON, OFF */
  18. /*---------------------------------------------------------------------------*/
  19. int UNIXTimer_ON(UNIXTimer unix_timer);
  20. int UNIXTimer_OFF(UNIXTimer unix_timer);
  21. int UNIXTimer_IsON(UNIXTimer unix_timer);
  22. int UNIXTimer_IsOFF(UNIXTimer unix_timer);
  23. /*---------------------------------------------------------------------------*/
  24. /* 一時停止 */
  25. /*---------------------------------------------------------------------------*/
  26. /*
  27. * 関数の先頭と末尾を Pause, Unpause でくくるばあいなどは,
  28. * 関数から関数を呼び出したときに,2重 Pause, Unpause が起きるので
  29. * 注意すること.(ただし,ポーズはネストできる)
  30. */
  31. /*
  32. * ポーズはネストされるので,UNIXTimer_Unpause() を安易に繰り返し呼んだり
  33. * しないように注意すること.
  34. */
  35. int UNIXTimer_Pause(UNIXTimer unix_timer);
  36. int UNIXTimer_Unpause(UNIXTimer unix_timer);
  37. int UNIXTimer_IsPause(UNIXTimer unix_timer);
  38. /*---------------------------------------------------------------------------*/
  39. /* オートプリセット */
  40. /*---------------------------------------------------------------------------*/
  41. int UNIXTimer_SetAutoPreset(UNIXTimer unix_timer);
  42. int UNIXTimer_ResetAutoPreset(UNIXTimer unix_timer);
  43. int UNIXTimer_IsAutoPreset(UNIXTimer unix_timer);
  44. /*---------------------------------------------------------------------------*/
  45. /* インターバル */
  46. /*---------------------------------------------------------------------------*/
  47. int UNIXTimer_GetInterval(UNIXTimer unix_timer);
  48. int UNIXTimer_SetInterval(UNIXTimer unix_timer, int interval);
  49. /*---------------------------------------------------------------------------*/
  50. /* コールバック関数の呼び出し時のパラメータ */
  51. /*---------------------------------------------------------------------------*/
  52. void * UNIXTimer_GetParameter(UNIXTimer unix_timer);
  53. void * UNIXTimer_Setparameter(UNIXTimer unix_timer, void * parameter);
  54. /*---------------------------------------------------------------------------*/
  55. /* コールバック関数の取得・登録 */
  56. /*---------------------------------------------------------------------------*/
  57. UNIXTimerCallBack UNIXTimer_GetCallBack(UNIXTimer unix_timer);
  58. UNIXTimerCallBack UNIXTimer_SetCallBack(UNIXTimer unix_timer,
  59. UNIXTimerCallBack callback);
  60. /*---------------------------------------------------------------------------*/
  61. /* オブジェクトの作成 */
  62. /*---------------------------------------------------------------------------*/
  63. UNIXTimer UNIXTimer_Create(int auto_preset, int interval, void * parameter,
  64. UNIXTimerCallBack callback);
  65. /*---------------------------------------------------------------------------*/
  66. /* オブジェクトの削除 */
  67. /*---------------------------------------------------------------------------*/
  68. UNIXTimer UNIXTimer_Destroy(UNIXTimer unix_timer);
  69. /*****************************************************************************/
  70. /* ここまで */
  71. /*****************************************************************************/
  72. #endif
  73. /*****************************************************************************/
  74. /* End of File. */
  75. /*****************************************************************************/