static globus_result_t gfs_l_dynclient_master_options( int argc, char ** argv) { globus_options_handle_t opt_h; globus_result_t result; globus_options_init( &opt_h, gfs_l_dynclient_master_opts_unknown, NULL); globus_options_add_table(opt_h, gfork_l_opts_table, NULL); result = globus_options_command_line_process(opt_h, argc, argv); if(result != GLOBUS_SUCCESS) { goto error; } return GLOBUS_SUCCESS; error: return result; }
int main(int argc, char ** argv) { char * lib_name; char * symbol_name; int rc; globus_state_extension_handle_t * ext_data; globus_result_t result; globus_state_handle_t handle; lt_dlhandle dlo_h; void * sym_handle; globus_options_handle_t opt_h; globus_options_init( &opt_h, redia_l_opts_unknown, NULL); globus_options_add_table(opt_h, redia_l_opts_table, NULL); result = globus_options_command_line_process(opt_h, argc, argv); if(result != GLOBUS_SUCCESS) { exit(1); } lib_name = argv[argc-2]; symbol_name = argv[argc-1]; rc = globus_module_activate(GLOBUS_COMMON_MODULE); if(rc != 0) { fprintf(stderr, "Failed to activate common\n"); exit(1); } dlo_h = lt_dlopenext(lib_name); if(dlo_h == NULL) { fprintf(stderr, "Failed to dlopen %s\n%s\n", lib_name, lt_dlerror()); exit(1); } sym_handle = lt_dlsym(dlo_h, symbol_name); if(sym_handle == NULL) { fprintf(stderr, "Failed to dlsym %s\n%s\n", symbol_name, lt_dlerror()); exit(1); } ext_data = (globus_state_extension_handle_t *) sym_handle; fprintf(stderr, "Found %s, name %s\n", symbol_name, ext_data->name); fprintf(stderr, "writing to file %s\n", g_outfile); result = globus_states_init(&handle, ext_data->init_handler); if(result != GLOBUS_SUCCESS) { fprintf(stderr, "Init handler returned with an error\n"); exit(1); } /* call print function */ rc = globus_state_make_graph( handle, g_outfile, g_txt_file, g_flag, g_edge_label); if(rc != 0) { fprintf(stderr, "Failed to make graph in file %s\n", g_outfile); exit(1); } return 0; }