using GFramework.Core.Abstractions.ioc;
namespace GFramework.Core.Abstractions.architecture;
///
/// 服务模块管理器接口,用于管理架构中的服务模块。
///
public interface IServiceModuleManager
{
///
/// 注册一个服务模块。
///
/// 要注册的服务模块实例。
void RegisterModule(IServiceModule module);
///
/// 注册内置的服务模块。
///
/// IoC容器实例,用于解析依赖。
void RegisterBuiltInModules(IIocContainer container);
///
/// 获取所有已注册的服务模块。
///
/// 只读的服务模块列表。
IReadOnlyList GetModules();
///
/// 异步初始化所有已注册的服务模块。
///
/// 是否以异步模式初始化模块。
/// 表示异步操作的任务。
Task InitializeAllAsync(bool asyncMode);
///
/// 异步销毁所有已注册的服务模块。
///
/// 表示异步操作的值任务。
ValueTask DestroyAllAsync();
}