#ifndef _UNIXTimerP_h_INCLUDED_
#define _UNIXTimerP_h_INCLUDED_

/*****************************************************************************/
/* ここから                                                                  */
/*****************************************************************************/

#include "UNIXTimer.h"

/*****************************************************************************/
/* クラスの定義                                                              */
/*****************************************************************************/

typedef struct _UNIXTimer {

  int timer_on; /* タイマを動作させるかどうかのフラグ */

  /*
   * タイマの一時停止．停止中にタイマの時間が来た場合には，
   * 時間が来たことだけ記憶しておき，一時停止の解除時にコールバック関数が
   * 呼び出される．
   * WonX では X サーバとの通信中にタイマ割り込みが入って，さらに X サーバとの
   * 通信が発生したりすると，通信の整合性がとれなくなるような気がするので，
   * それを防ぐために，一部の関数内部ではタイマ割り込みを停止させる．
   */
  int pause;

  /*
   * タイマ割り込みの一時停止中に割り込みがかかった場合には，このフラグを
   * セットして，一時停止の解除時にコールバック関数を呼ぶ．
   */
  int interrupt_in_pause;

  int auto_preset; /* オートプリセット．1 だとオートプリセットを行う */
  int interval; /* タイマのインターバル．ミリ秒で指定 */
  void * parameter; /* コールバック関数の呼び出し時のパラメータ */
  UNIXTimerCallBack callback; /* コールバック関数 */

} _UNIXTimer;

/*****************************************************************************/
/* ここまで                                                                  */
/*****************************************************************************/

#endif

/*****************************************************************************/
/* End of File.                                                              */
/*****************************************************************************/
