1
0
mirror of https://github.com/gsi-upm/soil synced 2025-07-01 19:12:20 +00:00
soil/soil/events.py
J. Fernando Sánchez f49be3af68 1.0pre4
2023-05-03 12:14:49 +02:00

36 lines
541 B
Python

from dataclasses import dataclass, field
from typing import Any
from uuid import uuid4
class Event:
pass
@dataclass
class Message:
payload: Any
sender: Any = None
expiration: float = None
timestamp: float = None
id: int = field(default_factory=uuid4)
def expired(self, when):
return self.expiration is not None and self.expiration < when
class Reply(Message):
source: Message
class Ask(Message):
reply: Message = None
class Tell(Message):
pass
class TimedOut(Exception):
pass