// file: mm_cstr_3.cc
//

// isip include files
//
#include "memory_manager.h"
#include "memory_manager_constants.h"

// method: constructor
//
// arguments:
//  const Memory_manager& manager : (input) the memory manager to copy
//
// return: none
//
// this is a copy constructor
//
Memory_manager::Memory_manager(const Memory_manager& manager_a) {

  // copy the counts
  //
  node_count_d = manager_a.node_count_d;
  trace_count_d = manager_a.trace_count_d;
  lex_count_d = manager_a.lex_count_d;
  lat_count_d = manager_a.lat_count_d;
  lpath_count_d = manager_a.lpath_count_d;
  ngram_count_d = manager_a.ngram_count_d;
  hash_count_d = manager_a.hash_count_d;
  hist_count_d = manager_a.hist_count_d;
  instance_count_d = manager_a.instance_count_d;

  // copy the total numbers generated
  //
  num_node_d = manager_a.num_node_d;
  num_trace_d = manager_a.num_trace_d;
  num_lex_d = manager_a.num_lex_d;
  num_lat_d = manager_a.num_lat_d;
  num_lpath_d = manager_a.num_lpath_d;
  num_ngram_d = manager_a.num_ngram_d;
  num_hash_d = manager_a.num_hash_d;
  num_hist_d = manager_a.num_hist_d;
  num_instance_d = manager_a.num_instance_d;

  // copy the block sizes
  //
  node_grow_size_d = manager_a.node_grow_size_d;
  trace_grow_size_d = manager_a.trace_grow_size_d;
  lex_grow_size_d = manager_a.lex_grow_size_d;
  lat_grow_size_d = manager_a.lat_grow_size_d;
  lpath_grow_size_d = manager_a.lpath_grow_size_d;
  ngram_grow_size_d = manager_a.ngram_grow_size_d;
  hash_grow_size_d = manager_a.hash_grow_size_d;
  hist_grow_size_d = manager_a.hist_grow_size_d;
  instance_grow_size_d = manager_a.instance_grow_size_d;
  
  // copy the list pointers
  //
  trace_list_d = manager_a.trace_list_d;
  node_list_d = manager_a.node_list_d;
  lex_list_d = manager_a.lex_list_d;
  lat_list_d = manager_a.lat_list_d;
  lpath_list_d = manager_a.lpath_list_d;
  ngram_list_d = manager_a.ngram_list_d;
  hash_list_d = manager_a.hash_list_d;
  hist_list_d = manager_a.hist_list_d;
  instance_list_d = manager_a.instance_list_d;

  // exit gracefully
  //
}
