Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
NetEventSource.cs
Go to the documentation of this file.
6
7namespace System.Net;
8
9[EventSource(Name = "Private.InternalDiagnostics.System.Net.Requests")]
10internal sealed class NetEventSource : EventSource
11{
12 public static class Keywords
13 {
14 public const EventKeywords Default = (EventKeywords)1L;
15
16 public const EventKeywords Debug = (EventKeywords)2L;
17 }
18
19 public static readonly System.Net.NetEventSource Log = new System.Net.NetEventSource();
20
21 [NonEvent]
22 public static void Info(object thisOrContextObject, FormattableString formattableString = null, [CallerMemberName] string memberName = null)
23 {
24 if (Log.IsEnabled())
25 {
26 Log.Info(IdOf(thisOrContextObject), memberName, (formattableString != null) ? Format(formattableString) : "");
27 }
28 }
29
30 [NonEvent]
31 public static void Info(object thisOrContextObject, object message, [CallerMemberName] string memberName = null)
32 {
33 if (Log.IsEnabled())
34 {
35 Log.Info(IdOf(thisOrContextObject), memberName, Format(message).ToString());
36 }
37 }
38
39 [Event(4, Level = EventLevel.Informational, Keywords = (EventKeywords)1L)]
40 private void Info(string thisOrContextObject, string memberName, string message)
41 {
42 WriteEvent(4, thisOrContextObject, memberName ?? "(?)", message);
43 }
44
45 [NonEvent]
46 public static void Error(object thisOrContextObject, FormattableString formattableString, [CallerMemberName] string memberName = null)
47 {
48 if (Log.IsEnabled())
49 {
50 Log.ErrorMessage(IdOf(thisOrContextObject), memberName, Format(formattableString));
51 }
52 }
53
54 [NonEvent]
55 public static void Error(object thisOrContextObject, object message, [CallerMemberName] string memberName = null)
56 {
57 if (Log.IsEnabled())
58 {
59 Log.ErrorMessage(IdOf(thisOrContextObject), memberName, Format(message).ToString());
60 }
61 }
62
63 [Event(5, Level = EventLevel.Error, Keywords = (EventKeywords)1L)]
64 private void ErrorMessage(string thisOrContextObject, string memberName, string message)
65 {
66 WriteEvent(5, thisOrContextObject, memberName ?? "(?)", message);
67 }
68
69 [NonEvent]
70 public static void Associate(object first, object second, [CallerMemberName] string memberName = null)
71 {
72 if (Log.IsEnabled())
73 {
74 Log.Associate(IdOf(first), memberName, IdOf(first), IdOf(second));
75 }
76 }
77
78 [Event(3, Level = EventLevel.Informational, Keywords = (EventKeywords)1L, Message = "[{2}]<-->[{3}]")]
79 private void Associate(string thisOrContextObject, string memberName, string first, string second)
80 {
81 WriteEvent(3, thisOrContextObject, memberName ?? "(?)", first, second);
82 }
83
84 [NonEvent]
85 public static string IdOf(object value)
86 {
87 if (value == null)
88 {
89 return "(null)";
90 }
91 return value.GetType().Name + "#" + GetHashCode(value);
92 }
93
94 [NonEvent]
95 public static int GetHashCode(object value)
96 {
97 return value?.GetHashCode() ?? 0;
98 }
99
100 [NonEvent]
101 public static object Format(object value)
102 {
103 if (value == null)
104 {
105 return "(null)";
106 }
107 string text = null;
108 if (text != null)
109 {
110 return text;
111 }
112 if (value is Array array)
113 {
114 return $"{array.GetType().GetElementType()}[{((Array)value).Length}]";
115 }
117 {
118 return $"{collection.GetType().Name}({collection.Count})";
119 }
120 if (value is SafeHandle safeHandle)
121 {
122 return $"{safeHandle.GetType().Name}:{safeHandle.GetHashCode()}(0x{safeHandle.DangerousGetHandle():X})";
123 }
124 if (value is IntPtr)
125 {
126 return $"0x{value:X}";
127 }
128 string text2 = value.ToString();
129 if (text2 == null || text2 == value.GetType().FullName)
130 {
131 return IdOf(value);
132 }
133 return value;
134 }
135
136 [NonEvent]
137 private static string Format(FormattableString s)
138 {
139 switch (s.ArgumentCount)
140 {
141 case 0:
142 return s.Format;
143 case 1:
144 return string.Format(s.Format, Format(s.GetArgument(0)));
145 case 2:
146 return string.Format(s.Format, Format(s.GetArgument(0)), Format(s.GetArgument(1)));
147 case 3:
148 return string.Format(s.Format, Format(s.GetArgument(0)), Format(s.GetArgument(1)), Format(s.GetArgument(2)));
149 default:
150 {
151 object[] arguments = s.GetArguments();
152 object[] array = new object[arguments.Length];
153 for (int i = 0; i < arguments.Length; i++)
154 {
155 array[i] = Format(arguments[i]);
156 }
157 return string.Format(s.Format, array);
158 }
159 }
160 }
161
162 [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026:UnrecognizedReflectionPattern", Justification = "Parameters to this method are primitive and are trimmer safe")]
163 [NonEvent]
164 private unsafe void WriteEvent(int eventId, string arg1, string arg2, string arg3, string arg4)
165 {
166 //The blocks IL_005a, IL_005d, IL_006f, IL_0075, IL_0079, IL_0084, IL_0085, IL_017b, IL_017f are reachable both inside and outside the pinned region starting at IL_0057. ILSpy has duplicated these blocks in order to place them both within and outside the `fixed` statement.
167 //The blocks IL_0085 are reachable both inside and outside the pinned region starting at IL_0080. ILSpy has duplicated these blocks in order to place them both within and outside the `fixed` statement.
168 //The blocks IL_0085 are reachable both inside and outside the pinned region starting at IL_0080. ILSpy has duplicated these blocks in order to place them both within and outside the `fixed` statement.
169 if (!Log.IsEnabled())
170 {
171 return;
172 }
173 if (arg1 == null)
174 {
175 arg1 = "";
176 }
177 if (arg2 == null)
178 {
179 arg2 = "";
180 }
181 if (arg3 == null)
182 {
183 arg3 = "";
184 }
185 if (arg4 == null)
186 {
187 arg4 = "";
188 }
189 fixed (char* ptr6 = arg1)
190 {
191 char* intPtr;
192 char* intPtr2;
193 EventData* intPtr3;
194 nint num;
195 nint num2;
196 nint num3;
197 if (arg2 == null)
198 {
199 char* ptr;
200 intPtr = (ptr = null);
201 fixed (char* ptr2 = arg3)
202 {
203 char* ptr3 = ptr2;
204 if (arg4 == null)
205 {
206 char* ptr4;
207 intPtr2 = (ptr4 = null);
208 EventData* ptr5 = stackalloc EventData[4];
209 intPtr3 = ptr5;
210 *intPtr3 = new EventData
211 {
212 DataPointer = (IntPtr)ptr6,
213 Size = (arg1.Length + 1) * 2
214 };
215 num = (nint)(ptr5 + 1);
216 *(EventData*)num = new EventData
217 {
218 DataPointer = (IntPtr)ptr,
219 Size = (arg2.Length + 1) * 2
220 };
221 num2 = (nint)(ptr5 + 2);
222 *(EventData*)num2 = new EventData
223 {
224 DataPointer = (IntPtr)ptr3,
225 Size = (arg3.Length + 1) * 2
226 };
227 num3 = (nint)(ptr5 + 3);
228 *(EventData*)num3 = new EventData
229 {
230 DataPointer = (IntPtr)ptr4,
231 Size = (arg4.Length + 1) * 2
232 };
233 WriteEventCore(eventId, 4, ptr5);
234 return;
235 }
236 fixed (char* ptr7 = &arg4.GetPinnableReference())
237 {
238 char* ptr4;
239 intPtr2 = (ptr4 = ptr7);
240 EventData* ptr5 = stackalloc EventData[4];
241 intPtr3 = ptr5;
242 *intPtr3 = new EventData
243 {
244 DataPointer = (IntPtr)ptr6,
245 Size = (arg1.Length + 1) * 2
246 };
247 num = (nint)(ptr5 + 1);
248 *(EventData*)num = new EventData
249 {
250 DataPointer = (IntPtr)ptr,
251 Size = (arg2.Length + 1) * 2
252 };
253 num2 = (nint)(ptr5 + 2);
254 *(EventData*)num2 = new EventData
255 {
256 DataPointer = (IntPtr)ptr3,
257 Size = (arg3.Length + 1) * 2
258 };
259 num3 = (nint)(ptr5 + 3);
260 *(EventData*)num3 = new EventData
261 {
262 DataPointer = (IntPtr)ptr4,
263 Size = (arg4.Length + 1) * 2
264 };
265 WriteEventCore(eventId, 4, ptr5);
266 }
267 }
268 return;
269 }
270 fixed (char* ptr8 = &arg2.GetPinnableReference())
271 {
272 char* ptr;
273 intPtr = (ptr = ptr8);
274 fixed (char* ptr2 = arg3)
275 {
276 char* ptr3 = ptr2;
277 if (arg4 == null)
278 {
279 char* ptr4;
280 intPtr2 = (ptr4 = null);
281 EventData* ptr5 = stackalloc EventData[4];
282 intPtr3 = ptr5;
283 *intPtr3 = new EventData
284 {
285 DataPointer = (IntPtr)ptr6,
286 Size = (arg1.Length + 1) * 2
287 };
288 num = (nint)(ptr5 + 1);
289 *(EventData*)num = new EventData
290 {
291 DataPointer = (IntPtr)ptr,
292 Size = (arg2.Length + 1) * 2
293 };
294 num2 = (nint)(ptr5 + 2);
295 *(EventData*)num2 = new EventData
296 {
297 DataPointer = (IntPtr)ptr3,
298 Size = (arg3.Length + 1) * 2
299 };
300 num3 = (nint)(ptr5 + 3);
301 *(EventData*)num3 = new EventData
302 {
303 DataPointer = (IntPtr)ptr4,
304 Size = (arg4.Length + 1) * 2
305 };
306 WriteEventCore(eventId, 4, ptr5);
307 return;
308 }
309 fixed (char* ptr7 = &arg4.GetPinnableReference())
310 {
311 char* ptr4;
312 intPtr2 = (ptr4 = ptr7);
313 EventData* ptr5 = stackalloc EventData[4];
314 intPtr3 = ptr5;
315 *intPtr3 = new EventData
316 {
317 DataPointer = (IntPtr)ptr6,
318 Size = (arg1.Length + 1) * 2
319 };
320 num = (nint)(ptr5 + 1);
321 *(EventData*)num = new EventData
322 {
323 DataPointer = (IntPtr)ptr,
324 Size = (arg2.Length + 1) * 2
325 };
326 num2 = (nint)(ptr5 + 2);
327 *(EventData*)num2 = new EventData
328 {
329 DataPointer = (IntPtr)ptr3,
330 Size = (arg3.Length + 1) * 2
331 };
332 num3 = (nint)(ptr5 + 3);
333 *(EventData*)num3 = new EventData
334 {
335 DataPointer = (IntPtr)ptr4,
336 Size = (arg4.Length + 1) * 2
337 };
338 WriteEventCore(eventId, 4, ptr5);
339 }
340 }
341 }
342 }
343 }
344}
unsafe void WriteEventCore(int eventId, int eventDataCount, EventData *data)
static readonly System.Net.NetEventSource Log
void Associate(string thisOrContextObject, string memberName, string first, string second)
void ErrorMessage(string thisOrContextObject, string memberName, string message)
static void Info(object thisOrContextObject, FormattableString formattableString=null, [CallerMemberName] string memberName=null)
static void Error(object thisOrContextObject, object message, [CallerMemberName] string memberName=null)
void Info(string thisOrContextObject, string memberName, string message)
static string IdOf(object value)
static string Format(FormattableString s)
static void Error(object thisOrContextObject, FormattableString formattableString, [CallerMemberName] string memberName=null)
static void Associate(object first, object second, [CallerMemberName] string memberName=null)
static int GetHashCode(object value)
unsafe void WriteEvent(int eventId, int arg1, int arg2, int arg3, string arg4, string arg5)
unsafe void WriteEvent(int eventId, string arg1, string arg2, string arg3, string arg4)
static void Info(object thisOrContextObject, object message, [CallerMemberName] string memberName=null)
static object Format(object value)