示例#1
0
void XmlValidatorJob::start()
{
    if(m_documentUrl.isEmpty()) {
        m_result = Failed;
        m_errors.append(i18n("No document to validate"));
        setError(m_result);
        emitResult();
        return;
    }

    
    QString localUrl;
    KJob *copyJob = 0;

    //DTD inline
    if(m_dtdUrl.isEmpty() && m_schemaUrl.isEmpty()) {
        emit signalReady(this);
        return;
    }
    
    if(!m_dtdUrl.isEmpty()) {
        localUrl = getLocalURLForSchema(m_documentUrl, m_dtdUrl);
        if(QFile::exists(localUrl)) {
            m_dtdUrl = localUrl;
            emit signalReady(this);
            return;
        } else {
            copyJob = KIO::copy(m_dtdUrl, localUrl, KIO::HideProgressInfo);
            m_dtdUrl = localUrl;
        }
    }
    
    if(!m_schemaUrl.isEmpty()) {
        localUrl = getLocalURLForSchema(m_documentUrl, m_schemaUrl);
        if(QFile::exists(localUrl)) {
            m_schemaUrl = localUrl;
            emit signalReady(this);
            return;
        } else {
            copyJob = KIO::copy(m_schemaUrl, localUrl, KIO::HideProgressInfo);
            m_schemaUrl = localUrl;
        }
    }

    copyJob->setAutoDelete(true);
    copyJob->setUiDelegate(0);
    connect(copyJob, SIGNAL(result(KJob *)), this, SLOT(ready(KJob *)));
    copyJob->start();
}
示例#2
0
void
TrackFileReaderWorker::run() {
    while (!_cancelRequested) {
        WorkPair work;
        _inMutex.lock();
        if (!_input.isEmpty()) {
            work = _input.first();
            _input.pop_front();
            QString what = QString("Parsing %0").arg(work.first);
            emit signalUpdate(what, _workCount, _workCount - _input.length());
        } else {
            _workCount = 0;
            emit signalDone();
            _inMutex.unlock();
            break;
        }
        _inMutex.unlock();
        std::string whyNot;
        if (!_reader->read(work.first, work.second, &whyNot)) {
            QString error = QString::fromStdString(whyNot);
            emit signalError(work.first, error);
        } else {
            emit signalReady(work.first, work.second);
        }
    }
};
示例#3
0
/*
    Function called when data has been written over BLE.
*/
Block* blockServerWriteHandler(Block* block)
{
    printf("main: block write: length: %4lu offset: %6lu time: %3d ms\r\n", block->getLength(), block->getOffset(), watch->read_ms());

#if VERBOSE_DEBUG_OUTPUT
    for (std::size_t idx = 0; idx < block->getLength(); idx++)
    {
        printf("%02X", block->at(idx));
    }
    printf("\r\n");
#endif

    // the Block Transfer service is not busy
    if (bts->ready())
    {
        // signal data is available to be read
        signalReady();
    }

    // reset timer to measure time to next block
    watch->reset();

    /*
        Return block to Block Transfer Service.
        This can be a different block than the one just received.
    */
    return block;
}
示例#4
0
/* Метод для активации диалога добавления записей
 * */
void MainWindow::on_addDeviceButton_clicked()
{
    /* Создаем диалог и подключаем его сигнал завершения работы
     * к слоту обновления вида модели представления данных
     * */
    DialogAddDevice *addDeviceDialog = new DialogAddDevice();
    connect(addDeviceDialog, SIGNAL(signalReady()), this, SLOT(slotUpdateModels()));

    /* Выполняем запуск диалогового окна
     * */
    addDeviceDialog->setWindowTitle(trUtf8("Добавить Устройство"));
    addDeviceDialog->exec();
}
示例#5
0
/* Метод для активации диалога добавления записей в режиме редактирования
 * с передачей индекса выбранной строки
 * */
void MainWindow::slotEditRecord(QModelIndex index)
{
    /* Также создаем диалог и подключаем его сигнал завершения работы
     * к слоту обновления вида модели представления данных, но передаём
     * в качестве параметров строку записи
     * */
    DialogAddDevice *addDeviceDialog = new DialogAddDevice(index.row());
    connect(addDeviceDialog, SIGNAL(signalReady()), this, SLOT(slotUpdateModels()));

    /* Выполняем запуск диалогового окна
     * */
    addDeviceDialog->setWindowTitle(trUtf8("Редактировать Устройство"));
    addDeviceDialog->exec();
}
示例#6
0
		void update(uint8_t cycles)
		{	
			if (!isTransferring() || pending_recieve_) return;

			// if using internal shift clock, run clocking logic
			if (getLinkMode() == Link::Mode::INTERNAL)
			{
				internalClock(cycles);
			}
			else
			{
				// transferring in external clock mode, signal transfer ready
				
				signalReady();
			}
		}
示例#7
0
		void internalClock(uint8_t cycles)
		{
			// increment shift clock
			shift_clock_ += cycles;

			if (shift_clock_ >= shift_clock_rate_)
			{
				shift_clock_ -= shift_clock_rate_;

				shift_counter_++;

				if (shift_counter_ == 8)
				{
					// signal to the host system that this core is ready to do the transfer
					signalReady();

					shift_counter_ = 0;
				}
			}
		}