Page principale   Modules   Liste des composants   Liste des fichiers   Composants   Déclarations  

Interface d'un échéancier
[Implémentation de PHIL]


Composants

struct  PhilEvent
 Descripteur de cellule de ech On réutilise la cellule de liste triée par priorité. La priorité est la date. On rajoute le traitement de fin d'échéance. Plus de détails...


Définitions des macros

#define PhilEVENT   PhilEvent _event
 macro pour définir une structure comme une échéance


Définitions des types

typedef void(* PhilEventHandler )(struct PhilEvent *)
 Prototype d'un traitant d'échéance.

typedef PhilEvent PhilEvent
 Descripteur de cellule de ech On réutilise la cellule de liste triée par priorité. La priorité est la date. On rajoute le traitement de fin d'échéance.

typedef PhilList PhilEventList
 descripteur d'échéancier


Fonctions

void PhilEventListInsert (PhilEventList *q, PhilEvent *b)
 Insertion d'un évenement.

void PhilEventListPurge (PhilEventList *q, PhilEventList *past)
 Obtenir les échéances échues.

void PhilEventListRetract (PhilEventList *q, PhilEvent *b)
 Retrait d'une échéance quelconque.

long int PhilEventListNow ()
 Date courante.

void PhilEventListInit (PhilEventList *q, long int date)
 Initialisation de la liste.


Documentation de la macro

#define PhilEVENT   PhilEvent _event
 

Pour définir qu'une structure quelconque peut être une échéance, il suffit d'insérer PhilEVENT en premiere définition des composants de la structure

struct MyEvent{ 
  PhilEVENT;
  int x;
  int y;
  ...
};


Documentation du type

typedef struct PhilEvent PhilEvent
 

typedef void(* PhilEventHandler)(struct PhilEvent *)
 

L'action appelée en fin d'échéance reçoit l'échéance en paramètre.

typedef PhilList PhilEventList
 

C'est une liste


Documentation de la fonction

void PhilEventListInit PhilEventList   q,
long int    date
 

Paramètres:
q  liste à initialiser
date  date initiale en microsecondes
initialise l'échéance et lance le calcul de la date

void PhilEventListInsert PhilEventList   q,
PhilEvent   b
 

Paramètres:
q  échéancier où insérer
b  échéance à insérer
L'insertion place la nouvelle échéance à la suite des échéances de même date (ou de date inférieue) et devant celles de dates supérieures. On doit éventuellement (si insertion en tête ) relancer le décomptage avec une nouvelle valeur.

long int PhilEventListNow  
 

Renvoie :
la date en microseconde

void PhilEventListPurge PhilEventList   q,
PhilEventList   past
 

Paramètres:
q  échéancier à consulter
past  liste des échéances échues (vide à l'appel)
On obtient la liste des échéances <= à la date courante. Cette liste peut être vide. Cette fonction sert à vider l'échéancier après une interruption de fin d'échéance. On relance éventuellement le décompteur.

void PhilEventListRetract PhilEventList   q,
PhilEvent   b
 

Paramètres:
q  liste où retirer
b  cellule à retirer
Une échéance est annulée (par ex. un signal est arrivé avant la fin du délai d'une attente sur une condition). On doit la retirer de la liste. Si cette échéance était la plus proche, on peut recalculer éventuellement la prochaine échéance et relancer le décompte.


Généré le Thu Jan 15 15:49:02 2004 par doxygen1.2.17