trick/trick_source/sim_services/MonteCarlo/MonteCarlo_c_intf.cpp
Scott Fennell 6691b14e9e
1093 c str (#1119)
* update checkpoint_map.hh #1093

* #1093 update checkpoint_pair.hh

* #1093 update checkpoint_queue.hh

* #1093 update MM_write_checkpoint.cc

* #1093 update units_attach.i

* #1093 update checkpoint_sequence_stl.hh

* #1093 update checkpoint_stack.hh

* #1093 update swig_extend_str.i

* #1093 update swig_int_templates.hh

* #1093 update checkpoint_stack.hh and swig_int_typemap.i

* #1093 fix c_str issue without adding memory leaks

* #1093 fix c_str issue without adding memory leaks

* #1093 remove dangling pointers in injector sim object (without causing memory leaks)

* #1093 remove dangling pointers in injector sim object (without causing memory leaks)

* #1093 remove dangling pointers in Event Manaager sim object (without causing memory leaks)

* #1093 fix MonteCarlo_c_intf dangling pointers

Co-authored-by: Fennell, Scott P 263712616 <scott.p.fennell@nasa.gov>

closes #1093
2021-03-12 13:23:35 -06:00

266 lines
6.1 KiB
C++

#include "trick/MonteCarlo.hh"
#include "trick/CommandLineArguments.hh"
#include "trick/tc_proto.h"
extern Trick::MonteCarlo *the_mc;
extern Trick::CommandLineArguments *the_cmd_args;
extern "C" void mc_set_enabled(int enabled) {
if ( the_mc != NULL ) {
the_mc->set_enabled(enabled);
}
}
extern "C" int mc_get_enabled(void) {
if ( the_mc != NULL ) {
return the_mc->get_enabled();
}
return 0 ;
}
extern "C" void mc_set_dry_run(int dry_run) {
if ( the_mc != NULL ) {
the_mc->set_dry_run(dry_run);
}
}
extern "C" int mc_get_dry_run(void) {
if ( the_mc != NULL ) {
return the_mc->get_dry_run();
}
return 0 ;
}
extern "C" int mc_is_slave(void) {
if ( the_mc != NULL ) {
return the_mc->is_slave();
}
return 0 ;
}
extern "C" void mc_set_localhost_as_remote(int localhost_as_remote) {
if ( the_mc != NULL ) {
the_mc->set_localhost_as_remote(localhost_as_remote);
}
}
extern "C" int mc_get_localhost_as_remote(void) {
if ( the_mc != NULL ) {
return the_mc->get_localhost_as_remote();
}
return 0 ;
}
extern "C" void mc_set_custom_slave_dispatch(int custom_slave_dispatch) {
if ( the_mc != NULL ) {
the_mc->set_custom_slave_dispatch(custom_slave_dispatch);
}
}
extern "C" int mc_get_custom_slave_dispatch(void) {
if ( the_mc != NULL ) {
return the_mc->get_custom_slave_dispatch();
}
return 0 ;
}
extern "C" void mc_set_timeout(double timeout) {
if ( the_mc != NULL ) {
the_mc->set_timeout(timeout);
}
}
extern "C" double mc_get_timeout(void) {
if ( the_mc != NULL ) {
return the_mc->get_timeout();
}
return 0.0 ;
}
extern "C" void mc_set_max_tries(unsigned int max_tries) {
if ( the_mc != NULL ) {
the_mc->set_max_tries(max_tries);
}
}
extern "C" unsigned int mc_get_max_tries(void) {
if ( the_mc != NULL ) {
return the_mc->get_max_tries();
}
return 0 ;
}
extern "C" void mc_set_user_cmd_string(const char *user_cmd_string) {
if ( the_mc != NULL ) {
the_mc->set_user_cmd_string(std::string(user_cmd_string ? user_cmd_string : ""));
}
}
extern "C" const char *mc_get_user_cmd_string(void) {
if ( the_mc != NULL ) {
return the_mc->get_user_cmd_string_c_str();
}
return NULL ;
}
extern "C" void mc_set_slave_sim_options(const char *slave_sim_options) {
if ( the_mc != NULL ) {
the_mc->slave_sim_options = std::string(slave_sim_options ? slave_sim_options : "");
}
}
extern "C" void mc_set_slave_output_directory(const char *slave_output_directory) {
if ( the_mc != NULL ) {
the_mc->slave_output_directory = std::string(slave_output_directory ? slave_output_directory : "");
}
}
extern "C" const char *mc_get_slave_sim_options(void) {
if ( the_mc != NULL ) {
return the_mc->slave_sim_options.c_str();
}
return NULL ;
}
extern "C" void mc_set_custom_pre_text(const char *custom_pre_text) {
if ( the_mc != NULL ) {
the_mc->set_custom_pre_text(std::string(custom_pre_text ? custom_pre_text : ""));
}
}
extern "C" const char *mc_get_custom_pre_text(void) {
if ( the_mc != NULL ) {
return the_mc->get_custom_pre_text_c_str();
}
return NULL ;
}
extern "C" void mc_set_custom_post_text(const char *custom_post_text) {
if ( the_mc != NULL ) {
the_mc->set_custom_post_text(std::string(custom_post_text ? custom_post_text : ""));
}
}
extern "C" const char *mc_get_custom_post_text(void) {
if ( the_mc != NULL ) {
return the_mc->get_custom_post_text_c_str();
}
return NULL ;
}
extern "C" void mc_set_verbosity(int verbosity) {
if ( the_mc != NULL ) {
the_mc->set_verbosity((Trick::MonteCarlo::Verbosity)verbosity);
}
}
extern "C" int mc_get_verbosity(void) {
if ( the_mc != NULL ) {
return the_mc->get_verbosity();
}
return 0 ;
}
extern "C" void mc_set_num_runs(unsigned int num_runs) {
if ( the_mc != NULL ) {
the_mc->set_num_runs(num_runs);
}
}
extern "C" unsigned int mc_get_num_runs(void) {
if ( the_mc != NULL ) {
return the_mc->get_num_runs();
}
return 0 ;
}
extern "C" unsigned int mc_get_num_results(void) {
if ( the_mc != NULL ) {
return the_mc->get_num_results();
}
return 0 ;
}
extern "C" unsigned int mc_get_slave_id(void) {
if ( the_mc != NULL ) {
return the_mc->get_slave_id();
}
return 0 ;
}
extern "C" void mc_add_range(unsigned int start, unsigned int end) {
if ( the_mc != NULL ) {
the_mc->add_range(start, end);
}
}
extern "C" void mc_add_slave(const char *machine_name) {
if ( the_mc != NULL ) {
the_mc->add_slave(std::string(machine_name ? machine_name : ""));
}
}
extern "C" void mc_start_slave(unsigned int id) {
if ( the_mc != NULL ) {
the_mc->start_slave(id);
}
}
extern "C" void mc_stop_slave(unsigned int id) {
if ( the_mc != NULL ) {
the_mc->stop_slave(id);
}
}
extern "C" void mc_write(char *buffer, int size) {
if ( the_mc != NULL ) {
the_mc->write(buffer, size) ;
}
}
extern "C" void mc_read(char *buffer, int size) {
if ( the_mc != NULL ) {
the_mc->read(buffer, size) ;
}
}
extern "C" unsigned int mc_get_current_run(void) {
if ( the_mc != NULL ) {
return the_mc->get_current_run();
}
return 0 ;
}
extern "C" void mc_set_current_run(int run_num) {
if ( the_mc != NULL ) {
the_mc->set_current_run(run_num);
}
}
extern "C" void mc_set_listen_device_port(int port_number) {
if ( the_mc != NULL ) {
the_mc->set_listen_device_port(port_number);
}
}
extern "C" void mc_set_connection_device_port(int port_number) {
if ( the_mc != NULL ) {
the_mc->set_connection_device_port(port_number);
}
}
extern "C" int mc_get_listen_device_port(void) {
if ( the_mc != NULL ) {
return the_mc->get_listen_device_port();
}
return -1 ;
}
extern "C" int mc_get_connection_device_port(void) {
if ( the_mc != NULL ) {
return the_mc->get_connection_device_port();
}
return -1 ;
}