Johan B.W. de Vries 34aaaa4ccb Routing ideas
2023-04-10 14:12:50 +02:00

34 lines
1.0 KiB
Python

from phasmplatform.common.router import BaseRouter
class BaseRunner:
__slots__ = ('router', )
router: BaseRouter
def __init__(self, router: BaseRouter) -> None:
self.router = router
def alloc_bytes(self, data: bytes) -> int:
"""
Calls upon stdlib.types.__alloc_bytes__ to allocate a bytes object
"""
raise NotImplementedError
def read_bytes(self, ptr: int) -> bytes:
"""
Reads a byte object allocated by stdlib.types.__alloc_bytes__
"""
raise NotImplementedError
def handle_message(self, namespace: bytes, topic: bytes, kind: bytes, body: bytes) -> None:
raise NotImplementedError
def post_message(self, namespace_ptr: int, topic_ptr: int, kind_ptr: int, body_ptr: int) -> None:
namespace = self.read_bytes(namespace_ptr)
topic = self.read_bytes(topic_ptr)
kind = self.read_bytes(kind_ptr)
body = self.read_bytes(body_ptr)
self.router.post_message(namespace, topic, kind, body)