Esempio n. 1
0
        /// <summary> Clear will Clear the lists
        /// </summary>
        public override void clear(IWorkingMemory mem)
        {
            IGenericMap <Object, Object> leftmem  = mem.getBetaLeftMemory(this);
            IGenericMap <Object, Object> rightmem = (IGenericMap <Object, Object>)mem.getBetaRightMemory(this);

            // first we iterate over the list for each fact
            // and Clear it.
            foreach (object item in leftmem.Keys)
            {
                ((IBetaMemory)leftmem.Get(item)).clear();
            }

            /*
             * IEnumerator itr = leftmem.Keys.GetEnumerator();
             * // first we iterate over the list for each fact
             * // and Clear it.
             * while (itr.MoveNext())
             * {
             *  IBetaMemory bmem = (IBetaMemory) leftmem.Get(itr.Current);
             *  bmem.clear();
             * }
             */

            // now that we've cleared the list for each fact, we
            // can Clear the Creshendo.rete.util.Map.
            leftmem.Clear();
            rightmem.Clear();
        }
Esempio n. 2
0
        public virtual void clear()
        {
            IEnumerator amitr = alphaMemories.Values.GetEnumerator();

            while (amitr.MoveNext())
            {
                IAlphaMemory am = (IAlphaMemory)amitr.Current;
                am.clear();
            }
            alphaMemories.Clear();
            // aggressivley Clear the memories
            IEnumerator blitr = betaLeftMemories.Values.GetEnumerator();

            while (blitr.MoveNext())
            {
                Object bval = blitr.Current;
                if (bval is IGenericMap <Object, Object> )
                {
                    IGenericMap <Object, Object> lmem = (IGenericMap <Object, Object>)bval;
                    // now iterate over the betamemories
                    IEnumerator bmitr = lmem.Keys.GetEnumerator();
                    while (bmitr.MoveNext())
                    {
                        Index indx = (Index)bmitr.Current;
                        indx.clear();
                    }
                    lmem.Clear();
                }
            }
            betaLeftMemories.Clear();
            IEnumerator britr = betaRightMemories.Values.GetEnumerator();

            while (britr.MoveNext())
            {
                Object val = britr.Current;
                if (val is HashedAlphaMemoryImpl)
                {
                    ((HashedAlphaMemoryImpl)val).clear();
                }
                else if (val is TemporalHashedAlphaMem)
                {
                    ((TemporalHashedAlphaMem)val).clear();
                }
                else
                {
                    IGenericMap <IFact, IFact> mem = (IGenericMap <IFact, IFact>)val;
                    mem.Clear();
                }
            }
            betaRightMemories.Clear();
            terminalMemories.Clear();
            root.clear();
            focusStack.Clear();
            //contexts.Clear();
            agenda.clear();
            main.clear();
            currentModule.clear();
            addModule(main);
        }
