Archived
0
0

实现 Reactor

This commit is contained in:
2025-11-02 04:58:20 +08:00
parent 5aee812ffc
commit 2640299cd2
12 changed files with 148 additions and 215 deletions

View File

@@ -0,0 +1,37 @@
import heurams.kernel.particles as pt
from .states import PhaserState, ProcessionState
class Procession():
"""队列: 标识单次记忆流程"""
def __init__(self, atoms: list, phase: PhaserState, name: str = ""):
self.atoms = atoms
self.queue = atoms.copy()
self.current_atom = atoms[0]
self.cursor = 0
self.name = name
self.phase = phase
self.state: ProcessionState = ProcessionState.RUNNING
def forward(self, step = 1):
self.cursor += step
if self.cursor == len(self.queue):
self.state: ProcessionState = ProcessionState.FINISHED
else:
self.state: ProcessionState = ProcessionState.RUNNING
try:
self.current_atom = self.queue[self.cursor]
return 1 # 成功
except IndexError:
return 0
def append(self, atom = None):
if atom == None:
self.queue.append(self.current_atom)
else:
self.queue.append(atom)
def __len__(self):
return (len(self.queue) - self.cursor)
def is_empty(self):
return len(self.queue)