#include "trick/MonteCarlo.hh" #include "trick/tc_proto.h" Trick::MonteCarlo * the_mc ; Trick::MonteCarlo::MonteCarlo() : enabled(false), dry_run(false), localhost_as_remote(false), custom_slave_dispatch(false), timeout(120), max_tries(2), verbosity(MC_INFORMATIONAL), num_runs(0), actual_num_runs(0), num_results(0), slave_id(0), except_return(0) { the_mc = this; slaves_head = NULL; char hostname[_POSIX_HOST_NAME_MAX + 1]; gethostname(hostname, _POSIX_HOST_NAME_MAX); machine_name = hostname; memset(&listen_device, 0, sizeof(TCDevice)) ; memset(&connection_device, 0, sizeof(TCDevice)) ; listen_device.port = 0; connection_device.port = 0; listen_device.disable_handshaking = TC_COMM_TRUE; connection_device.disable_handshaking = TC_COMM_TRUE; tc_error(&listen_device, 0); tc_error(&connection_device, 0); int num_classes = 0; class_map["monte_master_init"] = num_classes; class_to_queue[num_classes++] = &master_init_queue; class_map["monte_master_pre"] = num_classes; class_to_queue[num_classes++] = &master_pre_queue; class_map["monte_master_post"] = num_classes; class_to_queue[num_classes++] = &master_post_queue; class_map["monte_master_shutdown"] = num_classes; class_to_queue[num_classes++] = &master_shutdown_queue; class_map["monte_slave_init"] = num_classes; class_to_queue[num_classes++] = &slave_init_queue; class_map["monte_slave_pre"] = num_classes; class_to_queue[num_classes++] = &slave_pre_queue; class_map["monte_slave_post"] = num_classes; class_to_queue[num_classes++] = &slave_post_queue; class_map["monte_slave_shutdown"] = num_classes; class_to_queue[num_classes++] = &slave_shutdown_queue; } Trick::MonteCarlo::~MonteCarlo() { /* tc_error allocates memory in the constructor */ free(listen_device.error_handler) ; free(connection_device.error_handler) ; listen_device.error_handler = NULL ; connection_device.error_handler = NULL ; } const char* Trick::MonteRun::exit_status_string() const { return MC_exit_status_string[exit_status]; }