UNIXTimer.h 4.8 KB

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