tristanable/README.md

43 lines
888 B
Markdown
Raw Normal View History

2020-06-22 18:48:09 +00:00
tristanable
===========
2020-06-22 19:36:06 +00:00
Tag-based asynchronous messaging framework
2020-06-23 07:19:56 +00:00
## Usage
2020-06-23 07:23:26 +00:00
The entry point is via the `Manager` type, so first create an instance as follows (passing the endpoint `Socket` in as `socket` in this example):
2020-06-23 07:19:56 +00:00
```d
Manager manager = new Manager(socket);
```
2020-06-23 07:23:26 +00:00
Now the event loop would have started, now we are ready to send out some tagged messages and blocking receive for them!
Let's send out two messages with tags `1` and `2`:
```d
manager.sendMessage(1, [1,2,3,4,5]);
manager.sendMessage(2, [6,7,8,9,0]);
```
Now we can start two seperate threads and wait on them both:
2020-06-23 07:19:56 +00:00
2020-06-23 08:58:11 +00:00
```d
byte[] receivedData = manager.receiveMessage(1);
```
```d
byte[] receivedData = manager.receiveMessage(2);
```
2020-06-23 07:19:56 +00:00
**TODO**
2020-06-22 19:36:06 +00:00
## Format
```
[4 bytes (size-2, little endian)][8 bytes - tag][(2-size) bytes - data]
2020-06-22 22:33:52 +00:00
```
2020-06-23 07:18:14 +00:00
## Acknowledgements
2020-06-22 22:33:52 +00:00
2020-06-23 07:18:14 +00:00
Thansk to Gabby Smuts for the name suggestion 😉️