Source code for malcolm.modules.builtin.controllers.servercomms

from malcolm.core import Part

from ..infos import RequestInfo
from .statefulcontroller import ADescription, AMri, StatefulController

# Pull re-used annotypes into our namespace in case we are subclassed
AMri = AMri
ADescription = ADescription


[docs]class ServerComms(StatefulController): """Abstract class for dealing with requests from outside""" def __init__(self, mri: AMri, description: ADescription = "") -> None: super().__init__(mri, description) self.info_registry.add_reportable(RequestInfo, self.update_request_received) def update_request_received(self, _: Part, info: RequestInfo) -> None: assert self.process, "No process" controller = self.process.get_controller(info.mri) # Don't wait for the server to actually handle the request, just return controller.handle_request(info.request)