Source code for eventsourcing.infrastructure.integersequencegenerators.base

from abc import abstractmethod
from threading import Lock


[docs]class AbstractIntegerSequenceGenerator(object): def __iter__(self): return self
[docs] @abstractmethod def __next__(self): """ Returns the next item in the container. """
[docs]class SimpleIntegerSequenceGenerator(AbstractIntegerSequenceGenerator): def __init__(self, i=0): self.i = i self.lock = Lock() def __next__(self): self.lock.acquire() i = self.i self.i += 1 self.lock.release() return i