Header(LogFileReader reader) { Id = reader.ReadInt32 (); if (Id != LogHeaderId) throw new InvalidOperationException ("Id doesn't match."); Major = reader.ReadByte (); Minor = reader.ReadByte (); Format = reader.ReadByte (); PtrSize = reader.ReadByte (); StartupTime = reader.ReadInt64 (); TimerOverhead = reader.ReadInt32 (); Flags = reader.ReadInt32 (); Pid = reader.ReadInt32 (); Port = reader.ReadUInt16 (); SysId = reader.ReadUInt16 (); }
public static Event Read(LogFileReader reader) { byte info = reader.ReadByte (); EventType type = (EventType)(info & 0xF); byte extendedInfo = (byte)(info & 0xF0); return CreateEvent (reader, type, extendedInfo); }
public readonly long Pointer; // pointer of the metadata type depending on mtype #endregion Fields #region Constructors MetadataEvent(LogFileReader reader) { TimeDiff = reader.ReadULeb128 (); MType = (MetaDataType)reader.ReadByte (); Pointer = reader.ReadSLeb128 (); switch (MType) { case MetaDataType.Class: Image = reader.ReadSLeb128 (); Flags = reader.ReadULeb128 (); Name = reader.ReadNullTerminatedString (); break; case MetaDataType.Image: Flags = reader.ReadULeb128 (); Name = reader.ReadNullTerminatedString (); break; case MetaDataType.Thread: Flags = reader.ReadULeb128 (); Name = reader.ReadNullTerminatedString (); break; } }
public readonly long Pointer; // pointer of the metadata type depending on mtype #endregion Fields #region Constructors MetadataEvent(LogFileReader reader, byte extendedInfo) { TimeDiff = reader.ReadULeb128 (); MType = (MetaDataType)reader.ReadByte (); Pointer = reader.ReadSLeb128 (); switch (MType) { case MetaDataType.Class: Image = reader.ReadSLeb128 (); Flags = reader.ReadULeb128 (); Name = reader.ReadNullTerminatedString (); break; case MetaDataType.Image: Flags = reader.ReadULeb128 (); Name = reader.ReadNullTerminatedString (); break; case MetaDataType.Assembly: Flags = reader.ReadULeb128 (); Name = reader.ReadNullTerminatedString (); break; case MetaDataType.Thread: Flags = reader.ReadULeb128 (); if (reader.Header.Format < 11 || (reader.Header.Format > 10 && extendedInfo == 0)) { Name = reader.ReadNullTerminatedString (); } break; case MetaDataType.Domain: Flags = reader.ReadULeb128 (); if (extendedInfo == 0) Name = reader.ReadNullTerminatedString (); break; case MetaDataType.Context: Flags = reader.ReadULeb128 (); Domain = reader.ReadSLeb128 (); break; default: throw new ArgumentException ("Unknown metadata type: " + MType); } }