Files
NebulaLauncher/Nebula.Shared/Models/ILoadingHandler.cs

48 lines
969 B
C#
Raw Permalink Normal View History

2025-01-08 18:00:06 +03:00
namespace Nebula.Shared.Models;
public interface ILoadingHandler
{
public void SetJobsCount(int count);
public int GetJobsCount();
2025-01-14 22:10:16 +03:00
2025-01-08 18:00:06 +03:00
public void SetResolvedJobsCount(int count);
public int GetResolvedJobsCount();
2025-07-10 15:22:15 +03:00
public void SetLoadingMessage(string message);
2025-01-08 18:00:06 +03:00
public void AppendJob(int count = 1)
{
SetJobsCount(GetJobsCount() + count);
}
public void AppendResolvedJob(int count = 1)
{
SetResolvedJobsCount(GetResolvedJobsCount() + count);
}
public void Clear()
{
SetResolvedJobsCount(0);
SetJobsCount(0);
}
public QueryJob GetQueryJob()
{
return new QueryJob(this);
}
}
2025-01-14 22:10:16 +03:00
public sealed class QueryJob : IDisposable
2025-01-08 18:00:06 +03:00
{
private readonly ILoadingHandler _handler;
public QueryJob(ILoadingHandler handler)
{
_handler = handler;
handler.AppendJob();
}
2025-01-14 22:10:16 +03:00
2025-01-08 18:00:06 +03:00
public void Dispose()
{
_handler.AppendResolvedJob();
}
}