Save imported image in the same format (WIP)
[master-thesis.git] / Parasitemia / Logger / Listeners.fs
1 namespace Logger
2
3 open System.Collections.Generic
4
5 open Logger.Types
6
7 type internal Listeners () =
8 let monitor = obj ()
9
10 let listeners = List<IListener> ()
11
12 member this.Add (listener : IListener) =
13 lock monitor (
14 fun () ->
15 if not <| listeners.Contains listener then
16 listeners.Add listener
17 )
18
19 member this.Remove (listener : IListener) =
20 lock monitor (
21 fun () ->
22 listeners.Remove listener |> ignore
23 )
24
25 member this.NewEntry (message : Message) =
26 lock monitor (
27 fun () ->
28 if listeners.Count > 0 then
29 let header = Utils.formatHeader message
30 for listener in listeners do
31 listener.NewEntry message.Severity header message.Message
32 )