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