Classe file d'attente (stereotype)

De Wiki1000
stock}}

Ce stéréotype permet de gérer des files d'attente ayant plusieurs consommateurs.

Une classe file d'attente peut avoir un ou plusieurs producteurs de données et un ou plusieurs consommateurs de données.

Par construction un objet de la file d'attente ne peut être consommé que par et un seul consommateur de donnée.

Attributs du stéréotype

{{#ifingroup:Sage|
queueID Identifiant unique d'un objet de la queue.
queueTopic Sujet auquel appartient l'objet de la queue.
queueState Etat de l'objet dans la queue.
queueRef Référence vers un objet associée à cet objet.

}}

Méthode du stéréotype

Méthodes de l'instance :

Archive Archive le message dans la queue.
ReQueue Ré-empile le message dans la queue.
DeleteThisObject Supprime l'objet consommé.

Méthodes de classe :

DeQueue Consomme le premier objet disponible de la queue.
Clean Supprime tous les objets consommés de la queue.

{{#ifingroup:Sage|

inQueue Insérer des objets dans la file à partir d'une classe source
DeQueueNext Consomme l'objet suivant disponible de la queue.
GetFirst Obtient le premier objet disponible de la queue sans consommer l'objet.
GetNext Obtient l'objet suivant de la queue sans consommer l'objet.
DeQueueList Consomme une liste d'objet disponible de la queue.
ReQueueList Replace une liste d'objet dans la queue.
Topic Obtient un énumérateur des objets disponibles sur certain topic.
Enumérateur par défaut Obtient un énumérateur des objets disponibles.

}}

Exemples :

Créer un objet dans la queue :

<source lang="delphi"> procedure InQueue(const Atopic:string); var inst:MyQueue; begin

 withP private Transaction do
  begin
    inst := MyQueue.Create;
    inst.queueTopic := ATopic;
  end;

end; </source>

Consommer le premier objet de la queue :

<source lang="delphi"> function DeQueue(const Atopic:string):Boolean; var inst:MyQueue; begin

 inst := MyQueue.DeQueue(ATopic);
 Result := Assigned(inst);

end; </source>

Supprimer tous les objets consommés de la queue :

<source lang="delphi"> procedure Clean(const Atopic:string); begin

 MyQueue.Clean(ATopic);

end; </source>