Files
UnrealEngineUWP/Engine/Source/Programs/Horde/HordeServer/Models/Event.cs
Ben Marsh 5abbc95b6e Add missing copyright notices.
[CL 16160939 by Ben Marsh in ue5-main branch]
2021-04-29 15:35:57 -04:00

85 lines
1.8 KiB
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using HordeServer.Api;
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Threading.Tasks;
using StreamId = HordeServer.Utilities.StringId<HordeServer.Models.IStream>;
using TemplateRefId = HordeServer.Utilities.StringId<HordeServer.Models.TemplateRef>;
namespace HordeServer.Models
{
/// <summary>
/// Base interface for events that users can subscribe for notifications to
/// </summary>
public interface IEvent
{
/// <summary>
/// Converts this event into an API event record
/// </summary>
/// <returns>The API event record</returns>
public EventRecord ToRecord();
}
/// <summary>
/// Event that occurs when a job completes
/// </summary>
public interface IJobCompleteEvent : IEvent
{
/// <summary>
/// The stream id
/// </summary>
StreamId StreamId { get; }
/// <summary>
/// The template id
/// </summary>
TemplateRefId TemplateId { get; }
}
/// <summary>
/// Event that occurs when a label completes
/// </summary>
public interface ILabelCompleteEvent : IEvent
{
/// <summary>
/// The stream id
/// </summary>
StreamId StreamId { get; }
/// <summary>
/// The template id
/// </summary>
TemplateRefId TemplateId { get; }
/// <summary>
/// Name of the label to monitor
/// </summary>
string LabelName { get; }
}
/// <summary>
/// Event that occurs when a job step completes
/// </summary>
public interface IStepCompleteEvent : IEvent
{
/// <summary>
/// The stream id
/// </summary>
StreamId StreamId { get; }
/// <summary>
/// The template id
/// </summary>
TemplateRefId TemplateId { get; }
/// <summary>
/// Name of the step to monitor
/// </summary>
string StepName { get; }
}
}