wabbajack/Wabbajack.Common.CSP/Handler.cs

35 lines
909 B
C#
Raw Normal View History

2019-11-09 06:37:05 +00:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading.Tasks.Sources;
2019-11-09 06:37:05 +00:00
namespace Wabbajack.Common.CSP
{
public interface Handler<T>
{
/// <summary>
/// Returns true if this handler has a callback, must work without a lock
/// </summary>
bool IsActive { get; }
/// <summary>
/// Returns true if this handler may be blocked, otherwise it must not block
/// </summary>
bool IsBlockable { get; }
/// <summary>
/// A unique id for lock aquisition order, 0 if no lock
/// </summary>
uint LockId { get; }
/// <summary>
/// Commit to fulfilling its end of the transfer, returns cb, must be called within a lock
/// </summary>
/// <returns>A callback</returns>
T Commit();
}
2019-11-09 06:37:05 +00:00
}