public void GetEntitiesFromDeep(DeepMemoryQuery <T> query, int currentKeyPosition = 0)
        {
            DeepMemory <T> memory;

            if (currentKeyPosition < query.Links.Count)
            {
                LogicGroup lr = query.Links.GetRecord(currentKeyPosition);
                foreach (uint key in lr.List)
                {
                    if (this.Mems.TryGetValue(key, out memory))
                    {
                        memory.GetEntitiesFromDeep(query, currentKeyPosition + 1);
                    }
                }
                return;
            }
            lock (this.locker)
            {
                if (this.ObjsInDeep != null)
                {
                    query.Result.AddRange(this.ObjsInDeep);
                }
            }
        }
示例#2
0
 public void Remove(LogicGroup record)
 {
     this._records.RemoveAll(s => (s.ToString() == record.ToString())); this.optimize();
 }
示例#3
0
 public void Add(LogicGroup record)
 {
     this._records.Add(record); this.optimize();
 }