int transfer_file(char* filename) { int fd_read = cfs_open(filename, CFS_READ); if (fd_read == -1) { log_error("cfs_open(%s) failed\n", filename); return -1; } cfs_offset_t pos = -1; if ((pos = cfs_seek(fd_read, 0, CFS_SEEK_END)) == -1) { log_error("cfs_seek(%s) to file end failed", filename); cfs_close(fd_read); return -1; } if ((pos = cfs_seek(fd_read, 0, CFS_SEEK_SET)) == -1) { log_error("cfs_seek(%s) to file begin failed", filename); cfs_close(fd_read); return -1; } init_file_reader(&_f_reader); strcpy(_f_reader.file_name, filename); _f_reader.send_fd = begin_send_file(filename); _f_reader.read_fd = fd_read; _f_reader.file_size = (uint16_t)pos; send_file_block(_f_reader.send_fd); return 0; }
analyzer_t::analyzer_t(const std::string &trace_path, analysis_tool_t **tools_in, int num_tools_in, int worker_count_in) : success(true) , num_tools(num_tools_in) , tools(tools_in) , parallel(true) , worker_count(worker_count_in) { for (int i = 0; i < num_tools; ++i) { if (tools[i] == NULL || !*tools[i]) { success = false; error_string = "Tool is not successfully initialized"; if (tools[i] != NULL) error_string += ": " + tools[i]->get_error_string(); return; } const std::string error = tools[i]->initialize(); if (!error.empty()) { success = false; error_string = "Tool failed to initialize: " + error; return; } } if (!init_file_reader(trace_path)) success = false; }
analyzer_t::analyzer_t(const std::string &trace_path) : success(true) , num_tools(0) , tools(NULL) // This external-iterator interface does not support parallel analysis. , parallel(false) , worker_count(0) { if (!init_file_reader(trace_path)) success = false; }
analyzer_t::analyzer_t(const std::string &trace_file, analysis_tool_t **tools_in, int num_tools_in) : success(true), trace_iter(NULL), trace_end(NULL), num_tools(num_tools_in), tools(tools_in) { for (int i = 0; i < num_tools; ++i) { if (tools[i] == NULL || !*tools[i]) { success = false; ERRMSG("Tool is not successfully initialized\n"); return; } } if (!init_file_reader(trace_file)) success = false; }
analyzer_t::analyzer_t(const std::string &trace_file) : success(true), trace_iter(NULL), trace_end(NULL), num_tools(0), tools(NULL) { if (!init_file_reader(trace_file)) success = false; }
int main(int argc, char *argv[]) { GPtrArray *plugin_array = g_ptr_array_new(); GOptionContext *ctx = g_option_context_new(" target port"); signal(SIGPIPE, signal_callback_handler); int plugin_num = enumerate_plugins(SYSLOG_NG_PATH_LOGGEN_PLUGIN_DIR, plugin_array, ctx); DEBUG("%d plugin successfuly loaded\n",plugin_num); /* create sub group for file reader functions */ GOptionGroup *group = g_option_group_new("file-reader", "file-reader", "Show options", NULL, NULL); g_option_group_add_entries(group, get_file_reader_options()); g_option_context_add_group(ctx, group); GError *error = NULL; if (!g_option_context_parse(ctx, &argc, &argv, &error)) { ERROR("option parsing failed: %s\n", error->message); g_ptr_array_free(plugin_array,TRUE); if (error) g_error_free(error); return 1; } /* debug option defined by --debug command line option */ set_debug_level(debug); if (argc>=3) { global_plugin_option.target = g_strdup(argv[1]); global_plugin_option.port = g_strdup(argv[2]); } else if (argc>=2) { global_plugin_option.target = g_strdup(argv[1]); global_plugin_option.port = NULL; } else { global_plugin_option.target = NULL; global_plugin_option.port = NULL; DEBUG("no port and address specified"); } DEBUG("target=%s port=%s\n",global_plugin_option.target,global_plugin_option.port); if (global_plugin_option.message_length > MAX_MESSAGE_LENGTH) { ERROR("warning: defined message length (%d) is too big. truncated to (%d)\n",global_plugin_option.message_length, MAX_MESSAGE_LENGTH); global_plugin_option.message_length = MAX_MESSAGE_LENGTH; } read_from_file = init_file_reader(global_plugin_option.active_connections); if (read_from_file < 0) { ERROR("error while opening input file. exit.\n"); return 1; } message_counter_lock = g_mutex_new(); init_logline_generator(plugin_array); init_csv_statistics(); if (start_plugins(plugin_array) > 0) { wait_all_plugin_to_finish(plugin_array); stop_plugins(plugin_array); } close_file_reader(global_plugin_option.active_connections); if (message_counter_lock) g_mutex_free(message_counter_lock); g_free((gpointer)global_plugin_option.target); g_free((gpointer)global_plugin_option.port); g_ptr_array_free(plugin_array,TRUE); g_free(thread_stat_count_last); g_free(thread_stat_count); return 0; }