From 88be3d08e3f7d919cd5f9b72b4e9fe89ad3d1ac6 Mon Sep 17 00:00:00 2001 From: "Tristan B. Kildaire" Date: Wed, 8 Sep 2021 19:21:33 +0200 Subject: [PATCH] Added exception class ALso added `getQueues()` function --- source/tristanable/exceptions.d | 29 +++++++++++++++++++++++++++++ source/tristanable/manager.d | 15 +++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 source/tristanable/exceptions.d diff --git a/source/tristanable/exceptions.d b/source/tristanable/exceptions.d new file mode 100644 index 0000000..c95e14e --- /dev/null +++ b/source/tristanable/exceptions.d @@ -0,0 +1,29 @@ +module tristanable.exceptions; + +import tristanable.manager; +import tristanable.queue : Queue; + +public final class TristanableException : Exception +{ + this(Manager manager, string message) + { + super(generateMessage(message)); + } + + private string generateMessage(string errMesg) + { + string msg; + + // msg = "TRistanable failure: "~errMesg~"\n\n"; + // msg ~= "Queue stats:\n\n" + + // Queue[] queues = manager.getQueues(); + // foreach(Queue queue; queues) + // { + // msg ~= "Queue["~to!(string)(queue.getTag())~"]: "~ + // } + // msg ~= manager.getQueues() + + return msg; + } +} \ No newline at end of file diff --git a/source/tristanable/manager.d b/source/tristanable/manager.d index 88489df..c9803e0 100644 --- a/source/tristanable/manager.d +++ b/source/tristanable/manager.d @@ -110,6 +110,21 @@ public final class Manager return newQueue; } + public Queue[] getQueues() + { + Queue[] queues; + queuesLock.lock(); + + foreach(Queue queue; this.queues) + { + queues ~= queue; + } + + queuesLock.unlock(); + + return queues; + } + public void removeQueue(Queue queue) { queuesLock.lock();