Tristan B. Velloza Kildaire
02f8c8f102
New feature: On-receive queuing
...
In the case where this is enabled, via the Manager constructor's last boolean
argument, then any message with a tag that does no match any existing queue
will trigger the creation of a new queue with said tag, addition of said queue
to the manager and appending of the triggering message to said queue.
2022-05-26 12:34:37 +02:00
Tristan B. Velloza Kildaire
9da01c7376
One must now explicitly start tristanable
2022-05-19 18:40:25 +02:00
Tristan B. Velloza Kildaire
35e7b6e3b3
Bug fix for all queue operations failing on alive sockets (inverted boolean)
2022-05-17 14:52:09 +02:00
Tristan B. Velloza Kildaire
4c7f6f5ea2
Added invalidation mechanism
2022-05-17 14:42:19 +02:00
Tristan B. Velloza Kildaire
6613d92908
Expose new system architetcure to users via Manager constructor, however default to disabled
2022-05-17 13:54:21 +02:00
Tristan B. Velloza Kildaire
ad99ef63d9
Added TODO
2021-09-09 16:18:16 +02:00
Tristan B. Velloza Kildaire
b58fb718a7
Added some comments
2021-09-09 16:09:27 +02:00
Tristan B. Velloza Kildaire
ddd46f3388
Added some comments
2021-09-09 18:02:45 +02:00
Tristan B. Velloza Kildaire
df4d479e54
Throw an exception when trying to remove a queue with an id not in use by any queue
2021-09-09 18:01:14 +02:00
Tristan B. Velloza Kildaire
0c43e80cf6
Throw an exception when trying to add a queue with an id already in use by another queue
2021-09-09 18:00:59 +02:00
Tristan B. Velloza Kildaire
9c7d15dc89
corrected last commit
2021-09-08 22:09:48 +02:00
Tristan B. Velloza Kildaire
e5a0a280bc
Changed API
2021-09-08 20:50:22 +02:00
Tristan B. Velloza Kildaire
b060b30c44
Added `sendMessage` to bformat encode the final t-encoded message
2021-09-08 20:45:39 +02:00
Tristan B. Velloza Kildaire
88be3d08e3
Added exception class
...
ALso added `getQueues()` function
2021-09-08 19:21:33 +02:00
Tristan B. Velloza Kildaire
4f83991baf
Added the ability to delete a queue
...
Updated todo
2021-09-08 14:24:58 +02:00
Tristan B. Velloza Kildaire
445e008603
`generateQueue()` now uses new `isValidTag(ulong)`
2021-09-08 13:47:53 +02:00
Tristan B. Velloza Kildaire
d48cc4267e
Clean up
2021-09-08 13:47:04 +02:00
Tristan B. Velloza Kildaire
3103adcb0f
Removed uneeded function
2021-09-08 13:46:57 +02:00
Tristan B. Velloza Kildaire
e8d4e0ae20
addQueue() now uses recursive mutex capabilities with re-impkemented `isValidTag()`
2021-09-08 13:46:38 +02:00
Tristan B. Velloza Kildaire
ea32c7eef4
Re-implemented `isValidTag(ulong)`
2021-09-08 13:46:05 +02:00
Tristan B. Velloza Kildaire
384f286f83
Use recursive mutex capabilities
2021-09-08 13:42:25 +02:00
Tristan B. Velloza Kildaire
7a60a31e0a
Added `generateQueue()` to create random queues for those who don't care about reserved ids
2021-09-08 13:40:39 +02:00
Tristan B. Velloza Kildaire
bfa4364a99
Added shutdown capability
2021-09-08 11:19:05 +02:00
Tristan B. Velloza Kildaire
5f16e8d5b0
Use DList
2021-09-08 11:14:03 +02:00
Tristan B. Kildaire
984261a394
Added missing watcher
2020-10-16 17:11:26 +02:00
Tristan B. Kildaire
41199e96fc
Renamed
2020-09-29 19:18:53 +02:00
Tristan B. Kildaire
176310761c
Deleted old code
2020-09-29 19:13:21 +02:00
Tristan B. Kildaire
02a29b5293
Made reservedTags queue thread safe
2020-09-29 08:47:04 +02:00
Tristan B. Kildaire
b0b7f69778
re-ordered, send after enqueue, a slight conc bug would appear whereby the thread switch to watcher occurs after send (suppose) and then it locks list mjtex, seees no request, says it is an error, this ensures it is a request then sends it so when thread switch to watcher occurs, it MUST be in the list and therefore a valid request
2020-09-28 19:17:21 +02:00
Tristan B. Kildaire
98cd3e8c1e
Append notifications to queue
2020-09-25 10:16:14 +02:00
Tristan 🅱. Kildaire
47565b5692
WIP: reserved tags/notifcation system
2020-09-24 20:49:59 +02:00
Tristan 🅱. Kildaire
485995bfe3
Added methods to add a reserved tag and check whether a tag is reserved, added queue for notifications and also a list of reserved tags
2020-09-24 20:30:59 +02:00
Tristan B. Kildaire
2960a8ec57
Implemented `stopManager` function which also calls on the now implemented `stopWatcher` and `stopGC` functions.
2020-06-24 11:14:53 +02:00
Tristan B. Kildaire
65f5667eca
Refactored.
2020-06-24 11:04:36 +02:00
Tristan B. Kildaire
c1af63ba89
Throws exception on waiting for an invalid tag
2020-06-23 14:52:43 +02:00
Tristan B. Kildaire
8f19f2ec7f
Skip dead requests.
2020-06-23 14:49:08 +02:00
Tristan B. Kildaire
1cec094633
Don't tarverse array more thna once.
2020-06-23 14:39:34 +02:00
Tristan B. Kildaire
f440727800
Fixed bug whereby the queue mutex would not be unlocked.
2020-06-23 14:22:00 +02:00
Tristan B. Kildaire
0b0ded86ee
Pls
2020-06-23 14:16:55 +02:00
Tristan B. Kildaire
2d994d806a
Pls work
2020-06-23 14:15:45 +02:00
Tristan B. Kildaire
eee5867f5c
WIP: Throw an error though
2020-06-23 13:31:36 +02:00
Tristan B. Kildaire
705b0f8cbe
`sendMessage` now uses encoder library for message encoding.
2020-06-23 12:23:56 +02:00
Tristan B. Kildaire
2dcd0f4fff
Encoding library finished
2020-06-23 12:23:10 +02:00
Tristan B. Kildaire
0a7dda74a0
Adding tests
2020-06-23 12:11:31 +02:00
Tristan B. Kildaire
02ca3d9bb5
Added garbage collection to the queue.
2020-06-23 11:09:44 +02:00
Tristan B. Kildaire
bef0c0f740
Cleaned up comment.
2020-06-23 09:18:20 +02:00
Tristan B. Kildaire
818b12f111
Removed unused function.
2020-06-23 09:16:40 +02:00
Tristan B. Kildaire
b75b11e2b0
Finalised
2020-06-23 01:07:17 +02:00
Tristan B. Kildaire
6e2a92a59b
Added all code needed to get it working.
2020-06-23 00:33:01 +02:00
Tristan B. Kildaire
71879638c6
Fixed all compilation issues.
2020-06-22 22:37:45 +02:00