33 lines
930 B
C#
33 lines
930 B
C#
|
using System;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Linq;
|
||
|
|
||
|
namespace Encompass
|
||
|
{
|
||
|
internal class MessageManager
|
||
|
{
|
||
|
private Dictionary<Type, List<IMessage>> messageTypeToMessages = new Dictionary<Type, List<IMessage>>();
|
||
|
|
||
|
internal void AddMessage<TMessage>(TMessage message) where TMessage : struct, IMessage
|
||
|
{
|
||
|
if (!messageTypeToMessages.ContainsKey(typeof(TMessage)))
|
||
|
{
|
||
|
messageTypeToMessages.Add(typeof(TMessage), new List<IMessage>());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
internal void ClearMessages()
|
||
|
{
|
||
|
foreach (var entry in messageTypeToMessages)
|
||
|
{
|
||
|
entry.Value.Clear();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
internal IEnumerable<TMessage> GetMessagesByType<TMessage>() where TMessage : struct, IMessage
|
||
|
{
|
||
|
return messageTypeToMessages[typeof(TMessage)].Cast<TMessage>();
|
||
|
}
|
||
|
}
|
||
|
}
|