OSDP.Net 5.2.1
A .NET library for implementing the Open Supervised Device Protocol (OSDP)
Loading...
Searching...
No Matches
OSDPFileCaptureTracer.cs
1using System;
2using System.Collections.Concurrent;
3
4namespace OSDP.Net.Tracing;
5
6internal static class OSDPFileCaptureTracer
7{
8 private static readonly ConcurrentDictionary<Guid, OSDPCaptureFileWriter> Writers = new();
9
10 public static void Trace(TraceEntry trace)
11 {
12 var writer = Writers.GetOrAdd(trace.ConnectionId, connectionId =>
13 new OSDPCaptureFileWriter($"{connectionId:D}.osdpcap", "OSDP.Net", append: true));
14
15 writer.WriteTrace(trace);
16 }
17
22 internal static void CloseWriter(Guid connectionId)
23 {
24 if (Writers.TryRemove(connectionId, out var writer))
25 {
26 writer.Dispose();
27 }
28 }
29
34 internal static void CloseAllWriters()
35 {
36 foreach (var writer in Writers.Values)
37 {
38 writer.Dispose();
39 }
40 Writers.Clear();
41 }
42}