Source code for simulator.selectors.DtnAbstractDuctSelector

import abc
from simulator.core.DtnCore import Simulable

[docs]class DtnAbstractDuctSelector(Simulable, metaclass=abc.ABCMeta): """ An abstract duct selector. """ # Types of connections in the network _types = None def __init__(self, env, parent): super(DtnAbstractDuctSelector, self).__init__(env) self.parent = parent def reset(self): # Reset static variables self.__class__._types = None def initialize(self): # Initialize static variables only once if self.__class__._types: return def get_ducts(self, neighbor): # Get the ducts from the parent ducts = self.parent.ducts[neighbor] # If no ducts present in this node, throw error if len(ducts) == 0: raise ValueError(f'No outducts from {self.parent.nid} to {neighbor}') return ducts @abc.abstractmethod def select_duct(self, neighbor, bundle): pass