Files
UnrealEngineUWP/Engine/Source/Programs/Horde/HordeServer/Models/Event.cs
ben marsh 53fd8641ae Horde: Move type aliases into namespace scope for simplicity. Also prevents weirdness with quick refactoring screwing up the order when adding new using declarations.
#ROBOMERGE-SOURCE: CL 17096399 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17096400 by ben marsh in ue5-release-engine-test branch]
2021-08-07 19:19:42 -04:00

86 lines
1.7 KiB
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using HordeServer.Api;
using HordeServer.Utilities;
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Threading.Tasks;
namespace HordeServer.Models
{
using StreamId = StringId<IStream>;
using TemplateRefId = StringId<TemplateRef>;
/// <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; }
}
}