// file: $isip/class/search/StackSearch/ssrch_01.cc
// version: $Id: ssrch_01.cc 9742 2004-08-20 20:43:15Z may $
//

// isip include files
//
#include "StackSearch.h"

#ifndef ISIP_CONSOLE
#include <Console.h>p
#endif

// method: debug
//
// arguments:
//  const unichar* msg: (input) message to print
//
// return: logical error status
//
// this is the debug method
//
boolean StackSearch::debug(const unichar* msg_a) const {
  
  // dump the data
  //
  String output;
  String value;

  // write the front end
  //
  //  value.assign(front_end_d);
  //  output.debugStr(name(), msg_a, L"front_end_d", value);  
  //  Console::put(output);

  // display the evaluation mode name
  //
  output.debugStr(name(), msg_a, L"evaluation_mode_d",
		  EVALUATION_MODE_MAP.getName((long)evaluation_mode_d));
  Console::put(output);

  // write the frame information
  //
  num_frames_d.debug(L"num_frames_d");
  n_best_d.debug(L"n_best_d");
  current_frame_d.debug(L"current_frame_d");
  
  // write the search levels
  //
  long num_levels = getNumLevels();
  String param;
  
  for (long i = 0; i < num_levels; i++) {
    param.assign(L"search_levels[");
    value.assign(i);
    param.concat(value);
    param.concat(L"]");
    output.assign(msg_a);
    output.concat(L": ");
    output.concat(param);
    (*h_digraph_d)(i).debug(output);
  }
  
  // exit gracefully
  //
  return true;
}
