// file: tr_mm_delete_3.cc
//
 
// isip include files
//
#include "train_memory_manager.h"
#include "train_memory_manager_constants.h"

#include "train_lattice_node.h"

// method: delete_cc
//
// arguments:
//  Train_Lattice_node* ltn : (input) the node to be put back in the list
//
// return: a logical_1 indicating success
//
// this method takes the input lattice node and puts it in the free
// lattice nodes list
//
logical_1 Train_Memory_manager::delete_cc(Train_Lattice_node* ltn_a) {

  // get a link node to hold this lattice node
  //
  Train_Link_node* node = new_node_cc();
  
  // put the lattice node in this
  //
  node->set_item_cc((void_p)ltn_a);
  
  // insert the incoming node in the node list
  //
  if (lat_count_d == (int_4)0) {
    lat_list_d = node;
  }
  else {
    lat_list_d->insert_cc(node);
  }
  
  // increment free lattice node count
  //
  lat_count_d++;

  // exit gracefully
  //
  return ISIP_TRUE;
}
