tgstation-server
The /tg/station 13 server suite
ChatFactory.cs
Go to the documentation of this file.
1 using Microsoft.Extensions.Logging;
2 using System;
3 using System.Collections.Generic;
6 using Tgstation.Server.Host.IO;
7 
8 namespace Tgstation.Server.Host.Components.Chat
9 {
11  sealed class ChatFactory : IChatFactory
12  {
16  readonly ILoggerFactory loggerFactory;
17 
22 
27 
32 
40  public ChatFactory(IProviderFactory providerFactory, IServerControl serverControl, IAsyncDelayer asyncDelayer, ILoggerFactory loggerFactory)
41  {
42  this.providerFactory = providerFactory ?? throw new ArgumentNullException(nameof(providerFactory));
43  this.serverControl = serverControl ?? throw new ArgumentNullException(nameof(serverControl));
44  this.asyncDelayer = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
45  this.loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
46  }
47 
49  public IChat CreateChat(IIOManager ioManager, ICommandFactory commandFactory, IEnumerable<Models.ChatBot> initialChatBots) => new Chat(providerFactory, ioManager, commandFactory, serverControl, asyncDelayer, loggerFactory, loggerFactory.CreateLogger<Chat>(), initialChatBots);
50  }
51 }
ChatFactory(IProviderFactory providerFactory, IServerControl serverControl, IAsyncDelayer asyncDelayer, ILoggerFactory loggerFactory)
Construct a ChatFactory
Definition: ChatFactory.cs:40
For managing connected chat services
Definition: IChat.cs:13
readonly IServerControl serverControl
The IServerControl for the ChatFactory
Definition: ChatFactory.cs:26
readonly IAsyncDelayer asyncDelayer
The IAsyncDelayer for the ChatFactory
Definition: ChatFactory.cs:31
readonly ILoggerFactory loggerFactory
The ILoggerFactory for the ChatFactory
Definition: ChatFactory.cs:16
Interface for using filesystems
Definition: IIOManager.cs:11
readonly IProviderFactory providerFactory
The IProviderFactory for the ChatFactory
Definition: ChatFactory.cs:21
Represents a service that may take an updated Host assembly and run it, stopping the current assembly...