Files
ScadaBridge/src/ZB.MOM.WW.ScadaBridge.Commons/Interfaces/Services/IConfigurationCommandTransaction.cs
T
2026-09-09 16:13:58 -04:00

23 lines
959 B
C#

namespace ZB.MOM.WW.ScadaBridge.Commons.Interfaces.Services;
/// <summary>Executes one database-only configuration command and its audit rows atomically.</summary>
public interface IConfigurationCommandTransaction
{
/// <summary>Each database retry supplies a fresh scope; the operation must not perform external side effects.</summary>
Task<object?> ExecuteAsync(Func<IServiceProvider, Task<object?>> operation);
}
/// <summary>Defers local cache/channel maintenance until a configuration commit succeeds.</summary>
public interface IConfigurationCommitActions
{
/// <summary>Queues an idempotent local maintenance action.</summary>
void Add(Func<Task> action);
}
/// <summary>Evicts a circuit's tracked read entities after a separately scoped configuration command.</summary>
public interface IConfigurationReadSession
{
/// <summary>Clears stale tracked read state; form drafts must be held separately.</summary>
void Reset();
}