using DodoSSH.Api.Features.Relay;
namespace DodoSSH.Api.Features.Events;
///
/// Announces a change to everything on this node that acts on one: the event sockets, and the relay.
///
///
/// What the write paths are given as their . They announce a change once and
/// do not know who listens, which is the point: the relay learning about removals from teams did not have to
/// touch any of the places a removal happens.
///
internal sealed class VaultEventFanOut(VaultEventHub hub, RelayAccessWatch relay) : IVaultEventPublisher
{
///
public void VaultChanged(Guid vaultId, long sequence) => hub.VaultChanged(vaultId, sequence);
///
public void VaultAccessChanged(Guid userId)
{
hub.VaultAccessChanged(userId);
_ = relay.AccessChangedAsync(userId);
}
}