=============================== =============================== */
| 450 | =============================== |
| 451 | */ |
| 452 | void destroy_soar_agent(agent* delete_agent) |
| 453 | { |
| 454 | //print(delete_agent, "\nDestroying agent %s.\n", delete_agent->name); /* AGR 532 */ |
| 455 | |
| 456 | ///////////////////////////////////////////////////////// |
| 457 | // Soar Modules - could potentially rely on hash tables |
| 458 | ///////////////////////////////////////////////////////// |
| 459 | |
| 460 | // cleanup exploration |
| 461 | for (int i = 0; i < EXPLORATION_PARAMS; i++) |
| 462 | { |
| 463 | delete delete_agent->exploration_params[ i ]; |
| 464 | } |
| 465 | |
| 466 | // cleanup Soar-RL |
| 467 | delete_agent->rl_params->apoptosis->set_value(rl_param_container::apoptosis_none); |
| 468 | delete delete_agent->rl_prods; |
| 469 | delete delete_agent->rl_params; |
| 470 | delete delete_agent->rl_stats; |
| 471 | delete_agent->rl_params = NULL; // apoptosis needs to know this for excise_all_productions below |
| 472 | |
| 473 | // cleanup select |
| 474 | select_init(delete_agent); |
| 475 | delete delete_agent->select; |
| 476 | |
| 477 | // cleanup predict |
| 478 | delete delete_agent->prediction; |
| 479 | |
| 480 | // cleanup wma |
| 481 | delete_agent->wma_params->activation->set_value(off); |
| 482 | delete delete_agent->wma_forget_pq; |
| 483 | delete delete_agent->wma_touched_elements; |
| 484 | delete delete_agent->wma_touched_sets; |
| 485 | delete delete_agent->wma_params; |
| 486 | delete delete_agent->wma_stats; |
| 487 | delete delete_agent->wma_timers; |
| 488 | |
| 489 | // cleanup epmem |
| 490 | epmem_close(delete_agent); |
| 491 | delete delete_agent->epmem_params; |
| 492 | delete delete_agent->epmem_stats; |
| 493 | delete delete_agent->epmem_timers; |
| 494 | |
| 495 | delete delete_agent->epmem_node_removals; |
| 496 | delete delete_agent->epmem_node_mins; |
| 497 | delete delete_agent->epmem_node_maxes; |
| 498 | delete delete_agent->epmem_edge_removals; |
| 499 | delete delete_agent->epmem_edge_mins; |
| 500 | delete delete_agent->epmem_edge_maxes; |
| 501 | delete delete_agent->epmem_id_repository; |
| 502 | delete delete_agent->epmem_id_replacement; |
| 503 | delete delete_agent->epmem_id_ref_counts; |
| 504 | delete delete_agent->epmem_id_removes; |
| 505 | |
| 506 | delete delete_agent->epmem_wme_adds; |
| 507 | delete delete_agent->epmem_promotions; |
| 508 | |
| 509 | delete delete_agent->epmem_db; |
no test coverage detected