1 // Copyright (c) Microsoft. All rights reserved. 2 // Licensed under the MIT license. See LICENSE file in the project root for full license information. 3 4 using System.Runtime.InteropServices; 5 6 namespace Microsoft.Build.Framework 7 { 8 /// <summary> 9 /// Type of handler for MessageRaised events 10 /// </summary> BuildMessageEventHandler(object sender, BuildMessageEventArgs e)11 public delegate void BuildMessageEventHandler(object sender, BuildMessageEventArgs e); 12 13 /// <summary> 14 /// Type of handler for ErrorRaised events 15 /// </summary> BuildErrorEventHandler(object sender, BuildErrorEventArgs e)16 public delegate void BuildErrorEventHandler(object sender, BuildErrorEventArgs e); 17 18 /// <summary> 19 /// Type of handler for WarningRaised events 20 /// </summary> BuildWarningEventHandler(object sender, BuildWarningEventArgs e)21 public delegate void BuildWarningEventHandler(object sender, BuildWarningEventArgs e); 22 23 /// <summary> 24 /// Type of handler for CustomEventRaised events 25 /// </summary> CustomBuildEventHandler(object sender, CustomBuildEventArgs e)26 public delegate void CustomBuildEventHandler(object sender, CustomBuildEventArgs e); 27 28 /// <summary> 29 /// Type of handler for BuildStartedEvent events 30 /// </summary> BuildStartedEventHandler(object sender, BuildStartedEventArgs e)31 public delegate void BuildStartedEventHandler(object sender, BuildStartedEventArgs e); 32 33 /// <summary> 34 /// Type of handler for BuildFinishedEvent events 35 /// </summary> BuildFinishedEventHandler(object sender, BuildFinishedEventArgs e)36 public delegate void BuildFinishedEventHandler(object sender, BuildFinishedEventArgs e); 37 38 /// <summary> 39 /// Type of handler for ProjectStarted events 40 /// </summary> ProjectStartedEventHandler(object sender, ProjectStartedEventArgs e)41 public delegate void ProjectStartedEventHandler(object sender, ProjectStartedEventArgs e); 42 43 /// <summary> 44 /// Type of handler for ProjectFinished events 45 /// </summary> ProjectFinishedEventHandler(object sender, ProjectFinishedEventArgs e)46 public delegate void ProjectFinishedEventHandler(object sender, ProjectFinishedEventArgs e); 47 48 /// <summary> 49 /// Type of handler for TargetStarted events 50 /// </summary> TargetStartedEventHandler(object sender, TargetStartedEventArgs e)51 public delegate void TargetStartedEventHandler(object sender, TargetStartedEventArgs e); 52 53 /// <summary> 54 /// Type of handler for TargetFinished events 55 /// </summary> TargetFinishedEventHandler(object sender, TargetFinishedEventArgs e)56 public delegate void TargetFinishedEventHandler(object sender, TargetFinishedEventArgs e); 57 58 /// <summary> 59 /// Type of handler for TaskStarted events 60 /// </summary> TaskStartedEventHandler(object sender, TaskStartedEventArgs e)61 public delegate void TaskStartedEventHandler(object sender, TaskStartedEventArgs e); 62 63 /// <summary> 64 /// Type of handler for TaskFinished events 65 /// </summary> TaskFinishedEventHandler(object sender, TaskFinishedEventArgs e)66 public delegate void TaskFinishedEventHandler(object sender, TaskFinishedEventArgs e); 67 68 /// <summary> 69 /// Type of handler for BuildStatus events 70 /// </summary> BuildStatusEventHandler(object sender, BuildStatusEventArgs e)71 public delegate void BuildStatusEventHandler(object sender, BuildStatusEventArgs e); 72 73 /// <summary> 74 /// Type of handler for AnyEventRaised events 75 /// </summary> AnyEventHandler(object sender, BuildEventArgs e)76 public delegate void AnyEventHandler(object sender, BuildEventArgs e); 77 78 /// <summary> 79 /// This interface defines the events raised by the build engine. 80 /// Loggers use this interface to subscribe to the events they 81 /// are interested in receiving. 82 /// </summary> 83 public interface IEventSource 84 { 85 /// <summary> 86 /// this event is raised to log a message 87 /// </summary> 88 event BuildMessageEventHandler MessageRaised; 89 90 /// <summary> 91 /// this event is raised to log an error 92 /// </summary> 93 event BuildErrorEventHandler ErrorRaised; 94 95 /// <summary> 96 /// this event is raised to log a warning 97 /// </summary> 98 event BuildWarningEventHandler WarningRaised; 99 100 /// <summary> 101 /// this event is raised to log the start of a build 102 /// </summary> 103 event BuildStartedEventHandler BuildStarted; 104 105 /// <summary> 106 /// this event is raised to log the end of a build 107 /// </summary> 108 event BuildFinishedEventHandler BuildFinished; 109 110 /// <summary> 111 /// this event is raised to log the start of a project build 112 /// </summary> 113 event ProjectStartedEventHandler ProjectStarted; 114 115 /// <summary> 116 /// this event is raised to log the end of a project build 117 /// </summary> 118 event ProjectFinishedEventHandler ProjectFinished; 119 120 /// <summary> 121 /// this event is raised to log the start of a target build 122 /// </summary> 123 event TargetStartedEventHandler TargetStarted; 124 125 /// <summary> 126 /// this event is raised to log the end of a target build 127 /// </summary> 128 event TargetFinishedEventHandler TargetFinished; 129 130 /// <summary> 131 /// this event is raised to log the start of task execution 132 /// </summary> 133 event TaskStartedEventHandler TaskStarted; 134 135 /// <summary> 136 /// this event is raised to log the end of task execution 137 /// </summary> 138 event TaskFinishedEventHandler TaskFinished; 139 140 /// <summary> 141 /// this event is raised to log custom events 142 /// </summary> 143 event CustomBuildEventHandler CustomEventRaised; 144 145 /// <summary> 146 /// this event is raised to log any build status event 147 /// </summary> 148 event BuildStatusEventHandler StatusEventRaised; 149 150 /// <summary> 151 /// this event is raised to log any build event. These events do not include telemetry. To receive telemetry, you must attach to the <see cref="IEventSource2.TelemetryLogged"/> event. 152 /// </summary> 153 event AnyEventHandler AnyEventRaised; 154 } 155 } 156