aboutsummaryrefslogtreecommitdiff
path: root/src/Model/IProject.cs
blob: e7f15bb193ea744178ab66b90b5adf4e92bd15dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System.IO;
using System.Threading.Tasks;

namespace VNLib.Tools.Build.Executor.Model
{
    public interface IProject : ITaskfileScope
    {
        /// <summary>
        /// Gets the the project file
        /// </summary>
        FileInfo ProjectFile { get; }

        /// <summary>
        /// Gets the actual project name
        /// </summary>
        string ProjectName { get; }

        /// <summary>
        /// The msbuild project dom
        /// </summary>
        IProjectData ProjectData { get; }

        /// <summary>
        /// A value that indicates (after a source sync) that the project 
        /// is considered up to date.
        /// </summary>
        bool UpToDate { get; set; }

        /// <summary>
        /// Invoked when the executor requests all created artifacts load async assets
        /// and update state accordingly
        /// </summary>
        /// <param name="vars">The taskfile variable container</param>
        /// <returns>A task that completes when all assets are loaded</returns>
        Task LoadAsync(TaskfileVars vars);
    }
}