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

◆ WriteToAllListeners() [1/2]

unsafe void System.Diagnostics.Tracing.EventSource.WriteToAllListeners ( EventWrittenEventArgs eventCallbackArgs,
int eventDataCount,
EventData * data )
inlineprivateinherited

Definition at line 1499 of file EventSource.cs.

1500 {
1501 ref EventMetadata reference = ref m_eventData[eventCallbackArgs.EventId];
1502 if (eventDataCount != reference.EventListenerParameterCount)
1503 {
1504 ReportOutOfBandMessage(SR.Format(SR.EventSource_EventParametersMismatch, eventCallbackArgs.EventId, eventDataCount, reference.Parameters.Length));
1505 }
1506 if (eventDataCount == 0)
1507 {
1508 eventCallbackArgs.Payload = EventWrittenEventArgs.EmptyPayload;
1509 }
1510 else
1511 {
1512 object[] array = new object[Math.Min(eventDataCount, reference.Parameters.Length)];
1513 if (reference.AllParametersAreString)
1514 {
1515 int num = 0;
1516 while (num < array.Length)
1517 {
1518 IntPtr dataPointer = data->DataPointer;
1519 array[num] = ((dataPointer == IntPtr.Zero) ? null : new string((char*)(void*)dataPointer, 0, (data->Size >> 1) - 1));
1520 num++;
1521 data++;
1522 }
1523 }
1524 else if (reference.AllParametersAreInt32)
1525 {
1526 int num2 = 0;
1527 while (num2 < array.Length)
1528 {
1529 array[num2] = *(int*)(void*)data->DataPointer;
1530 num2++;
1531 data++;
1532 }
1533 }
1534 else
1535 {
1536 DecodeObjects(array, reference.ParameterTypes, data);
1537 }
1538 eventCallbackArgs.Payload = new ReadOnlyCollection<object>(array);
1539 }
1541 }
void DispatchToAllListeners(EventWrittenEventArgs eventCallbackArgs)
volatile EventMetadata[] m_eventData
static unsafe void DecodeObjects(object[] decodedObjects, Type[] parameterTypes, EventData *data)

References System.array, System.Diagnostics.Tracing.EventSource.EventData.DataPointer, System.Diagnostics.Tracing.EventSource.DecodeObjects(), System.Diagnostics.Tracing.EventSource.DispatchToAllListeners(), System.Diagnostics.Tracing.EventWrittenEventArgs.EmptyPayload, System.SR.EventSource_EventParametersMismatch, System.SR.Format(), System.Diagnostics.Tracing.EventSource.m_eventData, System.Math.Min(), System.Diagnostics.Tracing.EventSource.ReportOutOfBandMessage(), System.Diagnostics.Tracing.EventSource.EventData.Size, and System.IntPtr.Zero.

Referenced by System.Diagnostics.Tracing.EventSource.WriteEventWithRelatedActivityIdCore(), and System.Diagnostics.Tracing.EventSource.WriteImpl().