Пример #1
0
 // This method is called to inform about the prover outcome for the previous GetNextBlock call.
 override public bool SetCurrentResult(List <Variable> reachvar, ProverInterface.Outcome outcome, DoomErrorHandler cb)
 {
     this.__DEBUG_BlocksChecked++;
     // outcome==Valid means that there is no feasible execution for the current block/path (i.e., might be doomed)
     if (outcome == ProverInterface.Outcome.Valid && m_Current <= m_Blocks.Count)
     {
         List <Block> lb = new List <Block>();
         lb.Add(m_Blocks[m_Current - 1]);
         DetectedBlock.Add(lb);
     }
     return(true);
 }
Пример #2
0
 override public bool GetNextBlock(out List <Block> lb)
 {
     sw.Start();
     if (m_Current < m_Blocks.Count)
     {
         lb = new List <Block>();
         lb.Add(m_Blocks[m_Current]);
         m_Current++;
         return(true);
     }
     else
     {
         DetectedBlock.Add(m_BlockH.GetOtherDoomedBlocks(m_doomedBlocks));
     }
     lb = null;
     return(false);
 }
Пример #3
0
 override public bool GetNextBlock(out List <Block> lb)
 {
     m_Current = null;
     if (m_Blocks.Count > 0)
     {
         m_Current = m_Blocks[0];
         m_Blocks.Remove(m_Current);
         lb = new List <Block>();
         lb.Add(m_Current);
         return(true);
     }
     else
     {
         DetectedBlock.Add(m_BlockH.GetOtherDoomedBlocks(m_doomedBlocks));
     }
     lb = null;
     return(false);
 }
Пример #4
0
        override public bool GetNextBlock(out List <Block> lb)
        {
            sw.Start();

            lb = new List <Block>();

            if (m_Uncheckedlocks.Count == 0 || m_NoMoreMoves)
            {
                if (m_Uncheckedlocks.Count > 0)
                {
                    DetectedBlock.Add(m_BlockH.GetOtherDoomedBlocks(m_Uncheckedlocks));
                }

                return(false);
            }

            lb.AddRange(m_Uncheckedlocks);

            return(true);
        }