void create::select_level_type_helper(const std::string & str) { for (size_t idx = 0; idx < available_level_types_.size(); idx++) { if (available_level_types_[idx].to_string() == str) { level_type_combo_.set_selected(idx); init_level_type_changed(0); process_event_impl(process_event_data(false, false, false)); } } }
void sinsp_tracerparser::test() { // char doc[] = "[\">\\\"\", 12435, [\"mysql\", \"query\", \"init\"], [{\"argname1\":\"argval1\"}, {\"argname2\":\"argval2\"}, {\"argname3\":\"argval3\"}]]"; // char doc1[] = "[\"<t\", 12435, [\"mysql\", \"query\", \"init\"], []]"; char doc1[] = "[\">\", 12345, [\"mysql\", \"query\", \"init\"], [{\"argname1\":\"argval1\"}, {\"argname2\":\"argval2\"}, {\"argname3\":\"argval3\"}]]"; // char doc1[] = ">:1111:u\\:\\=a.u\\:\\>.aaa.33.aa\\::a=b\\:\\=,c=d\\:\\=a:"; sinsp_threadinfo tinfo; m_tinfo = &tinfo; tinfo.m_ptid = 11; tinfo.m_pid = 22; tinfo.m_tid = 33; printf("1\n"); float cpu_time = ((float)clock ()) / CLOCKS_PER_SEC; for(uint64_t j = 0; j < 30000000; j++) { process_event_data(doc1, sizeof(doc1) - 1, 10); if(m_res != sinsp_tracerparser::RES_OK) { printf("ERROR\n"); } process_event_data(doc1, sizeof(doc1) - 1, 20); if(m_res != sinsp_tracerparser::RES_OK) { printf("ERROR\n"); } } cpu_time = ((float)clock()/ CLOCKS_PER_SEC) - cpu_time; printf ("time: %5.2f\n", cpu_time); }
create::create(game_display& disp, const config& cfg, saved_game& state, chat& c, config& gamelist) : ui(disp, _("Create Game"), cfg, c, gamelist), tooltip_manager_(disp.video()), era_selection_(-1), mod_selection_(-1), level_selection_(-1), eras_menu_(disp.video(), std::vector<std::string>()), levels_menu_(disp.video(), std::vector<std::string>()), mods_menu_(disp.video(), std::vector<std::string>()), filter_name_label_(disp.video(), _("Filter:"), font::SIZE_SMALL, font::LOBBY_COLOR), filter_num_players_label_(disp.video(), _("Number of players: any"), font::SIZE_SMALL, font::LOBBY_COLOR), map_generator_label_(disp.video(), _("Random map options:"), font::SIZE_SMALL, font::LOBBY_COLOR), era_label_(disp.video(), _("Era:"), font::SIZE_SMALL, font::LOBBY_COLOR), no_era_label_(disp.video(), _("No eras available\nfor this game."), font::SIZE_SMALL, font::LOBBY_COLOR), mod_label_(disp.video(), _("Modifications:"), font::SIZE_SMALL, font::LOBBY_COLOR), map_size_label_(disp.video(), "", font::SIZE_SMALL, font::LOBBY_COLOR), num_players_label_(disp.video(), "", font::SIZE_SMALL, font::LOBBY_COLOR), level_type_label_(disp.video(), "Game type:", font::SIZE_SMALL, font::LOBBY_COLOR), launch_game_(disp.video(), _("Next")), cancel_game_(disp.video(), _("Cancel")), regenerate_map_(disp.video(), _("Regenerate")), generator_settings_(disp.video(), _("Settings...")), load_game_(disp.video(), _("Load Game...")), level_type_combo_(disp, std::vector<std::string>()), filter_num_players_slider_(disp.video()), description_(disp.video(), 100, "", false), filter_name_(disp.video(), 100, "", true, 256, font::SIZE_SMALL), image_restorer_(NULL), image_rect_(null_rect), available_level_types_(), engine_(disp, state) { filter_num_players_slider_.set_min(1); filter_num_players_slider_.set_max(9); filter_num_players_slider_.set_increment(1); DBG_MP << "constructing multiplayer create dialog" << std::endl; levels_menu_.set_numeric_keypress_selection(false); typedef std::pair<ng::level::TYPE, std::string> level_type_info; std::vector<level_type_info> all_level_types; all_level_types.push_back(std::make_pair(ng::level::TYPE::SCENARIO, _("Scenarios"))); all_level_types.push_back(std::make_pair(ng::level::TYPE::CAMPAIGN, _("Campaigns"))); all_level_types.push_back(std::make_pair(ng::level::TYPE::USER_MAP, _("User Maps"))); all_level_types.push_back(std::make_pair(ng::level::TYPE::USER_SCENARIO, _("User Scenarios"))); all_level_types.push_back(std::make_pair(ng::level::TYPE::RANDOM_MAP, _("Random Maps"))); if (game_config::debug) { all_level_types.push_back(std::make_pair(ng::level::TYPE::SP_CAMPAIGN, "SP Campaigns")); } std::vector<std::string> combo_level_names; BOOST_FOREACH(level_type_info type_info, all_level_types) { if (!engine_.get_levels_by_type_unfiltered(type_info.first).empty()) { available_level_types_.push_back(type_info.first); combo_level_names.push_back(type_info.second); } } if (available_level_types_.empty()) { gui2::show_transient_message(disp.video(), "", _("No games found.")); throw game::error(_("No games found.")); } level_type_combo_.set_items(combo_level_names); size_t combo_new_selection = 0; size_t level_new_selection = 0; // Set level selection according to the preferences, if possible. size_t type_index = 0; BOOST_FOREACH(ng::level::TYPE type, available_level_types_) { if (preferences::level_type() == type.cast<int>()) { break; } type_index++; } if (type_index < available_level_types_.size()) { combo_new_selection = type_index; int level_index = engine_.find_level_by_id(preferences::level()); if (level_index != -1) { level_new_selection = level_index; } } level_type_combo_.set_selected(combo_new_selection); init_level_type_changed(level_new_selection); const std::vector<std::string>& era_names = engine_.extras_menu_item_names(ng::create_engine::ERA); if(era_names.empty()) { gui2::show_transient_message(disp.video(), "", _("No eras found.")); throw config::error(_("No eras found")); } eras_menu_.set_items(era_names); // Set era selection according to the preferences, if possible. int era_new_selection = engine_.find_extra_by_id(ng::create_engine::ERA, preferences::era()); eras_menu_.move_selection((era_new_selection != -1) ? era_new_selection : 0); std::vector<std::string> mods = engine_.extras_menu_item_names(ng::create_engine::MOD); mods_menu_.set_items(mods); mods_menu_.move_selection(0); // don't set 0 explicitly, because move_selection(0) may fail if there's // no modifications at all mod_selection_ = mods_menu_.selection(); if (mod_selection_ == -1) { mod_label_.set_text(_("Modifications:\nNone found.")); } gamelist_updated(); plugins_context_.reset(new plugins_context("Multiplayer Create")); //These structure initializers create a lobby::process_data_event plugins_context_->set_callback("create", boost::bind(&create::plugin_event_helper, this, process_event_data (true, false, false))); plugins_context_->set_callback("load", boost::bind(&create::plugin_event_helper, this, process_event_data (false, true, false))); plugins_context_->set_callback("quit", boost::bind(&create::plugin_event_helper, this, process_event_data (false, false, true))); plugins_context_->set_callback("chat", boost::bind(&create::send_chat_message, this, boost::bind(get_str, _1, "message"), false), true); plugins_context_->set_callback("select_level", boost::bind(&gui::menu::move_selection, &levels_menu_, boost::bind(get_size_t, _1, "index", 0u)), true); plugins_context_->set_callback("select_type", boost::bind(&create::select_level_type_helper, this, boost::bind(get_str, _1, "type")), true); plugins_context_->set_accessor("game_config", boost::bind(&create::game_config, this)); plugins_context_->set_accessor("get_selected", boost::bind(&get_selected_helper, &engine_)); plugins_context_->set_accessor("find_level", boost::bind(&find_helper, &engine_, _1)); }