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

◆ GenerateMetadata()

unsafe bool System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadata ( byte * pMetadataBlob,
ref uint offset,
uint blobSize )
inlinepackage

Definition at line 18 of file EventParameterInfo.cs.

19 {
20 TypeCode typeCodeExtended = GetTypeCodeExtended(ParameterType);
21 if (typeCodeExtended == TypeCode.Object)
22 {
23 EventPipeMetadataGenerator.WriteToBuffer(pMetadataBlob, blobSize, ref offset, 1u);
24 if (!(TypeInfo is InvokeTypeInfo { properties: var properties }))
25 {
26 return false;
27 }
28 if (properties != null)
29 {
30 EventPipeMetadataGenerator.WriteToBuffer(pMetadataBlob, blobSize, ref offset, (uint)properties.Length);
31 PropertyAnalysis[] array = properties;
32 foreach (PropertyAnalysis property in array)
33 {
34 if (!GenerateMetadataForProperty(property, pMetadataBlob, ref offset, blobSize))
35 {
36 return false;
37 }
38 }
39 }
40 else
41 {
42 EventPipeMetadataGenerator.WriteToBuffer(pMetadataBlob, blobSize, ref offset, 0u);
43 }
44 EventPipeMetadataGenerator.WriteToBuffer(pMetadataBlob, blobSize, ref offset, '\0');
45 }
46 else
47 {
48 EventPipeMetadataGenerator.WriteToBuffer(pMetadataBlob, blobSize, ref offset, (uint)typeCodeExtended);
49 fixed (char* src = ParameterName)
50 {
51 EventPipeMetadataGenerator.WriteToBuffer(pMetadataBlob, blobSize, ref offset, (byte*)src, (uint)((ParameterName.Length + 1) * 2));
52 }
53 }
54 return true;
55 }
static unsafe bool GenerateMetadataForProperty(PropertyAnalysis property, byte *pMetadataBlob, ref uint offset, uint blobSize)
static TypeCode GetTypeCodeExtended(Type parameterType)

References System.array, System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataForProperty(), System.Diagnostics.Tracing.EventParameterInfo.GetTypeCodeExtended(), System.offset, System.Diagnostics.Tracing.EventParameterInfo.ParameterName, System.Diagnostics.Tracing.EventParameterInfo.ParameterType, System.Diagnostics.Tracing.EventParameterInfo.TypeInfo, and System.Diagnostics.Tracing.EventPipeMetadataGenerator.WriteToBuffer().

Referenced by System.Diagnostics.Tracing.EventPipeMetadataGenerator.GenerateMetadata().