Esempio n. 3
0
        /// <summary>
        /// The terminal nodes doesn't have a memory, so the method
        /// does nothing.
        /// </summary>
        /// <param name="mem"></param>
        public override void clear(IWorkingMemory mem)
        {
            IGenericMap <Object, Object> tmem = (IGenericMap <Object, Object>)mem.getTerminalMemory(this);

            if (tmem != null)
            {
                tmem.Clear();
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Subclasses need to implement Clear and make sure all
        /// memories are cleared properly.
        /// </summary>
        /// <param name="mem">The mem.</param>
        public virtual void clear(IWorkingMemory mem)
        {
            IGenericMap <Object, Object> leftmem = (IGenericMap <Object, Object>)mem.getBetaLeftMemory(this);

            leftmem.Clear();
            HashedAlphaMemoryImpl rightmem = (HashedAlphaMemoryImpl)mem.getBetaRightMemory(this);

            rightmem.clear();
        }
        /// <summary> Clear the memory.
        /// </summary>
        public virtual void clear()
        {
            IEnumerator itr = memory.Values.GetEnumerator();

            while (itr.MoveNext())
            {
                ((IGenericMap <Object, Object>)itr.Current).Clear();
            }
            memory.Clear();
        }
Esempio n. 6
0
        /// <summary> Clear will Clear all the modules and Remove all activations
        /// </summary>
        public virtual void clear()
        {
            IEnumerator itr = modules.Keys.GetEnumerator();

            while (itr.MoveNext())
            {
                Object  key = itr.Current;
                IModule mod = (IModule)modules.Get(key);
                mod.clear();
            }
            modules.Clear();
        }
Esempio n. 7
0
 public virtual void clear()
 {
     lock (this)
     {
         IEnumerator itr = inputNodes.Values.GetEnumerator();
         while (itr.MoveNext())
         {
             ObjectTypeNode otn = (ObjectTypeNode)itr.Current;
             otn.clearSuccessors();
         }
         inputNodes.Clear();
     }
 }
Esempio n. 8
0
        /// <summary> When Clear is called, the module needs to Clear all the internal lists
        /// for rules and activations. The handle to Rete should not be nulled.
        /// </summary>
        public virtual void clear()
        {
            activations.clear();
            IEnumerator itr = rules.Values.GetEnumerator();

            while (itr.MoveNext())
            {
                Defrule rl = (Defrule)itr.Current;
                rl.clear();
            }
            rules.Clear();
            deftemplates.Clear();
        }
Esempio n. 9
0
        /// <summary> Clear the memory.
        /// </summary>
        public virtual void clear()
        {
            foreach (IGenericMap <Object, Object> val in memory.Values)
            {
                val.Clear();
            }
            memory.Clear();

            //IEnumerator itr = memory.Values.GetEnumerator();
            //while (itr.MoveNext())
            //{
            //    ((Map)itr.Current()).Clear();
            //}
            //memory.Clear();
        }
Esempio n. 10
0
        /// <summary> Clear will Clear the lists
        /// </summary>
        public override void clear(IWorkingMemory mem)
        {
            IGenericMap <Object, Object> leftmem  = (IGenericMap <Object, Object>)mem.getBetaLeftMemory(this);
            HashedNeqAlphaMemory         rightmem = (HashedNeqAlphaMemory)mem.getBetaRightMemory(this);
            IEnumerator itr = leftmem.Keys.GetEnumerator();

            // first we iterate over the list for each fact
            // and Clear it.
            while (itr.MoveNext())
            {
                IBetaMemory bmem = (IBetaMemory)leftmem.Get(itr.Current);
                bmem.clear();
            }
            // now that we've cleared the list for each fact, we
            // can Clear the Creshendo.rete.util.Map.
            leftmem.Clear();
            rightmem.clear();
        }
Esempio n. 11
0
        /// <summary> Clear the memory.
        /// </summary>
        public override void clear()
        {
            IEnumerator itr = memory.Keys.GetEnumerator();

            while (itr.MoveNext())
            {
                object key = itr.Current;
                IGenericMap <Object, Object> matches = (IGenericMap <Object, Object>)memory.Get(key);
                IEnumerator itr2 = matches.Keys.GetEnumerator();
                while (itr2.MoveNext())
                {
                    Object subkey = itr2.Current;
                    IGenericMap <Object, Object> submatch = (IGenericMap <Object, Object>)matches.Get(subkey);
                    submatch.Clear();
                }
                matches.Clear();
            }
            memory.Clear();
        }
Esempio n. 12
0
        /// <summary> method to Clear the successors. method doesn't iterate over
        /// the succesors and Clear them individually.
        /// </summary>
        public virtual void clearSuccessors()
        {
            IEnumerator itr = successor2.GetEnumerator();

            while (itr.MoveNext())
            {
                BaseNode n = (BaseNode)itr.Current;
                n.removeAllSuccessors();
            }
            itr = entries.Values.GetEnumerator();
            while (itr.MoveNext())
            {
                BaseNode n = (BaseNode)itr.Current;
                n.removeAllSuccessors();
            }
            for (int idx = 0; idx < successorNodes.Length; idx++)
            {
                successorNodes[idx].removeAllSuccessors();
            }
            successor2.Clear();
            successorNodes = new BaseNode[0];
            entries.Clear();
        }
Esempio n. 13
0
 /// <summary> Clear the memory.
 /// </summary>
 public virtual void clear()
 {
     memory.Clear();
 }
Esempio n. 14
0
 /// <summary> Clear will Clear the memory
 /// </summary>
 public virtual void clear()
 {
     matches.Clear();
     index = null;
 }