本文整理汇总了C++中MemoryObjectStore类的典型用法代码示例。如果您正苦于以下问题:C++ MemoryObjectStore类的具体用法?C++ MemoryObjectStore怎么用?C++ MemoryObjectStore使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了MemoryObjectStore类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: unregisterObjectStore
void MemoryIDBBackingStore::unregisterObjectStore(MemoryObjectStore& objectStore)
{
ASSERT(m_objectStoresByIdentifier.contains(objectStore.info().identifier()));
ASSERT(m_objectStoresByName.contains(objectStore.info().name()));
m_objectStoresByName.remove(objectStore.info().name());
m_objectStoresByIdentifier.remove(objectStore.info().identifier());
}
示例2: removeObjectStoreForVersionChangeAbort
void MemoryIDBBackingStore::removeObjectStoreForVersionChangeAbort(MemoryObjectStore& objectStore)
{
LOG(IndexedDB, "MemoryIDBBackingStore::removeObjectStoreForVersionChangeAbort");
ASSERT(m_objectStoresByIdentifier.contains(objectStore.info().identifier()));
ASSERT(m_objectStoresByIdentifier.get(objectStore.info().identifier()) == &objectStore);
unregisterObjectStore(objectStore);
}
示例3: LOG
IDBError MemoryIDBBackingStore::keyExistsInObjectStore(const IDBResourceIdentifier&, uint64_t objectStoreIdentifier, const IDBKeyData& keyData, bool& keyExists)
{
LOG(IndexedDB, "MemoryIDBBackingStore::keyExistsInObjectStore");
ASSERT(objectStoreIdentifier);
MemoryObjectStore* objectStore = m_objectStoresByIdentifier.get(objectStoreIdentifier);
RELEASE_ASSERT(objectStore);
keyExists = objectStore->containsRecord(keyData);
return { };
}
示例4: addExistingObjectStore
void MemoryBackingStoreTransaction::addExistingObjectStore(MemoryObjectStore& objectStore)
{
LOG(IndexedDB, "MemoryBackingStoreTransaction::addExistingObjectStore");
ASSERT(isWriting());
ASSERT(!m_objectStores.contains(&objectStore));
m_objectStores.add(&objectStore);
objectStore.writeTransactionStarted(*this);
m_originalKeyGenerators.add(&objectStore, objectStore.currentKeyGeneratorValue());
}
示例5: LOG
IDBError MemoryIDBBackingStore::getRecord(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, const IDBKeyRangeData& range, ThreadSafeDataBuffer& outValue)
{
LOG(IndexedDB, "MemoryIDBBackingStore::getRecord");
ASSERT(objectStoreIdentifier);
if (!m_transactions.contains(transactionIdentifier))
return IDBError(IDBDatabaseException::UnknownError, ASCIILiteral("No backing store transaction found to get record"));
MemoryObjectStore* objectStore = m_objectStoresByIdentifier.get(objectStoreIdentifier);
if (!objectStore)
return IDBError(IDBDatabaseException::UnknownError, ASCIILiteral("No backing store object store found"));
outValue = objectStore->valueForKeyRange(range);
return IDBError();
}
示例6: addExistingObjectStore
void MemoryBackingStoreTransaction::addExistingObjectStore(MemoryObjectStore& objectStore)
{
LOG(IndexedDB, "MemoryBackingStoreTransaction::addExistingObjectStore");
ASSERT(isWriting());
ASSERT(!m_objectStores.contains(&objectStore));
m_objectStores.add(&objectStore);
objectStore.writeTransactionStarted(*this);
}
示例7: MemoryCursor
MemoryObjectStoreCursor::MemoryObjectStoreCursor(MemoryObjectStore& objectStore, const IDBCursorInfo& info)
: MemoryCursor(info)
, m_objectStore(objectStore)
{
m_remainingRange = m_info.range();
auto* orderedKeys = objectStore.orderedKeys();
if (!orderedKeys)
return;
setFirstInRemainingRange(*orderedKeys);
}
示例8: addNewObjectStore
void MemoryBackingStoreTransaction::addNewObjectStore(MemoryObjectStore& objectStore)
{
LOG(IndexedDB, "MemoryBackingStoreTransaction::addNewObjectStore()");
ASSERT(isVersionChange());
ASSERT(!m_objectStores.contains(&objectStore));
m_objectStores.add(&objectStore);
m_versionChangeAddedObjectStores.add(&objectStore);
objectStore.writeTransactionStarted(*this);
}
示例9: MemoryCursor
MemoryObjectStoreCursor::MemoryObjectStoreCursor(MemoryObjectStore& objectStore, const IDBCursorInfo& info)
: MemoryCursor(info)
, m_objectStore(objectStore)
, m_remainingRange(info.range())
{
LOG(IndexedDB, "MemoryObjectStoreCursor::MemoryObjectStoreCursor %s", info.range().loggingString().utf8().data());
auto* orderedKeys = objectStore.orderedKeys();
if (!orderedKeys)
return;
setFirstInRemainingRange(*orderedKeys);
}
示例10: recordValueChanged
void MemoryBackingStoreTransaction::recordValueChanged(MemoryObjectStore& objectStore, const IDBKeyData& key)
{
ASSERT(m_objectStores.contains(&objectStore));
if (m_isAborting)
return;
auto originalAddResult = m_originalValues.add(&objectStore, nullptr);
if (originalAddResult.isNewEntry)
originalAddResult.iterator->value = std::make_unique<KeyValueMap>();
auto* map = originalAddResult.iterator->value.get();
auto addResult = map->add(key, ThreadSafeDataBuffer());
if (!addResult.isNewEntry)
return;
addResult.iterator->value = objectStore.valueForKey(key);
}