// file: $isip/class/search/StackSearch/ssrch_10.cc // version: $Id: ssrch_10.cc 8452 2002-07-25 02:41:06Z jelinek $ // // isip include files // #include "StackSearch.h" // method: pathsRemainTrace // // arguments: none // // return: logical flag indicating whether or not there are any search paths // which remain to be searched at any level // // check for remaining paths at all levels in the hierarchy // bool8 StackSearch::pathsRemainTrace() { // sum up the lengths of all trace lists // int32 traces_left = 0; int32 levels = getNumLevels(); for (int32 j = 0; j < levels; j++) { if ((traces_left += trace_lists_d(j).length()) > 0) { return true; } } // if we have reached thus far no traces remain in the hierarchy // return false; } // method: getActiveTraces // // arguments: // int32 level_num: (input) level whose number of active traces we need // // return: logical flag indicating status // // determines the number of active traces at a particular level or at all // levels // int32 StackSearch::getActiveTraces(int32 level_num_a) { // declare local variables // int32 traces_left = 0; // sum up the lengths of all trace lists // if (level_num_a == ALL_LEVELS) { int32 levels = getNumLevels(); for (int32 j = 0; j < levels; j++) { traces_left += trace_lists_d(j).length(); } } else { if ((level_num_a >= 0) && (level_num_a < getNumLevels())) { traces_left += trace_lists_d(level_num_a).length(); } } // exit gracefully: // return traces_left; }