- Added methods for manipulating transforms
This commit is contained in:
Tristan B. Velloza Kildaire 2024-04-09 08:29:36 +02:00
parent b6d002e711
commit e35f6fba73
1 changed files with 36 additions and 0 deletions

View File

@ -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);
}
}