private void WriteBaseFields(BuildEventArgs e, BuildEventArgsFieldFlags flags) { if ((flags & BuildEventArgsFieldFlags.Message) != 0) { WriteDeduplicatedString(e.Message); } if ((flags & BuildEventArgsFieldFlags.BuildEventContext) != 0) { Write(e.BuildEventContext); } if ((flags & BuildEventArgsFieldFlags.ThreadId) != 0) { Write(e.ThreadId); } if ((flags & BuildEventArgsFieldFlags.HelpHeyword) != 0) { WriteDeduplicatedString(e.HelpKeyword); } if ((flags & BuildEventArgsFieldFlags.SenderName) != 0) { WriteDeduplicatedString(e.SenderName); } if ((flags & BuildEventArgsFieldFlags.Timestamp) != 0) { Write(e.Timestamp); } }
private void WriteMessageFields(BuildMessageEventArgs e) { BuildEventArgsFieldFlags flags = GetBuildEventArgsFieldFlags(e); flags = GetMessageFlags(e, flags); Write((int)flags); WriteBaseFields(e, flags); if ((flags & BuildEventArgsFieldFlags.Subcategory) != 0) { Write(e.Subcategory); } if ((flags & BuildEventArgsFieldFlags.Code) != 0) { Write(e.Code); } if ((flags & BuildEventArgsFieldFlags.File) != 0) { Write(e.File); } if ((flags & BuildEventArgsFieldFlags.ProjectFile) != 0) { Write(e.ProjectFile); } if ((flags & BuildEventArgsFieldFlags.LineNumber) != 0) { Write(e.LineNumber); } if ((flags & BuildEventArgsFieldFlags.ColumnNumber) != 0) { Write(e.ColumnNumber); } if ((flags & BuildEventArgsFieldFlags.EndLineNumber) != 0) { Write(e.EndLineNumber); } if ((flags & BuildEventArgsFieldFlags.EndColumnNumber) != 0) { Write(e.EndColumnNumber); } Write((int)e.Importance); }
private static BuildEventArgsFieldFlags GetBuildEventArgsFieldFlags(BuildEventArgs e) { BuildEventArgsFieldFlags flags = BuildEventArgsFieldFlags.None; if (e.BuildEventContext != null) { flags |= BuildEventArgsFieldFlags.BuildEventContext; } if (e.HelpKeyword != null) { flags |= BuildEventArgsFieldFlags.HelpHeyword; } if (!string.IsNullOrEmpty(e.Message)) { flags |= BuildEventArgsFieldFlags.Message; } // no need to waste space for the default sender name if (e.SenderName != null && e.SenderName != "MSBuild") { flags |= BuildEventArgsFieldFlags.SenderName; } if (e.ThreadId > 0) { flags |= BuildEventArgsFieldFlags.ThreadId; } if (e.Timestamp != default(DateTime)) { flags |= BuildEventArgsFieldFlags.Timestamp; } return(flags); }
private BuildEventArgsFields ReadBuildEventArgsFields() { BuildEventArgsFieldFlags flags = (BuildEventArgsFieldFlags)ReadInt32(); var result = new BuildEventArgsFields(); result.Flags = flags; if ((flags & BuildEventArgsFieldFlags.Message) != 0) { result.Message = ReadString(); } if ((flags & BuildEventArgsFieldFlags.BuildEventContext) != 0) { result.BuildEventContext = ReadBuildEventContext(); } if ((flags & BuildEventArgsFieldFlags.ThreadId) != 0) { result.ThreadId = ReadInt32(); } if ((flags & BuildEventArgsFieldFlags.HelpHeyword) != 0) { result.HelpKeyword = ReadString(); } if ((flags & BuildEventArgsFieldFlags.SenderName) != 0) { result.SenderName = ReadString(); } if ((flags & BuildEventArgsFieldFlags.Timestamp) != 0) { result.Timestamp = ReadDateTime(); } if ((flags & BuildEventArgsFieldFlags.Subcategory) != 0) { result.Subcategory = ReadString(); } if ((flags & BuildEventArgsFieldFlags.Code) != 0) { result.Code = ReadString(); } if ((flags & BuildEventArgsFieldFlags.File) != 0) { result.File = ReadString(); } if ((flags & BuildEventArgsFieldFlags.ProjectFile) != 0) { result.ProjectFile = ReadString(); } if ((flags & BuildEventArgsFieldFlags.LineNumber) != 0) { result.LineNumber = ReadInt32(); } if ((flags & BuildEventArgsFieldFlags.ColumnNumber) != 0) { result.ColumnNumber = ReadInt32(); } if ((flags & BuildEventArgsFieldFlags.EndLineNumber) != 0) { result.EndLineNumber = ReadInt32(); } if ((flags & BuildEventArgsFieldFlags.EndColumnNumber) != 0) { result.EndColumnNumber = ReadInt32(); } return(result); }
private static BuildEventArgsFieldFlags GetMessageFlags(BuildMessageEventArgs e, BuildEventArgsFieldFlags flags) { if (e.Subcategory != null) { flags |= BuildEventArgsFieldFlags.Subcategory; } if (e.Code != null) { flags |= BuildEventArgsFieldFlags.Code; } if (e.File != null) { flags |= BuildEventArgsFieldFlags.File; } if (e.ProjectFile != null) { flags |= BuildEventArgsFieldFlags.ProjectFile; } if (e.LineNumber != 0) { flags |= BuildEventArgsFieldFlags.LineNumber; } if (e.ColumnNumber != 0) { flags |= BuildEventArgsFieldFlags.ColumnNumber; } if (e.EndLineNumber != 0) { flags |= BuildEventArgsFieldFlags.EndLineNumber; } if (e.EndColumnNumber != 0) { flags |= BuildEventArgsFieldFlags.EndColumnNumber; } return(flags); }
private static BuildEventArgsFieldFlags GetMessageFlags(BuildMessageEventArgs e, BuildEventArgsFieldFlags flags, bool writeImportance = false) { if (e.Subcategory != null) { flags |= BuildEventArgsFieldFlags.Subcategory; } if (e.Code != null) { flags |= BuildEventArgsFieldFlags.Code; } if (e.File != null) { flags |= BuildEventArgsFieldFlags.File; } if (e.ProjectFile != null) { flags |= BuildEventArgsFieldFlags.ProjectFile; } if (e.LineNumber != 0) { flags |= BuildEventArgsFieldFlags.LineNumber; } if (e.ColumnNumber != 0) { flags |= BuildEventArgsFieldFlags.ColumnNumber; } if (e.EndLineNumber != 0) { flags |= BuildEventArgsFieldFlags.EndLineNumber; } if (e.EndColumnNumber != 0) { flags |= BuildEventArgsFieldFlags.EndColumnNumber; } if (writeImportance && e.Importance != MessageImportance.Low) { flags |= BuildEventArgsFieldFlags.Importance; } return(flags); }
private static BuildEventArgsFieldFlags GetMessageFlags(BuildMessageEventArgs e, BuildEventArgsFieldFlags flags, bool writeMessage = true, bool writeImportance = false) { if (e.Subcategory != null) { flags |= BuildEventArgsFieldFlags.Subcategory; } if (e.Code != null) { flags |= BuildEventArgsFieldFlags.Code; } if (e.File != null) { flags |= BuildEventArgsFieldFlags.File; } if (e.ProjectFile != null) { flags |= BuildEventArgsFieldFlags.ProjectFile; } if (e.LineNumber != 0) { flags |= BuildEventArgsFieldFlags.LineNumber; } if (e.ColumnNumber != 0) { flags |= BuildEventArgsFieldFlags.ColumnNumber; } if (e.EndLineNumber != 0) { flags |= BuildEventArgsFieldFlags.EndLineNumber; } if (e.EndColumnNumber != 0) { flags |= BuildEventArgsFieldFlags.EndColumnNumber; } object[] rawArguments = (object[])typeof(LazyFormattedBuildEventArgs).GetField("arguments", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(e); if (writeMessage && rawArguments != null && rawArguments.Length > 0) { flags |= BuildEventArgsFieldFlags.Arguments; } if (writeImportance && e.Importance != MessageImportance.Low) { flags |= BuildEventArgsFieldFlags.Importance; } return(flags); }