Files
UnrealEngine/Engine/Source/Programs/UnrealCloudDDC/Jupiter/Implementation/LeaderElection/ILeaderElection.cs
2025-05-18 13:04:45 +08:00

45 lines
876 B
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using System;
namespace Jupiter.Implementation
{
public class OnLeaderChangedEventArgs
{
public bool IsLeader { get; }
public string LeaderName { get; }
public OnLeaderChangedEventArgs(bool isLeader, string leaderName)
{
IsLeader = isLeader;
LeaderName = leaderName;
}
}
public interface ILeaderElection
{
bool IsThisInstanceLeader();
event EventHandler<OnLeaderChangedEventArgs>? OnLeaderChanged;
}
public class LeaderElectionStub : ILeaderElection
{
private readonly bool _isLeader;
public LeaderElectionStub(bool isLeader)
{
_isLeader = isLeader;
OnLeaderChanged?.Invoke(this, new OnLeaderChangedEventArgs(isLeader, ""));
}
public bool IsThisInstanceLeader()
{
return _isLeader;
}
public event EventHandler<OnLeaderChangedEventArgs>? OnLeaderChanged;
}
}