void RingBufferForm::scanTicks() { DataPump* datapump = g_sm->dataPump(); if (!datapump) { return; } ui->tableWidget->clearContents(); ui->tableWidget->setRowCount(0); RingBuffer* rb = datapump->getRingBuffer(id_); int head = rb->head(); if (head < 0) { return; } for (int i = 0; i < rb->count() / 2; i++) { void* p = rb->get(head); if (p == nullptr) { return; } onGotTick(p); head -= 1; if (head == -1) { head += rb->count(); } } }
void TickForm::onUpdateTick() { for (int i = 0; i < table_row_.size(); i++) { QString id = table_row_.key(i); void* curTick = g_sm->ctpMgr()->getLatestTick(id); void* preTick = g_sm->ctpMgr()->getPreLatestTick(id); if (curTick) { onGotTick(curTick, preTick); } } }