Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ AddEventDescriptor()

static void System.Diagnostics.Tracing.EventSource.AddEventDescriptor ( [NotNull] ref EventMetadata[] eventData,
string eventName,
EventAttribute eventAttribute,
ParameterInfo[] eventParameters,
bool hasRelatedActivityID )
inlinestaticprivateinherited

Definition at line 2464 of file EventSource.cs.

2465 {
2466 if (eventData.Length <= eventAttribute.EventId)
2467 {
2468 EventMetadata[] array = new EventMetadata[Math.Max(eventData.Length + 16, eventAttribute.EventId + 1)];
2469 Array.Copy(eventData, array, eventData.Length);
2470 eventData = array;
2471 }
2472 ref EventMetadata reference = ref eventData[eventAttribute.EventId];
2473 reference.Descriptor = new EventDescriptor(eventAttribute.EventId, eventAttribute.Version, (byte)eventAttribute.Channel, (byte)eventAttribute.Level, (byte)eventAttribute.Opcode, (int)eventAttribute.Task, (long)eventAttribute.Keywords | (long)SessionMask.All.ToEventKeywords());
2474 reference.Tags = eventAttribute.Tags;
2475 reference.Name = eventName;
2476 reference.Parameters = eventParameters;
2477 reference.Message = eventAttribute.Message;
2478 reference.ActivityOptions = eventAttribute.ActivityOptions;
2479 reference.HasRelatedActivityID = hasRelatedActivityID;
2480 reference.EventHandle = IntPtr.Zero;
2481 int num = eventParameters.Length;
2482 bool allParametersAreInt = true;
2483 bool allParametersAreString = true;
2485 {
2486 Type parameterType = parameterInfo.ParameterType;
2487 if (parameterType == typeof(string))
2488 {
2489 allParametersAreInt = false;
2490 continue;
2491 }
2492 if (parameterType == typeof(int) || (parameterType.IsEnum && Type.GetTypeCode(parameterType.GetEnumUnderlyingType()) <= TypeCode.UInt32))
2493 {
2494 allParametersAreString = false;
2495 continue;
2496 }
2497 if (parameterType == typeof(byte[]))
2498 {
2499 num++;
2500 }
2501 allParametersAreInt = false;
2502 allParametersAreString = false;
2503 }
2504 reference.AllParametersAreInt32 = allParametersAreInt;
2505 reference.AllParametersAreString = allParametersAreString;
2506 reference.EventListenerParameterCount = num;
2507 }

References System.Diagnostics.Tracing.SessionMask.All, System.array, System.Array.Copy(), System.Type.GetTypeCode(), System.Math.Max(), and System.IntPtr.Zero.

Referenced by System.Diagnostics.Tracing.EventSource.CreateManifestAndDescriptors().