diff --git a/source/dlog/nu/core.d b/source/dlog/nu/core.d new file mode 100644 index 0000000..ddce1f6 --- /dev/null +++ b/source/dlog/nu/core.d @@ -0,0 +1,38 @@ +module dlog.nu.core; + +public class Message +{ + +} + +public interface Filter +{ + public bool filter(Message message); +} + +public interface MessageTransform +{ + public Message transform(Message message); +} + +public interface Handler +{ + public void handle(Message message); +} + +import std.container.slist : SList; +// import std.range : in; +import core.sync.mutex : Mutex; + +public abstract class Logger +{ + private SList!(MessageTransform) transforms; + private SList!(Filter) filters; + private SList!(Handler) handlers; + private Mutex lock; // Lock for attached handlers, filters and transforms + + this() + { + this.lock = new Mutex(); + } +} \ No newline at end of file