本文整理汇总了C++中MemoryObjectStore::setKeyGeneratorValue方法的典型用法代码示例。如果您正苦于以下问题:C++ MemoryObjectStore::setKeyGeneratorValue方法的具体用法?C++ MemoryObjectStore::setKeyGeneratorValue怎么用?C++ MemoryObjectStore::setKeyGeneratorValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MemoryObjectStore
的用法示例。
在下文中一共展示了MemoryObjectStore::setKeyGeneratorValue方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: revertGeneratedKeyNumber
IDBError MemoryIDBBackingStore::revertGeneratedKeyNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t keyNumber)
{
LOG(IndexedDB, "MemoryIDBBackingStore::revertGeneratedKeyNumber");
ASSERT(objectStoreIdentifier);
ASSERT_UNUSED(transactionIdentifier, m_transactions.contains(transactionIdentifier));
ASSERT_UNUSED(transactionIdentifier, m_transactions.get(transactionIdentifier)->isWriting());
MemoryObjectStore* objectStore = m_objectStoresByIdentifier.get(objectStoreIdentifier);
RELEASE_ASSERT(objectStore);
objectStore->setKeyGeneratorValue(keyNumber);
return { };
}
示例2: generateKeyNumber
IDBError MemoryIDBBackingStore::generateKeyNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t& keyNumber)
{
LOG(IndexedDB, "MemoryIDBBackingStore::generateKeyNumber");
ASSERT(objectStoreIdentifier);
ASSERT_UNUSED(transactionIdentifier, m_transactions.contains(transactionIdentifier));
ASSERT_UNUSED(transactionIdentifier, m_transactions.get(transactionIdentifier)->isWriting());
MemoryObjectStore* objectStore = m_objectStoresByIdentifier.get(objectStoreIdentifier);
RELEASE_ASSERT(objectStore);
keyNumber = objectStore->currentKeyGeneratorValue();
if (keyNumber > maxGeneratedKeyValue)
return { IDBDatabaseException::ConstraintError, "Cannot generate new key value over 2^53 for object store operation" };
objectStore->setKeyGeneratorValue(keyNumber + 1);
return { };
}
示例3: maybeUpdateKeyGeneratorNumber
IDBError MemoryIDBBackingStore::maybeUpdateKeyGeneratorNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, double newKeyNumber)
{
LOG(IndexedDB, "MemoryIDBBackingStore::maybeUpdateKeyGeneratorNumber");
ASSERT(objectStoreIdentifier);
ASSERT_UNUSED(transactionIdentifier, m_transactions.contains(transactionIdentifier));
ASSERT_UNUSED(transactionIdentifier, m_transactions.get(transactionIdentifier)->isWriting());
MemoryObjectStore* objectStore = m_objectStoresByIdentifier.get(objectStoreIdentifier);
RELEASE_ASSERT(objectStore);
if (newKeyNumber < objectStore->currentKeyGeneratorValue())
return { };
uint64_t newKeyInteger(newKeyNumber);
if (newKeyInteger <= uint64_t(newKeyNumber))
++newKeyInteger;
ASSERT(newKeyInteger > uint64_t(newKeyNumber));
objectStore->setKeyGeneratorValue(newKeyInteger);
return { };
}