using linker.config;
using linker.messenger.relay.client;
using linker.messenger.relay.client.transport;
using linker.messenger.relay.server;
using linker.messenger.relay.server.caching;
using linker.messenger.relay.server.validator;
using linker.plugins.relay.client;
using linker.plugins.relay.messenger;
using linker.plugins.relay.server;
using linker.plugins.relay.server.validator;
using linker.startup;
using MemoryPack;
using Microsoft.Extensions.DependencyInjection;
namespace linker.plugins.relay
{
///
/// 中继插件
///
public sealed class RelayStartup : IStartup
{
public StartupLevel Level => StartupLevel.Normal;
public string Name => "relay";
public bool Required => false;
public string[] Dependent => new string[] { "messenger", "signin", "serialize", "config" };
public StartupLoadType LoadType => StartupLoadType.Normal;
public void AddClient(ServiceCollection serviceCollection, FileConfig config)
{
serviceCollection.AddSingleton();
serviceCollection.AddSingleton();
serviceCollection.AddSingleton();
MemoryPackFormatterProvider.Register(new RelayTestInfoFormatter());
MemoryPackFormatterProvider.Register(new RelayInfoFormatter());
MemoryPackFormatterProvider.Register(new RelayServerNodeReportInfoFormatter());
MemoryPackFormatterProvider.Register(new RelayAskResultInfoFormatter());
MemoryPackFormatterProvider.Register(new RelayCacheInfoFormatter());
MemoryPackFormatterProvider.Register(new RelayMessageInfoFormatter());
serviceCollection.AddSingleton();
serviceCollection.AddSingleton();
serviceCollection.AddSingleton();
serviceCollection.AddSingleton();
serviceCollection.AddSingleton();
}
public void AddServer(ServiceCollection serviceCollection, FileConfig config)
{
serviceCollection.AddSingleton();
serviceCollection.AddSingleton();
serviceCollection.AddSingleton();
serviceCollection.AddSingleton();
serviceCollection.AddSingleton();
serviceCollection.AddSingleton();
serviceCollection.AddSingleton();
serviceCollection.AddSingleton();
serviceCollection.AddSingleton();
MemoryPackFormatterProvider.Register(new RelayTestInfoFormatter());
MemoryPackFormatterProvider.Register(new RelayInfoFormatter());
MemoryPackFormatterProvider.Register(new RelayServerNodeReportInfoFormatter());
MemoryPackFormatterProvider.Register(new RelayAskResultInfoFormatter());
MemoryPackFormatterProvider.Register(new RelayCacheInfoFormatter());
MemoryPackFormatterProvider.Register(new RelayMessageInfoFormatter());
serviceCollection.AddSingleton();
serviceCollection.AddSingleton();
serviceCollection.AddSingleton();
}
public void UseClient(ServiceProvider serviceProvider, FileConfig config)
{
RelayClientTransfer relayTransfer = serviceProvider.GetService();
RelayClientTypesLoader relayTypesLoader = serviceProvider.GetService();
}
public void UseServer(ServiceProvider serviceProvider, FileConfig config)
{
RelayServerValidatorTypeLoader relayValidatorTypeLoader = serviceProvider.GetService();
IRelayServerCaching relayCaching = serviceProvider.GetService();
PlusRelayServerReportResolver relayReportResolver = serviceProvider.GetService();
RelayServerMasterTransfer relayServerMasterTransfer = serviceProvider.GetService();
RelayServerNodeTransfer relayServerNodeTransfer = serviceProvider.GetService();
}
}
}