void KSecretServiceTest::testItems() { auto NEW_ITEM_NAME = QLatin1Literal("Test Item1"); auto NEW_ITEM_VALUE = QLatin1Literal("highly secret value"); QDateTime testTime = QDateTime::currentDateTime(); KSecrets::Secret secret; secret.setValue(NEW_ITEM_VALUE); auto createRes = collection->createItem(NEW_ITEM_NAME, secret).result(); QVERIFY(createRes); auto foundItems = collection->searchItems(NEW_ITEM_NAME).result(); QVERIFY(foundItems.length() == 1); auto theItem = foundItems.first(); QCOMPARE(theItem->label().result(), NEW_ITEM_NAME); QVERIFY(theItem->createdTime().result() > testTime); QVERIFY(theItem->modifiedTime().result() > testTime); QDateTime oldModifiedTime = theItem->modifiedTime().result(); QVERIFY(theItem->setLabel(NEW_ITEM_NAME).result()); QVERIFY(theItem->modifiedTime().result() == oldModifiedTime); // name was the same so item should have stayed // the same auto NEW_ITEM_SECOND_NAME = QLatin1Literal("Test Item2"); QVERIFY(theItem->setLabel(NEW_ITEM_SECOND_NAME).result()); QCOMPARE(theItem->label().result(), NEW_ITEM_SECOND_NAME); QVERIFY(theItem->modifiedTime().result() > oldModifiedTime); auto theSecret = theItem->getSecret().result(); QCOMPARE(theSecret->value().toString(), NEW_ITEM_VALUE); }
virtual void slaveDone(size32_t slaveIdx, MemoryBuffer &mb) { if (mb.length()) // if 0 implies aborted out from this slave. { offset_t size; mb.read(size); CDateTime modifiedTime(mb); IPartDescriptor *partDesc = newIndexDesc->queryPart(slaveIdx); IPropertyTree &props = partDesc->queryProperties(); props.setPropInt64("@size", size); StringBuffer timeStr; modifiedTime.getString(timeStr); props.setProp("@modified", timeStr.str()); if (!local && 0 == slaveIdx) { mb.read(size); CDateTime modifiedTime(mb); IPartDescriptor *partDesc = newIndexDesc->queryPart(newIndexDesc->numParts()-1); IPropertyTree &props = partDesc->queryProperties(); props.setPropInt64("@size", size); StringBuffer timeStr; modifiedTime.getString(timeStr); props.setProp("@modified", timeStr.str()); } } }
void slaveDone(size32_t slaveIdx, MemoryBuffer &mb) { if (mb.length()) // if 0 implies aborted out from this slave. { rowcount_t slaveProcessed; mb.read(slaveProcessed); recordsProcessed += slaveProcessed; offset_t size, physicalSize; mb.read(size); mb.read(physicalSize); unsigned fileCrc; mb.read(fileCrc); CDateTime modifiedTime(mb); StringBuffer timeStr; modifiedTime.getString(timeStr); IPartDescriptor *partDesc = fileDesc->queryPart(slaveIdx); IPropertyTree &props = partDesc->queryProperties(); props.setPropInt64("@size", size); if (fileDesc->isCompressed()) props.setPropInt64("@compressedSize", physicalSize); props.setPropInt("@fileCrc", fileCrc); props.setProp("@modified", timeStr.str()); } }
OsStatus OsFileLinux::getFileInfo(OsFileInfoBase& fileinfo) const { OsStatus ret = OS_INVALID; struct stat stats; if (stat(mFilename,&stats) == 0) { ret = OS_SUCCESS; fileinfo.mbIsReadOnly = (stats.st_mode & S_IWUSR) == 0; OsTime createTime(stats.st_ctime, 0); fileinfo.mCreateTime = createTime; OsTime modifiedTime(stats.st_mtime, 0); fileinfo.mModifiedTime = modifiedTime; fileinfo.mSize = stats.st_size; } return ret; }
// Check whether the file has changed on disk // by looking at the time stamp bool GLEFileInfo::hasChanged() { QFileInfo fi; QString mainFile(primaryFile()); if (mainFile.isEmpty()) { return false; } fi.setFile(mainFile); if (!fi.isReadable()) { return false; } QDateTime modifiedTime(fi.lastModified()); if (modifiedTime > lastModified) { return true; } else { for (int i = 0; i < filesToMonitor.size(); ++i) { GLEFileData data(filesToMonitor.at(i)); fi.setFile(data.fname); if (fi.isReadable() && fi.lastModified() > data.lastModified) { return true; } } return false; } }
void slaveDone(size32_t slaveIdx, MemoryBuffer &mb) { if (mb.length()) // if 0 implies aborted out from this slave. { offset_t size; mb.read(size); CDateTime modifiedTime(mb); IPartDescriptor *partDesc = patchDesc->queryPart(slaveIdx); IPropertyTree &props = partDesc->queryProperties(); StringBuffer timeStr; modifiedTime.getString(timeStr); props.setProp("@modified", timeStr.str()); unsigned crc; mb.read(crc); props.setPropInt64("@fileCrc", crc); if (!local && 0 == slaveIdx) { IPartDescriptor *partDesc = patchDesc->queryPart(patchDesc->numParts()-1); IPropertyTree &props = partDesc->queryProperties(); mb.read(size); props.setPropInt64("@size", size); CDateTime modifiedTime(mb); StringBuffer timeStr; modifiedTime.getString(timeStr); props.setProp("@modified", timeStr.str()); if (copyTlk) { Owned<IPartDescriptor> tlkDesc = newIndexDesc->getPart(newIndexDesc->numParts()-1); if (partDesc->getCrc(crc)) props.setPropInt64("@fileCrc", crc); props.setProp("@diffFormat", "copy"); } else { mb.read(crc); props.setPropInt64("@fileCrc", crc); props.setProp("@diffFormat", "diffV1"); } } } }
OsStatus OsFileWnt::getFileInfo(OsFileInfoBase& fileinfo) const { OsStatus ret = OS_INVALID; struct stat stats; if (stat(mFilename,&stats) == 0) { ret = OS_SUCCESS; if (stats.st_mode & _S_IWRITE) fileinfo.mbIsReadOnly = FALSE; else fileinfo.mbIsReadOnly = TRUE; OsTime createTime(stats.st_ctime,0); fileinfo.mCreateTime = createTime; OsTime modifiedTime(stats.st_ctime,0); fileinfo.mCreateTime = modifiedTime; fileinfo.mSize = stats.st_size; } return ret; }