// file: lat_get_9.cc
//

// system include files
//
#include <string.h>

// isip include files
//
#include "lattice.h"
#include "lattice_constants.h"

// method: get_lat_node_cc
//
// arguments:
//  Lattice_node* lnode: (input) the lattice node
//  Hash_cell*& lcell: (output) the hash cell containing this lattice node
//  
// return: a logical_1 indicating success
//
// this method gets the hash cell containing the given lattice node
//
logical_1 Lattice::get_lat_node_cc(Lattice_node* lnode_a,
				   Hash_cell*& lcell_a) {

  // if this is a null node return
  //
  if ((lnode_d == (Hash_table*)NULL) || (lnode_a == (Lattice_node*)NULL)) {
    lcell_a = (Hash_cell*)NULL;
    return ISIP_FALSE;
  }
  
  // create a key string for the node
  //
  static char_1 key_str[LATTICE_KEYSTR_LENGTH];
  strcpy((char*)key_str, "");
  sprintf((char*)key_str, "%p", lnode_a);

  // get the hash cell
  //
  lcell_a = lnode_d->hash_lookup_cc(key_str);

  // exit gracefully
  //
  return ISIP_TRUE;
}
