Commit Graph

60 Commits

Author SHA1 Message Date
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