PyNesca/address_generation/IpGenerator.py

19 lines
622 B
Python
Raw Normal View History

from AbstractAddressGenerator import AbstractAddressGenerator
from threading import RLock
class IpGenerator(AbstractAddressGenerator):
def __init__(self, address_generator, ports):
self.address_generator = address_generator
self.ports = ports
self.portnum = -1
self.lock = RLock()
def get_next_address(self, previous_address):
with self.lock:
self.portnum = (self.portnum + 1) % len(self.ports)
try:
return (str(next(self.address_generator)), self.ports[self.portnum])
except StopIteration:
return None