- Added import for `bformat` and `encoding` module
- Documented `watch()`
- Added `bformat` read-and-decode `receiveMessage(Socket, ref byte[])` call followed by a `TaggedMessage.decode(byte[])` call
This commit is contained in:
Tristan B. Velloza Kildaire 2023-03-27 21:58:04 +02:00
parent e1676e2acc
commit 8942bd7f85
1 changed files with 16 additions and 1 deletions

View File

@ -3,6 +3,8 @@ module tristanable.manager.watcher;
import core.thread : Thread;
import tristanable.manager.manager : Manager;
import std.socket;
import bformat;
import tristanable.encoding;
/**
* Watches the socket on a thread of its own,
@ -33,12 +35,25 @@ public class Watcher : Thread
this.socket = socket;
}
/**
* Watches the socket for incoming messages
* and decodes them on the fly, placing
* the final message in the respective queue
*/
private void watch()
{
while(true)
{
// TODO: Implement me
/* Do a bformat read-and-decode */
byte[] wireTristan;
receiveMessage(socket, wireTristan);
/* Decode the received bytes into a tagged message */
TaggedMessage decodedMessage = TaggedMessage.decode(wireTristan);
}
}
}