示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
    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));
    }
示例#4
0
        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);
            //}
        }