Exemple #1
0
/* 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();
}
Exemple #2
0
// 连接数据库
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 ();
}
Exemple #4
0
/* 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 ();
}