Ejemplo n.º 1
0
cql::cql_stream_t
cql::cql_session_impl_t::prepare(
    const boost::shared_ptr<cql_query_t>&    query,
    cql_connection_t::cql_message_callback_t callback,
    cql_connection_t::cql_message_errback_t  errback)
{
	return execute_operation(query, callback, errback, &cql_connection_t::prepare);
}
Ejemplo n.º 2
0
ViewReaction * Calculator::proceed_to_next_state(INPUT_TYPES input_type, OPERATION_MODE operation_mode, int number)
{
    switch (input_type)
    {
        case INPUT_TYPES::OPERAND_CHARACTER:
            on_character_insertion(input_type);
            break;
        case INPUT_TYPES::OPERATOR:
            execute_operation(operation_mode, number, input_type);
            break;
        case INPUT_TYPES::MEMORY_SAVE:
            save_in_memory(number, input_type);
            break;
        case INPUT_TYPES::MEMORY_READ:
            read_from_memory(input_type);
            break;
        case INPUT_TYPES::CLEAR_HISTORY:
            clear_history(input_type);
            break;
    }
}
Ejemplo n.º 3
0
/* Execute all operations in a single instruction */
Change* execute_instruction(Instruction* inst, int* op_count, int* vect_count)
{
    Operation* current_op = inst->operations;
    Change* all_changes = NULL;
    Change* last_change;
    Change* new_changes;

    while(current_op)
    {
        if (vect_on) {     /* Uli  04/13/2011 */
	  (*vect_count)++;
        }
      
	(*op_count)++;
	new_changes = execute_operation(current_op);
	
	if (!all_changes)
	{
	    all_changes = new_changes;
	    last_change = new_changes;
	}
	else
	    last_change->next = new_changes;

	/* Move last change to end */
	if (last_change)
	    while(last_change->next)
		last_change = last_change->next;
	
		
	current_op = current_op->next;
    }

    return(all_changes);


}
Ejemplo n.º 4
0
QString
TCtrl::execute_calc_command(TCommand command, QString arg)
{
    TComplex tmp_comp;
    QStringList list_arg;
    QString res;

    switch (command)
    {
    case com_Number:
        state = c_editing;
        break;
    case com_Rev:
        if (state == c_exp_done)
        {
            processor.reset();
        }
        processor.set_rop(TComplex(arg));
        processor.run_func(Rev);
        res = processor.get_rop().get_complex();
        execute_editor_command(com_Set_str, res);
        state = c_fun_done;
        break;
    case com_Sqr:
        if (state == c_exp_done)
        {
            processor.reset();
        }
        processor.set_rop(TComplex(arg));
        processor.run_func(Sqr);
        res = processor.get_rop().get_complex();
        execute_editor_command(com_Set_str, res);
        state = c_fun_done;
        break;
    case com_Mod:
        tmp_comp = TComplex(arg);
        res = QString::number(round(tmp_comp.module()*10000)/10000);
        break;
    case com_Arg_rad:
        tmp_comp = TComplex(arg);
        res = QString::number(round(tmp_comp.angle_rad()*10000)/10000);
        break;
    case com_Arg_deg:
        tmp_comp = TComplex(arg);
        res = QString::number(round(tmp_comp.angle_deg()*10000)/10000);
        break;
    case com_Pwr:
        list_arg = arg.split("|");
        tmp_comp = TComplex(list_arg[0]);
        tmp_comp = tmp_comp.to_power(list_arg[1].toLong());
        //tmp_comp = TComplex(round(tmp_comp.get_re()*10000)/10000, round(tmp_comp.get_im()*10000)/10000);
        tmp_comp = TComplex(tmp_comp.get_re(), tmp_comp.get_im());
        res = tmp_comp.get_complex();
        break;
    case com_Root:
        list_arg = arg.split("|");
        tmp_comp = TComplex(list_arg[0]);
        //res = QString::number(list_arg[1].toLong()) + " " + QString::number(list_arg[2].toLong());
        tmp_comp = tmp_comp.sqrt(list_arg[1].toLong(), list_arg[2].toLong());
        //res = arg;
        //tmp_comp = TComplex(round(tmp_comp.get_re()*10000)/10000, round(tmp_comp.get_im()*10000)/10000);
        tmp_comp = TComplex(tmp_comp.get_re(), tmp_comp.get_im());
        res = tmp_comp.get_complex();
        break;
    case com_Add:
        res = execute_operation(Add, arg);
        break;
    case com_Sub:
        res = execute_operation(Sub, arg);
        break;
    case com_Mul:
        res = execute_operation(Mul, arg);
        break;
    case com_Div:
        res = execute_operation(Dvd, arg);
        break;
    case com_Eq:
        switch (state) {
        case c_op_change:
            processor.set_rop(processor.get_lop());
            state = c_exp_done;
            processor.run_oprtn();
            res = processor.get_lop().get_complex();
            break;
        case c_editing:
            if (processor.is_operation())
            {
                processor.set_rop(TComplex(arg));
                state = c_exp_done;
                processor.run_oprtn();
                res = processor.get_lop().get_complex();
            } else {
                processor.set_lop(TComplex(arg));
                state = c_exp_done;
                res = arg;
            }
            break;
        case c_fun_done:
            if (processor.is_operation())
            {
                processor.run_oprtn();
                res = processor.get_lop().get_complex();
            } else {
                processor.set_lop(TComplex(arg));
                res = arg;
            }
            state = c_exp_done;
            break;
        case c_exp_done:
            if (processor.is_operation())
            {
                processor.run_oprtn();
                res = processor.get_lop().get_complex();
            } else {
                processor.set_lop(TComplex(arg));
                res = arg;
            }
            break;
        case c_start:
            res = arg;
            break;res = arg;
        default:
            res = arg;
            break;
        }
        break;
    case com_MC:
        memory.clear();
        res = arg;
        break;
    case com_MS:
        memory.store(TComplex(arg));
        res = arg;
        break;
    case com_MR:
        if (state == c_op_change) {
            processor.set_rop(memory.extract());
            state = c_editing;
        }
        res = memory.extract().get_complex();
        break;
    case com_MAdd:
        memory.add(TComplex(arg));
        res = arg;
        break;
    }
    return res;
}