using Fleet.Core; namespace Fleet.Server; /// Fleet 服务端需要的存储。产品可以自己实现(MoShiro 把它放进 moshiro.db)。 public interface IFleetStore { ValueTask FindJoinTokenAsync(ReadOnlyMemory tokenSha256, CancellationToken ct); /// 原子地把令牌使用次数加一。令牌已吊销、过期或用完时返回 false。 ValueTask TryConsumeJoinTokenAsync(string tokenId, long nowMs, CancellationToken ct); ValueTask> CreateNodeAsync(NewNode node, CancellationToken ct); ValueTask GetNodeAsync(NodeId id, CancellationToken ct); /// 按名称查找状态不是 pending 的节点(用于判断注册时的名称冲突)。 ValueTask FindEstablishedNodeByNameAsync(string name, CancellationToken ct); ValueTask UpdatePresenceAsync(NodeId id, Presence presence, CancellationToken ct); }