| import asyncio
|
|
|
| class AgentState:
|
| _instance = None
|
|
|
| def __init__(self):
|
| if not hasattr(self, '_stop_requested'):
|
| self._stop_requested = asyncio.Event()
|
| self.last_valid_state = None
|
|
|
| def __new__(cls):
|
| if cls._instance is None:
|
| cls._instance = super(AgentState, cls).__new__(cls)
|
| return cls._instance
|
|
|
| def request_stop(self):
|
| self._stop_requested.set()
|
|
|
| def clear_stop(self):
|
| self._stop_requested.clear()
|
| self.last_valid_state = None
|
|
|
| def is_stop_requested(self):
|
| return self._stop_requested.is_set()
|
|
|
| def set_last_valid_state(self, state):
|
| self.last_valid_state = state
|
|
|
| def get_last_valid_state(self):
|
| return self.last_valid_state |