static void monitor_call_handler(Monitor *mon, const mon_cmd_t *cmd,

                                 const QDict *params)

{

    QObject *data = NULL;



    cmd->mhandler.cmd_new(mon, params, &data);



    if (is_async_return(data)) {

        /*

         * Asynchronous commands have no initial return data but they can

         * generate errors.  Data is returned via the async completion handler.

         */

        if (monitor_ctrl_mode(mon) && monitor_has_error(mon)) {

            monitor_protocol_emitter(mon, NULL);

        }

    } else if (monitor_ctrl_mode(mon)) {

        /* Monitor Protocol */

        monitor_protocol_emitter(mon, data);

    } else {

        /* User Protocol */

         if (data)

            cmd->user_print(mon, data);

    }



    qobject_decref(data);

}

static void monitor_call_handler(Monitor *mon, const mon_cmd_t *cmd,

                                 const QDict *params)

{

    QObject *data = NULL;



    cmd->mhandler.cmd_new(mon, params, &data);



    if (is_async_return(data)) {

        







        if (monitor_ctrl_mode(mon) && monitor_has_error(mon)) {

            monitor_protocol_emitter(mon, NULL);

        }

    } else if (monitor_ctrl_mode(mon)) {

        

        monitor_protocol_emitter(mon, data);

    } else {

        

         if (data)

            cmd->user_print(mon, data);

    }



    qobject_decref(data);

}

    cmd->mhandler.cmd_new(mon, params, &data);
static void FUNC_0(Monitor *VAR_0, const mon_cmd_t *VAR_1,

                                 const QDict *VAR_2)

{

    QObject *data = NULL;



    VAR_1->mhandler.cmd_new(VAR_0, VAR_2, &data);



    if (is_async_return(data)) {

        







        if (monitor_ctrl_mode(VAR_0) && monitor_has_error(VAR_0)) {

            monitor_protocol_emitter(VAR_0, NULL);

        }

    } else if (monitor_ctrl_mode(VAR_0)) {

        

        monitor_protocol_emitter(VAR_0, data);

    } else {

        

         if (data)

            VAR_1->user_print(VAR_0, data);

    }



    qobject_decref(data);

}

static void FUNC_0(Monitor *VAR_0, const mon_cmd_t *VAR_1,
const QDict *VAR_2)
{ QObject *data = NULL; VAR_1->mhandler.cmd_new(VAR_0, VAR_2, &data); if (is_async_return(data)) { if (monitor_ctrl_mode(VAR_0) && monitor_has_error(VAR_0)) { monitor_protocol_emitter(VAR_0, NULL); } } else if (monitor_ctrl_mode(VAR_0)) { monitor_protocol_emitter(VAR_0, data); } else { if (data)
VAR_1->user_print(VAR_0, data); } qobject_decref(data); }