Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
IncrementingEventCounter.cs
Go to the documentation of this file.
3
5
6[UnsupportedOSPlatform("browser")]
8{
9 private double _increment;
10
11 private double _prevIncrement;
12
13 public TimeSpan DisplayRateTimeScale { get; set; }
14
15 public IncrementingEventCounter(string name, EventSource eventSource)
16 : base(name, eventSource)
17 {
18 Publish();
19 }
20
21 public void Increment(double increment = 1.0)
22 {
23 lock (this)
24 {
25 _increment += increment;
26 }
27 }
28
29 public override string ToString()
30 {
31 return $"IncrementingEventCounter '{base.Name}' Increment {_increment}";
32 }
33
34 [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026:RequiresUnreferencedCode", Justification = "The DynamicDependency will preserve the properties of IncrementingCounterPayload")]
35 [DynamicDependency(DynamicallyAccessedMemberTypes.PublicProperties, typeof(IncrementingCounterPayload))]
36 internal override void WritePayload(float intervalSec, int pollingIntervalMillisec)
37 {
38 lock (this)
39 {
40 IncrementingCounterPayload incrementingCounterPayload = new IncrementingCounterPayload();
41 incrementingCounterPayload.Name = base.Name;
42 incrementingCounterPayload.IntervalSec = intervalSec;
43 incrementingCounterPayload.DisplayName = base.DisplayName ?? "";
44 incrementingCounterPayload.DisplayRateTimeScale = ((DisplayRateTimeScale == TimeSpan.Zero) ? "" : DisplayRateTimeScale.ToString("c"));
45 incrementingCounterPayload.Series = $"Interval={pollingIntervalMillisec}";
46 incrementingCounterPayload.CounterType = "Sum";
47 incrementingCounterPayload.Metadata = GetMetadataString();
48 incrementingCounterPayload.Increment = _increment - _prevIncrement;
49 incrementingCounterPayload.DisplayUnits = base.DisplayUnits ?? "";
51 base.EventSource.Write("EventCounters", new EventSourceOptions
52 {
53 Level = EventLevel.LogAlways
54 }, new IncrementingEventCounterPayloadType(incrementingCounterPayload));
55 }
56 }
57
58 internal void UpdateMetric()
59 {
60 lock (this)
61 {
63 }
64 }
65}
IncrementingEventCounter(string name, EventSource eventSource)
override void WritePayload(float intervalSec, int pollingIntervalMillisec)
static readonly TimeSpan Zero
Definition TimeSpan.cs:21
override string ToString()
Definition TimeSpan.cs:476