Sepi

Name
  TCustomCoroutine

Parent
  ScCoroutines

Class Hierarchy
  TObject

Visibility
  PUBLIC

Description
  Classe de support des coroutines
La méthode Invoke ne peut avoir qu'une seule exécution à la fois. Elle ne
peut ni être appelée dans deux threads différents en même temps ; ni être
appelée depuis Execute (ce qui constitue un appel récursif).
En revanche, elle peut être appelée successivement par deux threads
différents.
La propriété Loop détermine le comportement de bouclage de la coroutine.
Celle-ci peut soit ne pas boucler (clNoLoop) : un appel à Invoke lorsque
Terminated vaut True déclenchera une exception. Soit boucler immédiatement
(clImmediate) : dès que Execute se termine, elle est rappelée sans revenir
à l'appelant. Soit boucler au prochain Invoke : dans ce cas l'appelant
reprend la main entre la fin d'une exécution et le début de la suivante.
La procédure Execute devrait tester l'état de Terminating après chaque
appel à Yield, et se terminer proprement si cette propriété vaut True.
Cette propriété sera positionnée à True lorsque l'objet coroutine devra se
libérer, avant de relancer l'exécution. Si un appel à Yield est fait dans
cet état, une exception de type ECoroutineTerminating assure que celle-ci
se termine immédiatement.

Members
  Fields
 
Field Description
FCoroutineRunning (-) True si la coroutine est cours d'exécution
FCoroutineThread (-) Thread qui exécute la coroutine
FExceptAddress (-) Adresse de déclenchement de l'exception
FExceptObject (-) Objet exception déclenchée par la coroutine
FInvokeEvent (-) Événement déclenché sur Invoke
FLoop (-) Type de boucle de la coroutine
FTerminated (-) True si la coroutine est terminée
FTerminating (-) True si la coroutine doit se terminer
FYieldEvent (-) Événement déclenché sur Yield

Methods
 
Method Description
BeforeDestruction (+) Appelé juste avant le premier destructeur
Create (+) Crée une coroutine avec une taille de pile donnée
Destroy (+) Détruit l'instance
EnterCoroutine (-) Entre dans la coroutine
Error (+) Déclenche une erreur ECoroutineError
Error (+) Déclenche une erreur ECoroutineError
Execute (#) Coroutine à exécuter
InitCoroutine (-) Initialise la coroutine avant sa première exécution
Invoke (#) Exécute la coroutine jusqu'au prochain appel à Yield
LeaveCoroutine (-) Sort la coroutine
Main (-) Méthode principale de la coroutine
Reset (#) Réinitialise complètement la coroutine
Terminate (-) Termine la coroutine
WaitForNoResult (-) Attend un événement, sans résultat
Yield (#) Rend la main à l'appelant - retournera lors du prochain appel à Invoke

Properties
 
Property Description
CoroutineRunning (#) True si la coroutine est cours d'exécution
Loop (#) Type de boucle de la coroutine
Terminated (#) True si la coroutine est terminée
Terminating (#) True si la coroutine doit se terminer


Legend
 
Symbol Visibility
- Private
# Protected
+ Public
* Published
A Automated
S Strict

Sepi


Copyright (c) 2006-2010 Sébastien Doeraene
Created with DelphiCodeToDoc. To obtain the latest revision, please visit http://dephicodetodoc.sourceforge.net/