/// <summary> /// Creates a event definition from a event metadata row. /// </summary> /// <param name="parentModule">The module that contains the event.</param> /// <param name="token">The token to initialize the event for.</param> /// <param name="row">The metadata table row to base the event definition on.</param> public SerializedEventDefinition(SerializedModuleDefinition parentModule, MetadataToken token, EventDefinitionRow row) : base(token) { _parentModule = parentModule ?? throw new ArgumentNullException(nameof(parentModule)); _row = row; Attributes = row.Attributes; }
/// <summary> /// Allocates metadata rows for the provided event definitions in the buffer. /// </summary> /// <param name="events">The events to define.</param> public void DefineEvents(IEnumerable <EventDefinition> events) { var table = Metadata.TablesStream.GetTable <EventDefinitionRow>(TableIndex.Event); foreach (var @event in events) { var row = new EventDefinitionRow( @event.Attributes, Metadata.StringsStream.GetStringIndex(@event.Name), GetTypeDefOrRefIndex(@event.EventType)); var token = table.Add(row); _tokenMapping.Register(@event, token); } }