from utils.literal import Literal from utils.memory_cell import MemoryCell from utils.memory_array import MemoryArray class BTreeNode(MemoryCell): def __init__(self, m: int): super().__init__() self.m = m self.n = 0 self.leaf = True self.value = MemoryArray(Literal(2 * m - 1)) self.children = [None] * (2 * m) self.loaded_count = 0 self.saved_count = 0 def reset_counters(self): super().reset_counters() self.loaded_count = 0 self.saved_count = 0 def load(self): self.loaded_count += 1 def save(self): self.saved_count += 1 def __str__(self): return "(" + " ".join([str(self.value[Literal(i)]) for i in range(self.n)]) + ")"