コード例 #1
0
ファイル: xsocks.c プロジェクト: WisdomKwan/xsocks
static void
signal_cb(uv_signal_t *handle, int signum) {
    if (signum == SIGINT || signum == SIGQUIT) {
        char *name = signum == SIGINT ? "SIGINT" : "SIGQUIT";
        logger_log(LOG_INFO, "Received %s, scheduling shutdown...", name);

        close_signal();

        if (concurrency > 1) {
            struct server_context *servers = handle->data;
            for (int i = 0; i < concurrency; i++) {
                struct server_context *server = &servers[i];
                uv_async_send(&server->async_handle);
            }

        } else {
            struct server_context *ctx = handle->data;
            uv_close((uv_handle_t *)&ctx->tcp, NULL);
            udprelay_close(ctx);
        }

    }
    if (signum == SIGTERM) {
        logger_log(LOG_INFO, "Received SIGTERM, scheduling shutdown...");
        if (daemon_mode) {
            delete_pidfile(pidfile);
        }
        exit(0);
    }
}
コード例 #2
0
ファイル: mainwindow.cpp プロジェクト: qks1/DocsPrint
// создание окна превью
void MainWindow::signal_from_doc(QSqlQueryModel *model, QString name, QString num, QString note, QString date){
    // передаём туда название документа, номер, дату и примечание, чтобы вставить их в заголовок талона
    // а сам список позиций передаём в виде QSqlQueryModel
    preview = new PrintPreview(model, name, num, note, date);
    // добавляем созданный виджет в StackedWidget и делаем его активным
    mwidget->addWidget(preview);
    mwidget->setCurrentIndex(mwidget->indexOf(preview));

    QObject::connect(this->preview, SIGNAL(close_signal()),
            this, SLOT(preview_closed()));

}
コード例 #3
0
ファイル: mainwindow.cpp プロジェクト: qks1/DocsPrint
// создание окна документа
void MainWindow::signal_from_list(int id, QString name, QString num, QString note, QString date){
    // такого не может быть, но пусть будет
    if(!is_connect){
        QMessageBox::warning(this, "Странная ошибка", "Таблица ещё не создана");
        return;
    }
    doc = new DocTable(id, name, num, note, date);
    // добавляем созданный виджет в StackedWidget и делаем его активным
    mwidget->addWidget(doc);
    mwidget->setCurrentIndex(mwidget->indexOf(doc));

    QObject::connect(this->doc, SIGNAL(close_signal()),
            this, SLOT(doc_closed()));
    connect(this->doc, SIGNAL(print_preview(QSqlQueryModel*, QString, QString, QString, QString)),
            this, SLOT(signal_from_doc(QSqlQueryModel*, QString, QString, QString, QString)));
}