private static TypedMessageQueue <T> GetMessageQueue <T>() where T : struct, IEntityMessage { var type = typeof(T); if (!_msgLists.TryGetValue(type, out var queue)) { queue = new TypedMessageQueue <T>(); _msgLists.Add(type, queue); } return((TypedMessageQueue <T>)queue); }
private static TypedMessageQueue GetMessageQueueGeneric <T>() { var type = typeof(T); if (!_msgLists.TryGetValue(type, out var queue)) { if (type.InheritsFrom(typeof(IEntityMessage)) && type.IsValueType) { queue = new TypedMessageQueue <T>(); _msgLists.Add(type, queue); } } return(queue); }
public void Enqueue <T>(T message) where T : struct, IMessage { TypedMessageQueue <T> queue; if (!m_queues.ContainsKey(typeof(T))) { queue = new TypedMessageQueue <T>(); m_queues[typeof(T)] = queue; } else { queue = (TypedMessageQueue <T>)m_queues[typeof(T)]; } queue.Enqueue(message); m_queueSelectorQueue.Enqueue(typeof(T)); }
public static void Enqueue <T>(T message) where T : struct, IEntityMessage { TypedMessageQueue <T> queue; if (!_msgLists.ContainsKey(typeof(T))) { queue = new TypedMessageQueue <T>(); _msgLists[typeof(T)] = queue; } else { queue = (TypedMessageQueue <T>)_msgLists[typeof(T)]; } queue.Enqueue(message); var type = typeof(T); if (!TypeList.Contains(type)) { TypeList.Add(type); } //if (!_msgTypesAwaitingProcess.Contains(type)) { // _msgTypesAwaitingProcess.Enqueue(type); //} }