Fonctions | |
long | FredCountDownStart (long uS) |
Initier un décomptage. | |
long | FredCountDownStop () |
Arrêter un décomptage. | |
long int | FredCountDownGet () |
Lecture du décompteur. | |
void | FredCountDownAttach (void(*handler)(int)) |
Attache un traitant de fin de décomptage. |
|
Implantation L'implantation UNIX est très simple. Il suffit d'attacher le traitant au signal SIGVTALRM associé compteur ITIMER_VIRTUAL.
00104 { 00105 FredSignalAttach(SIGVTALRM,handler); 00106 } |
|
Implantation L'implantation UNIX est très simple. Il suffit de lirer le compteur ITIMER_VIRTUAL .
00085 { 00086 struct itimerval old; 00087 getitimer((int)ITIMER_VIRTUAL,&old); 00088 /* temps restant à décompter */ 00089 return old.it_value.tv_usec; 00090 } |
|
Implantation L'implantation UNIX est très simple. Il suffit de charger le compteur ITIMER_VIRTUAL avec la valeur donnée.
00032 { 00033 struct itimerval q;struct itimerval old; 00034 /* décomptage coup par coup : 00035 un décomptage à la fois et arrêt du timer en fin de décompte */ 00036 q.it_interval.tv_sec=0; 00037 q.it_interval.tv_usec=0; 00038 /* duree du decomptage */ 00039 q.it_value.tv_sec=0; 00040 q.it_value.tv_usec = uS ; 00041 setitimer((int)ITIMER_VIRTUAL,&q,&old); 00042 return old.it_value.tv_usec; 00043 } |
|
Implantation L'implantation UNIX est très simple. Il suffit de charger le compteur ITIMER_VIRTUAL avec la valeur 0 qui l'arrête.
00059 { 00060 struct itimerval q;struct itimerval old; 00061 /* décomptage coup par coup : 00062 un décomptage à la fois et arrêt du timer */ 00063 q.it_interval.tv_sec=0; 00064 q.it_interval.tv_usec=0; 00065 /* duree du decomptage */ 00066 q.it_value.tv_sec=0; 00067 q.it_value.tv_usec = 0 ; 00068 setitimer((int)ITIMER_VIRTUAL,&q,&old); 00069 /* temps restant à décompter */ 00070 return old.it_value.tv_usec; 00071 } |