/* Instrument the stipulation representation so that it can solve and enforce * threats * @param si identifies slice where to start */ void solving_insert_threat_handlers(slice_index si) { stip_structure_traversal st; slice_index threat_start = no_slice; TraceFunctionEntry(__func__); TraceFunctionParam("%u",si); TraceFunctionParamListEnd(); stip_structure_traversal_init(&st,&threat_start); stip_structure_traversal_override_by_contextual(&st, slice_contextual_testing_pipe, &stip_traverse_structure_children_pipe); stip_structure_traversal_override_by_contextual(&st, slice_contextual_conditional_pipe, &stip_traverse_structure_children_pipe); stip_structure_traversal_override(&st, threat_handler_inserters, nr_threat_handler_inserters); stip_traverse_structure(si,&st); reset_tables(); TraceFunctionExit(__func__); TraceFunctionResultEnd(); }
// 连接数据库 void database::connect(const std::string &dbname) { filename = dbname; if( filename.length() == 0 ) { boost::gregorian::date d(boost::gregorian::day_clock::local_day()); std::ostringstream name; name << d.year() << "-" << d.month() << "-" << d.day() << ".sqlite"; filename = name.str(); } bool bcreatedb = !boost::filesystem::exists(filename.c_str()); int rc = sqlite3_open(filename.c_str(), &pdb); if( rc ){ std::ostringstream err ; err << "Can't open database: " << sqlite3_errmsg(pdb); sqlite3_close(pdb); pdb = NULL; throw err.str(); } if (bcreatedb) { // create tables reset_tables(); } sqlite3_exec(pdb,"PRAGMA synchronous = OFF;",0,0,0); sqlite3_busy_timeout(pdb,50000); }
void Key2KanaTableSet::set_typing_method (TypingMethod method, Key2KanaTable *fundamental_table) { m_typing_method = method; m_fundamental_table = fundamental_table; reset_tables (); }
/* Instrument a stipulation * @param si identifies root slice of stipulation */ void solving_insert_exclusive_chess(slice_index si) { stip_structure_traversal st; insertion_state_type state = { false, false, false }; TraceFunctionEntry(__func__); TraceFunctionParam("%u",si); TraceFunctionParamListEnd(); stip_structure_traversal_init(&st,&state); stip_structure_traversal_override_single(&st, STExclusiveChessMatingMoveCounterFork, &avoid_instrumenting_exclusivity_detecting_move); stip_structure_traversal_override_single(&st, STExclusiveChessNestedExclusivityDetector, &leave_exclusivity_testing); stip_structure_traversal_override_single(&st, STExclusiveChessGoalReachingMoveCounter, &remember_counting); stip_structure_traversal_override_single(&st, STGoalReachedTester, &substitute_self_check_guard); stip_structure_traversal_override_single(&st, STGeneratingMoves, &insert_exclusivity_detector); stip_structure_traversal_override_single(&st,STMove,&insert_legality_tester); stip_structure_traversal_override_single(&st, STKingCaptureLegalityTester, &stip_traverse_structure_children_pipe); stip_traverse_structure(si,&st); reset_tables(); TraceFunctionExit(__func__); TraceFunctionResultEnd(); }
void Key2KanaTableSet::set_slash_style (SlashStyle style) { m_slash_style = style; reset_tables (); }
void Key2KanaTableSet::set_bracket_style (BracketStyle style) { m_bracket_style = style; reset_tables (); }
void Key2KanaTableSet::set_comma_style (CommaStyle style) { m_comma_style = style; reset_tables (); }
void Key2KanaTableSet::set_period_style (PeriodStyle style) { m_period_style = style; reset_tables (); }
void Key2KanaTableSet::set_number_width (bool half) { m_use_half_number = half; reset_tables (); }
void Key2KanaTableSet::set_symbol_width (bool half) { m_use_half_symbol = half; reset_tables (); }