bool Connection::requestData(const std::string& table, const std::string& gtid) { bool rval = true; std::string req_msg(REQUEST_MSG); req_msg += table; if (gtid.length()) { req_msg += " "; req_msg += gtid; } if (nointr_write(m_fd, req_msg.c_str(), req_msg.length()) == -1) { rval = false; char err[ERRBUF_SIZE]; m_error = "Failed to write request: "; m_error += strerror_r(errno, err, sizeof (err)); } if (rval) { /** Read the Avro schema */ rval = readRow(m_schema); } return rval; }
void FeedModel::updateFlags() { int l = this->rowCount(); for (int i=0; i<l; ++i) { FeedItem* item = static_cast<FeedItem*>(readRow(i)); item->setUnread(_db->countEntriesUnreadByStream(item->uid())); item->setRead(_db->countEntriesReadByStream(item->uid())); } }
const QStringList& CsvFile :: headerLabels() { if (!firstRow.count()) { readRow(); firstRow = currentRow; } return firstRow; }
void FeedModel::markAsRead(int row) { FeedItem* item = static_cast<FeedItem*>(readRow(row)); _db->updateEntriesReadFlagByStream(item->id(),1); item->setUnread(0); item->setRead(_db->countEntriesReadByStream(item->id())); DatabaseManager::Action action; action.type = DatabaseManager::SetStreamReadAll; action.id1 = item->id(); action.date1 = _db->readLastUpdateByStream(item->id()); _db->writeAction(action); }
//============================================================== //this is the function that reads in the table //============================================================== int readFData(FILE *fp, fData *t, const fDataType *types) { char **currentRow; char *rowPtr; int rowCount = 0; int i; int errFlag = 0;//not used, but possibly for future usage. set when data types disagree //allocate the datatypes table, and set the default values t->types = (fDataType *) malloc(sizeof(fDataType) * t->numCols); for (i = 0; i < t->numCols; i++) { t->types[i].type = INT; t->types[i].sigDigits = 0; t->types[i].inSigDigits = 0; } //allocate the first row of data t->data = (char ***) malloc((sizeof(char **))); while (!EOFDETECTED) { //read in a row if ((rowPtr = getRow(fp)) == NULL) break; //this is not really an error //parse the row currentRow = readRow(rowPtr, t->numCols); if (types != NULL)//check to see if the dataTypes in TYPES are OK with the data read. { if (!verifyRow(currentRow, types, t->numCols)) { fprintf(stderr, "On row %d\n", rowCount); errFlag = 1; } } if (EOFDETECTED) break; if (!currentRow) { fprintf(stderr, "Flib::readRawData: I cant read line #%d\n", rowCount); t->data = NULL; return 1;; } //make space for another row t->data = (char ***) realloc(t->data, (sizeof(char **) * (rowCount + 1))); //set the values for the row, and increment rowCount t->data[rowCount++] = currentRow; getDataTypes(t->numCols, t->types, currentRow); free(rowPtr); } t->numRows = rowCount; return errFlag; }
void FeedModel::markAsUnread(int row) { Settings *s = Settings::instance(); if (s->getSigninType() >= 10) { // markAsUnread not supported in API qWarning() << "Mark feed as unread is not supported!"; return; } FeedItem* item = static_cast<FeedItem*>(readRow(row)); _db->updateEntriesReadFlagByStream(item->id(),0); item->setRead(0); item->setUnread(_db->countEntriesUnreadByStream(item->id())); DatabaseManager::Action action; action.type = DatabaseManager::UnSetStreamReadAll; action.id1 = item->id(); action.date1 = _db->readLastUpdateByStream(item->id()); _db->writeAction(action); }
bool copyImage(const osg::Image* srcImage, int src_s, int src_t, int src_r, int width, int height, int depth, osg::Image* destImage, int dest_s, int dest_t, int dest_r, bool doRescale) { if ((src_s+width) > (dest_s + destImage->s())) { OSG_NOTICE<<"copyImage("<<srcImage<<", "<<src_s<<", "<< src_t<<", "<<src_r<<", "<<width<<", "<<height<<", "<<depth<<std::endl; OSG_NOTICE<<" "<<destImage<<", "<<dest_s<<", "<< dest_t<<", "<<dest_r<<", "<<doRescale<<")"<<std::endl; OSG_NOTICE<<" input width too large."<<std::endl; return false; } if ((src_t+height) > (dest_t + destImage->t())) { OSG_NOTICE<<"copyImage("<<srcImage<<", "<<src_s<<", "<< src_t<<", "<<src_r<<", "<<width<<", "<<height<<", "<<depth<<std::endl; OSG_NOTICE<<" "<<destImage<<", "<<dest_s<<", "<< dest_t<<", "<<dest_r<<", "<<doRescale<<")"<<std::endl; OSG_NOTICE<<" input height too large."<<std::endl; return false; } if ((src_r+depth) > (dest_r + destImage->r())) { OSG_NOTICE<<"copyImage("<<srcImage<<", "<<src_s<<", "<< src_t<<", "<<src_r<<", "<<width<<", "<<height<<", "<<depth<<std::endl; OSG_NOTICE<<" "<<destImage<<", "<<dest_s<<", "<< dest_t<<", "<<dest_r<<", "<<doRescale<<")"<<std::endl; OSG_NOTICE<<" input depth too large."<<std::endl; return false; } float scale = 1.0f; if (doRescale && srcImage->getDataType() != destImage->getDataType()) { switch(srcImage->getDataType()) { case(GL_BYTE): scale = 1.0f/128.0f ; break; case(GL_UNSIGNED_BYTE): scale = 1.0f/255.0f; break; case(GL_SHORT): scale = 1.0f/32768.0f; break; case(GL_UNSIGNED_SHORT): scale = 1.0f/65535.0f; break; case(GL_INT): scale = 1.0f/2147483648.0f; break; case(GL_UNSIGNED_INT): scale = 1.0f/4294967295.0f; break; case(GL_FLOAT): scale = 1.0f; break; } switch(destImage->getDataType()) { case(GL_BYTE): scale *= 128.0f ; break; case(GL_UNSIGNED_BYTE): scale *= 255.0f; break; case(GL_SHORT): scale *= 32768.0f; break; case(GL_UNSIGNED_SHORT): scale *= 65535.0f; break; case(GL_INT): scale *= 2147483648.0f; break; case(GL_UNSIGNED_INT): scale *= 4294967295.0f; break; case(GL_FLOAT): scale *= 1.0f; break; } } if (srcImage->getPixelFormat() == destImage->getPixelFormat()) { //OSG_NOTICE<<"copyImage("<<srcImage<<", "<<src_s<<", "<< src_t<<", "<<src_r<<", "<<width<<", "<<height<<", "<<depth<<std::endl; //OSG_NOTICE<<" "<<destImage<<", "<<dest_s<<", "<< dest_t<<", "<<dest_r<<", "<<doRescale<<")"<<std::endl; if (srcImage->getDataType() == destImage->getDataType() && !doRescale) { //OSG_NOTICE<<" Compatible pixelFormat and dataType."<<std::endl; for(int slice = 0; slice<depth; ++slice) { for(int row = 0; row<height; ++row) { const unsigned char* srcData = srcImage->data(src_s, src_t+row, src_r+slice); unsigned char* destData = destImage->data(dest_s, dest_t+row, dest_r+slice); memcpy(destData, srcData, (width*destImage->getPixelSizeInBits())/8); } } return true; } else { //OSG_NOTICE<<" Compatible pixelFormat and incompatible dataType."<<std::endl; for(int slice = 0; slice<depth; ++slice) { for(int row = 0; row<height; ++row) { const unsigned char* srcData = srcImage->data(src_s, src_t+row, src_r+slice); unsigned char* destData = destImage->data(dest_s, dest_t+row, dest_r+slice); unsigned int numComponents = osg::Image::computeNumComponents(destImage->getPixelFormat()); _copyRowAndScale(srcData, srcImage->getDataType(), destData, destImage->getDataType(), (width*numComponents), scale); } } return true; } } else { //OSG_NOTICE<<"copyImage("<<srcImage<<", "<<src_s<<", "<< src_t<<", "<<src_r<<", "<<width<<", "<<height<<", "<<depth<<std::endl; //OSG_NOTICE<<" "<<destImage<<", "<<dest_s<<", "<< dest_t<<", "<<dest_r<<", "<<doRescale<<")"<<std::endl; RecordRowOperator readOp(width); WriteRowOperator writeOp; for(int slice = 0; slice<depth; ++slice) { for(int row = 0; row<height; ++row) { // reset the indices to beginning readOp._pos = 0; writeOp._pos = 0; // read the pixels into readOp's _colour array readRow(width, srcImage->getPixelFormat(), srcImage->getDataType(), srcImage->data(src_s,src_t+row,src_r+slice), readOp); // pass readOp's _colour array contents over to writeOp (note this is just a pointer swap). writeOp._colours.swap(readOp._colours); modifyRow(width, destImage->getPixelFormat(), destImage->getDataType(), destImage->data(dest_s, dest_t+row,dest_r+slice), writeOp); // return readOp's _colour array contents back to its rightful owner. writeOp._colours.swap(readOp._colours); } } return false; } }
int EntryModel::createItems(int offset, int limit) { QList<DatabaseManager::Entry> list; Settings *s = Settings::instance(); bool ascOrder = s->getShowOldestFirst(); // Counting 'last' & 'daterow' rows if (offset > 0) { int dummyRowsCount = 0; int l = this->rowCount(); //qDebug() << "this->rowCount():" << l; for (int i = 0; i < l; ++i) { EntryItem* item = static_cast<EntryItem*>(readRow(i)); //qDebug() << item->id(); if (item->id()=="last" || item->id()=="daterow") { ++dummyRowsCount; } } //qDebug() << "dummyRowsCount:" << dummyRowsCount << "orig offset:" << offset; if (offset > dummyRowsCount) offset = offset - dummyRowsCount; } int mode = s->getViewMode(); switch (mode) { case 0: // View mode: Tabs->Feeds->Entries if (s->getShowOnlyUnread()) list = _db->readEntriesUnreadByStream(_feedId,offset,limit,ascOrder); else list = _db->readEntriesByStream(_feedId,offset,limit,ascOrder); break; case 1: // View mode: Tabs->Entries if (s->getShowOnlyUnread()) list = _db->readEntriesUnreadByTab(_feedId,offset,limit,ascOrder); else list = _db->readEntriesByTab(_feedId,offset,limit,ascOrder); break; case 2: // View mode: Feeds->Entries if (s->getShowOnlyUnread()) list = _db->readEntriesUnreadByStream(_feedId,offset,limit,ascOrder); else list = _db->readEntriesByStream(_feedId,offset,limit,ascOrder); break; case 3: // View mode: Entries if (s->getShowOnlyUnread()) list = _db->readEntriesUnreadByDashboard(s->getDashboardInUse(),offset,limit,ascOrder); else list = _db->readEntriesByDashboard(s->getDashboardInUse(),offset,limit,ascOrder); break; case 4: // View mode: Saved list = _db->readEntriesSavedByDashboard(s->getDashboardInUse(),offset,limit,ascOrder); break; case 5: // View mode: Slow if (s->getShowOnlyUnread()) list = _db->readEntriesSlowUnreadByDashboard(s->getDashboardInUse(),offset,limit,ascOrder); else list = _db->readEntriesSlowByDashboard(s->getDashboardInUse(),offset,limit,ascOrder); break; case 6: // View mode: Liked list = _db->readEntriesLikedByDashboard(s->getDashboardInUse(),offset,limit,ascOrder); break; case 7: // View mode: Broadcast list = _db->readEntriesBroadcastByDashboard(s->getDashboardInUse(),offset,limit,ascOrder); break; } //qDebug() << "limit:" << limit << "Row count:" << list.count() << "new offset:" << offset; // Remove dummy row if (list.count()>0) { int l = rowCount(); if (l>0) { EntryItem* item = dynamic_cast<EntryItem*>(readRow(l-1)); //qDebug() << "item->id()" << item->id() << "l" << l; if (item->id()=="last") removeRow(l-1); } } QList<DatabaseManager::Entry>::iterator i = list.begin(); int prevDateRow = 0; if (rowCount()>0) { EntryItem* item = dynamic_cast<EntryItem*>(readRow(rowCount()-1)); prevDateRow = getDateRowId(item->date()); //qDebug() << "prevDateRow UID:" << item->uid(); } QRegExp re("<[^>]*>"); while( i != list.end() ) { // Removing html tags! QTextDocument doc; doc.setHtml((*i).content); QString content0 = doc.toPlainText() #if QT_VERSION >= QT_VERSION_CHECK(5,0,0) .replace(QChar::ObjectReplacementCharacter,QChar::Space).trimmed(); #else .replace(QChar::ObjectReplacementCharacter,QChar(0x0020)).trimmed(); #endif QString content = content0.simplified(); if (content.length()>1000) content = content.left(997)+"..."; doc.setHtml((*i).title); //QString title = doc.toPlainText().remove(QRegExp("<[^>]*>")) QString title = doc.toPlainText() #if QT_VERSION >= QT_VERSION_CHECK(5,0,0) .replace(QChar::ObjectReplacementCharacter,QChar::Space) #else .replace(QChar::ObjectReplacementCharacter,QChar(0x0020)) #endif .simplified(); if (title.length()>200) title = title.left(197)+QString("..."); //qDebug() << title; /*QRegExp rx("(\\S*)\\s*\((\\S*)\)", Qt::CaseInsensitive); if (rx.indexIn((*i).author)!=-1) { qDebug() << "(*i).author:" << (*i).author << "cap:" << rx.cap(1).toUtf8(); //(*i).author = rx.cap(1).toUtf8(); }*/ // Detecting invalid images bool imageOk = true; QUrl imageUrl((*i).image); //qDebug() << imageUrl.path(); if (imageUrl.path() == "/assets/images/transparent.png") imageOk = false; if (imageUrl.host() == "rc.feedsportal.com") imageOk = false; // Adding date row int dateRow = getDateRowId((*i).publishedAt); if ((!ascOrder && dateRow>prevDateRow) || (ascOrder && dateRow<prevDateRow) || prevDateRow == 0) { switch (dateRow) { case 1: appendRow(new EntryItem("daterow",tr("Today"),"","","","","","","","","","",false,false,false,0,0,0,0)); break; case 2: appendRow(new EntryItem("daterow",tr("Yesterday"),"","","","","","","","","","",false,false,false,0,0,0,0)); break; case 3: appendRow(new EntryItem("daterow",tr("Current week"),"","","","","","","","","","",false,false,false,0,0,0,0)); break; case 4: appendRow(new EntryItem("daterow",tr("Current month"),"","","","","","","","","","",false,false,false,0,0,0,0)); break; case 5: appendRow(new EntryItem("daterow",tr("Previous month"),"","","","","","","","","","",false,false,false,0,0,0,0)); break; case 6: appendRow(new EntryItem("daterow",tr("Current year"),"","","","","","","","","","",false,false,false,0,0,0,0)); break; default: appendRow(new EntryItem("daterow",tr("Previous year & older"),"","","","","","","","","","",false,false,false,0,0,0,0)); break; } } prevDateRow = dateRow; //qDebug() << "(*i).broadcast" << (*i).broadcast << ((*i).broadcast==1); //qDebug() << (*i).id << (*i).link; appendRow(new EntryItem((*i).id, title.remove(re), (*i).author, content, content0, (*i).content, (*i).link, imageOk? (*i).image : "", (*i).feedId, (*i).feedIcon, (*i).feedTitle.remove(re), (*i).annotations, _db->isCacheExistsByEntryId((*i).id), (*i).broadcast==1, (*i).liked==1, (*i).fresh, (*i).read, (*i).saved, (*i).publishedAt )); ++i; }
/** * @brief Key Matrix Read Data * @return Key Pressed Value */ int keyMatrixRead() { uchar i, j = 0; int dataRead = -1; // Scan Rows and Columns for(i = 1; i <= 4; i++) { for(j = 1; j <= 4; j++) { switch(j) { case 1: // Read Key Pressed Column 1 pinDigitalWriteOff(KEYMATRIX_Y1); dataRead = readRow(); pinDigitalWriteOn(KEYMATRIX_Y1); break; case 2: // Read Key Pressed Column 2 pinDigitalWriteOff(KEYMATRIX_Y2); dataRead = readRow(); pinDigitalWriteOn(KEYMATRIX_Y2); break; case 3: // Read Key Pressed Column 3 pinDigitalWriteOff(KEYMATRIX_Y3); dataRead = readRow(); pinDigitalWriteOn(KEYMATRIX_Y3); break; case 4: // Read Key Pressed Column 4 pinDigitalWriteOff(KEYMATRIX_Y4); dataRead = readRow(); pinDigitalWriteOn(KEYMATRIX_Y4); break; } // If key pressed, complete key value if(dataRead != -1) { switch(j) { case 1: dataRead += 0; break; case 2: dataRead += 1; break; case 3: dataRead += 2; break; case 4: dataRead += 3; break; } break; } } // If key pressed, finish if(dataRead != -1) { break; } } return dataRead; }
void MainWindow::on_inflatePushButton_clicked() { QSqlQuery delQuery; delQuery.exec("delete from NormBehaviourLog"); QString seqQuery; if (lv == "BATCHNORM" || lv == "BATCH") { seqQuery = "select timestamp,sensorId,status,trainingNumber from BehaviourLog where sensorID < 61 ORDER BY trainingNumber, timestamp"; } else { seqQuery = "select timestamp,sensorId,status,trainingNumber from BehaviourLog where sensorID < 61 and timestamp between '"; seqQuery += ui->dateFrom->dateTime().toString("yyyy-MM-dd hh:mm:ss"); seqQuery += "' and '"; seqQuery += ui->dateTo->dateTime().toString("yyyy-MM-dd hh:mm:ss") + "' ORDER BY timestamp"; } qDebug() << seqQuery; query.clear(); if (!query.exec(seqQuery)) { qDebug() << seqQuery; QMessageBox msgBox; msgBox.setIcon(QMessageBox::Warning); msgBox.setText("Cannot select from BehaviourLog table!"); msgBox.exec(); return; } numRowsRead = query.numRowsAffected(); numRowsProcessed = 0; numRowsInserted = 0; bool first = true; processed = false; currentDate = QDateTime(QDate(2000,01,01),QTime(0,0,1)); readRow(); while (!processed) { if (first) { first = false; insertNewRow(currentDate,currentSensorId,currentSensorValue,currentTrainingNumber); } else { if ((currentDate > prevDate.addSecs(1)) && (currentTrainingNumber == prevTrainingNumber)) // write n copies of current row 1 sec apart { int n = prevDate.time().msecsTo(currentDate.time()) / 1000; n--; QDateTime insDate = prevDate; for (int i=0;i<n;i++) { insDate = insDate.addSecs(1); insertNewRow(insDate,prevSensorId,prevSensorValue,prevTrainingNumber); } insertNewRow(currentDate,currentSensorId,currentSensorValue, currentTrainingNumber); } else // same dates for two events { insertNewRow(currentDate,currentSensorId,currentSensorValue, currentTrainingNumber); } } readRow(); } qDebug()<< "Rows read : " << numRowsRead; qDebug()<< "Rows processed : " << numRowsProcessed; qDebug()<< "Rows written: " << numRowsInserted; }