From 7000fce72fbec34c6f4957a59d4146cc7148ee59 Mon Sep 17 00:00:00 2001 From: Declan Hoare Date: Thu, 16 Apr 2020 22:58:21 +1000 Subject: Initial Release --- servermessage.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 servermessage.py (limited to 'servermessage.py') diff --git a/servermessage.py b/servermessage.py new file mode 100644 index 0000000..d53e254 --- /dev/null +++ b/servermessage.py @@ -0,0 +1,24 @@ + +from netclass import netclass +from netobject import NetObject, NetObjectStream + +ServerMessage = netclass("ShiftOS.Objects.ServerMessage", + "ShiftOS.Objects, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", + [(str, "Name"), (str, "Contents"), (str, "GUID")]) + +class ServerMessageStream(NetObjectStream): + def netObjectReceived(self, obj): + if not isinstance(obj.Object, ServerMessage): + raise TypeError(f"An object was received on the ServerMessageStream of type {type(obj.Object)}") + + self.serverMessageReceived(obj.Object) + + def sendServerMessage(self, message): + if not isinstance(message, ServerMessage): + raise TypeError(f"The ServerMessageStream can only send ServerMessage, not {type(obj)}") + + # Although the real ShiftOS fills in the Name field on the + # NetObject, it does not ever read it, so it's not really + # part of the protocol. + self.sendNetObject(NetObject(None, message)) + -- cgit v1.2.3