Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
Meter.cs
Go to the documentation of this file.
2
4
5public class Meter : IDisposable
6{
7 private static readonly List<Meter> s_allMeters = new List<Meter>();
8
10
11 internal bool Disposed { get; private set; }
12
13 public string Name { get; }
14
15 public string? Version { get; }
16
17 public Meter(string name)
18 : this(name, null)
19 {
20 }
21
22 public Meter(string name, string? version)
23 {
24 if (name == null)
25 {
26 throw new ArgumentNullException("name");
27 }
28 Name = name;
29 Version = version;
31 {
32 s_allMeters.Add(this);
33 }
35 }
36
37 public Counter<T> CreateCounter<T>(string name, string? unit = null, string? description = null) where T : struct
38 {
39 return new Counter<T>(this, name, unit, description);
40 }
41
42 public Histogram<T> CreateHistogram<T>(string name, string? unit = null, string? description = null) where T : struct
43 {
44 return new Histogram<T>(this, name, unit, description);
45 }
46
47 public ObservableCounter<T> CreateObservableCounter<T>(string name, Func<T> observeValue, string? unit = null, string? description = null) where T : struct
48 {
49 return new ObservableCounter<T>(this, name, observeValue, unit, description);
50 }
51
52 public ObservableCounter<T> CreateObservableCounter<T>(string name, Func<Measurement<T>> observeValue, string? unit = null, string? description = null) where T : struct
53 {
54 return new ObservableCounter<T>(this, name, observeValue, unit, description);
55 }
56
57 public ObservableCounter<T> CreateObservableCounter<T>(string name, Func<IEnumerable<Measurement<T>>> observeValues, string? unit = null, string? description = null) where T : struct
58 {
59 return new ObservableCounter<T>(this, name, observeValues, unit, description);
60 }
61
62 public ObservableGauge<T> CreateObservableGauge<T>(string name, Func<T> observeValue, string? unit = null, string? description = null) where T : struct
63 {
64 return new ObservableGauge<T>(this, name, observeValue, unit, description);
65 }
66
67 public ObservableGauge<T> CreateObservableGauge<T>(string name, Func<Measurement<T>> observeValue, string? unit = null, string? description = null) where T : struct
68 {
69 return new ObservableGauge<T>(this, name, observeValue, unit, description);
70 }
71
72 public ObservableGauge<T> CreateObservableGauge<T>(string name, Func<IEnumerable<Measurement<T>>> observeValues, string? unit = null, string? description = null) where T : struct
73 {
74 return new ObservableGauge<T>(this, name, observeValues, unit, description);
75 }
76
77 public void Dispose()
78 {
81 {
82 if (Disposed)
83 {
84 return;
85 }
86 Disposed = true;
87 s_allMeters.Remove(this);
90 }
91 if (list == null)
92 {
93 return;
94 }
95 foreach (Instrument item in list)
96 {
97 item.NotifyForUnpublishedInstrument();
98 }
99 }
100
102 {
104 {
106 return true;
107 }
108 return false;
109 }
110
112 {
113 List<Instrument> list = null;
114 if (s_allMeters.Count > 0)
115 {
116 list = new List<Instrument>();
117 foreach (Meter s_allMeter in s_allMeters)
118 {
119 foreach (Instrument instrument in s_allMeter._instruments)
120 {
121 list.Add(instrument);
122 }
123 }
124 }
125 return list;
126 }
127}
bool ICollection< KeyValuePair< TKey, TValue > >. Contains(KeyValuePair< TKey, TValue > keyValuePair)
void Add(TKey key, TValue value)
static List< Instrument > GetPublishedInstruments()
Definition Meter.cs:111
ObservableGauge< T > CreateObservableGauge< T >(string name, Func< T > observeValue, string? unit=null, string? description=null)
Definition Meter.cs:62
Counter< T > CreateCounter< T >(string name, string? unit=null, string? description=null)
Definition Meter.cs:37
bool AddInstrument(Instrument instrument)
Definition Meter.cs:101
Meter(string name, string? version)
Definition Meter.cs:22
static readonly List< Meter > s_allMeters
Definition Meter.cs:7
List< Instrument > _instruments
Definition Meter.cs:9
Histogram< T > CreateHistogram< T >(string name, string? unit=null, string? description=null)
Definition Meter.cs:42
ObservableCounter< T > CreateObservableCounter< T >(string name, Func< T > observeValue, string? unit=null, string? description=null)
Definition Meter.cs:47
static void KeepAlive(object? obj)
Definition GC.cs:180
Definition GC.cs:8