From e35f6fba73ab72c9930934447cab8dd69e589d56 Mon Sep 17 00:00:00 2001 From: "Tristan B. Velloza Kildaire" Date: Tue, 9 Apr 2024 08:29:36 +0200 Subject: [PATCH] Core - Added methods for manipulating transforms --- source/dlog/nu/core.d | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/source/dlog/nu/core.d b/source/dlog/nu/core.d index ddce1f6..ef6f017 100644 --- a/source/dlog/nu/core.d +++ b/source/dlog/nu/core.d @@ -24,6 +24,16 @@ import std.container.slist : SList; // import std.range : in; import core.sync.mutex : Mutex; +// private mixin template Ting(Mutex lock) +// { +// scope(exit) +// { +// lock.unlock(); +// } + +// lock.lock(); +// } + public abstract class Logger { private SList!(MessageTransform) transforms; @@ -35,4 +45,30 @@ public abstract class Logger { this.lock = new Mutex(); } + + // TODO: Handle duplicate? + public final void addTransform(MessageTransform transform) + { + scope(exit) + { + this.lock.unlock(); + } + + this.lock.lock(); + + this.transforms.insertAfter(this.transforms[], transform); + } + + // TODO: Hanmdle not found explicitly? + public final void removeTransform(MessageTransform transform) + { + scope(exit) + { + this.lock.unlock(); + } + + this.lock.lock(); + + this.transforms.linearRemoveElement(transform); + } } \ No newline at end of file