using FSO.Server.Database.DA.Hosts; using FSO.Server.Framework.Gluon; using FSO.Server.Protocol.Gluon.Packets; using System; using System.Collections.Generic; using System.Threading.Tasks; namespace FSO.Server.Domain { public interface IGluonHostPool { string PoolHash { get; } IGluonHost Get(string callSign); IGluonHost GetByShardId(int shard_id); IEnumerable GetByRole(DbHostRole role); IEnumerable GetAll(); void Start(); void Stop(); } public interface IGluonHost : IGluonSession { DbHostRole Role { get; } bool Connected { get; } DateTime BootTime { get; } Task Call(IN input) where IN : IGluonCall; } }