コード例 #1
0
class ActionDifferee:
    """Cette classe permet de déclarer des actions différées.
    Ce sont des actions qui s'exécuteront plus tard. La méthode boucle du 
    module primaire diffact se charge d'exécuter ces actions différées au temps
    prévu. Une action différée contient :
    -   un nom identifiant (str)
    -   un temps d'échéance sous la forme d'un timestamp (float)
    -   une fonction telle que décrite dans bases.fonction avec une liste
        d'arguments
    
    """
    def __init__(self, nom, tps, ref_fonc, *args, **kwargs):
        """Constructeur de l'action différée."""
        self.nom = nom
        self.echeance = time.time() + tps
        self.fonction = Fonction(ref_fonc, *args, **kwargs)
    
    def doit_exec(self):
        """Return True si le temps d'échéance est passé, False sinon."""
        return time.time() >= self.echeance

    def executer(self):
        """Exécution de la fonction. On redirige simplement vers
        self.fonction.exec().
        
        """
        self.fonction.executer()
コード例 #2
0
ファイル: action_differee.py プロジェクト: stormi/tsunami
class ActionDifferee:

    """Cette classe permet de déclarer des actions différées.

    Ce sont des actions qui s'exécuteront plus tard. La méthode boucle du
    module primaire diffact se charge d'exécuter ces actions différées au temps
    prévu. Une action différée contient :
    -   un nom identifiant (str)
    -   un temps d'échéance sous la forme d'un timestamp (float)
    -   une fonction telle que décrite dans bases.fonction avec une liste
        d'arguments

    """

    def __init__(self, nom, tps, ref_fonc, *args, **kwargs):
        """Constructeur de l'action différée."""
        self.nom = nom
        self.echeance = time.time() + tps
        self.fonction = Fonction(ref_fonc, *args, **kwargs)

    def doit_exec(self):
        """Return True si le temps d'échéance est passé, False sinon."""
        return time.time() >= self.echeance

    def executer(self):
        """Exécution de la fonction. On redirige vers self.fonction.exec()."""
        debut = time.time()
        self.fonction.executer()
        fin = time.time()
        duree = fin - debut
        if duree > TEMPS_MAX:
            duree = round(duree, 3)
            importeur.diffact.logger.debug("L'action {} a mis {}s " \
                    "pour s'exécuter".format(self.nom, duree))

    def __le__(self, other):
        """Les actions différées sont ordonnées par leur échéance."""
        return self.echeance <= other.echeance

    def __gt__(self, other):
        """Les actions différées sont ordonnées par leur échéance."""
        return self.echeance > other.echeance