From eb4ea92816681abcef19660534704cb9b8172ebf Mon Sep 17 00:00:00 2001 From: blee Date: Fri, 1 Dec 2023 15:00:15 -0500 Subject: [PATCH 1/3] create new connection object for I/O streams --- app/c_connection.py | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 app/c_connection.py diff --git a/app/c_connection.py b/app/c_connection.py new file mode 100644 index 0000000..d17a6fc --- /dev/null +++ b/app/c_connection.py @@ -0,0 +1,9 @@ +from app.utility.base_object import BaseObject + + +class Connection(BaseObject): + + def __init__(self, reader, writer): + super().__init__() + self.reader = reader + self.writer = writer From e53f88851da62c61c25d0b06c4561c26d83700f0 Mon Sep 17 00:00:00 2001 From: blee Date: Fri, 1 Dec 2023 15:01:12 -0500 Subject: [PATCH 2/3] add typing for connection parameter --- app/c_session.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/c_session.py b/app/c_session.py index ded4c28..03ed273 100644 --- a/app/c_session.py +++ b/app/c_session.py @@ -1,4 +1,5 @@ from app.utility.base_object import BaseObject +from plugins.manx.app.c_connection import Connection class Session(BaseObject): @@ -7,7 +8,7 @@ class Session(BaseObject): def unique(self): return self.hash('%s' % self.paw) - def __init__(self, id, paw, connection): + def __init__(self, id, paw, connection: Connection): super().__init__() self.id = id self.paw = paw From cccd394d13fd07d2f79fde77e5b2edba0e700416 Mon Sep 17 00:00:00 2001 From: blee Date: Fri, 1 Dec 2023 16:12:13 -0500 Subject: [PATCH 3/3] handle r/w details internally to Connection class --- app/c_connection.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/c_connection.py b/app/c_connection.py index d17a6fc..56b675d 100644 --- a/app/c_connection.py +++ b/app/c_connection.py @@ -7,3 +7,10 @@ def __init__(self, reader, writer): super().__init__() self.reader = reader self.writer = writer + + async def recv(self, num_bytes): + return await self.reader.read(num_bytes) + + async def send(self, data): + self.writer.write(data) + await self.writer.drain()