IDBIndexWriterLevelDB.h [plain text]
#ifndef IDBIndexWriterLevelDB_h
#define IDBIndexWriterLevelDB_h
#include "IDBBackingStoreLevelDB.h"
#include "IDBDatabaseBackend.h"
#include "IDBDatabaseMetadata.h"
#include <wtf/RefCounted.h>
#if ENABLE(INDEXED_DATABASE)
#if USE(LEVELDB)
namespace WebCore {
typedef Vector<RefPtr<IDBKey>> IndexKeys;
class IDBIndexWriterLevelDB : public RefCounted<IDBIndexWriterLevelDB> {
public:
static PassRefPtr<IDBIndexWriterLevelDB> create(const IDBIndexMetadata& indexMetadata, const IndexKeys& indexKeys)
{
return adoptRef(new IDBIndexWriterLevelDB(indexMetadata, indexKeys));
}
bool verifyIndexKeys(IDBBackingStoreLevelDB&, IDBBackingStoreTransactionLevelDB&, int64_t databaseId, int64_t objectStoreId, int64_t indexId, bool& canAddKeys, const IDBKey* primaryKey = 0, String* errorMessage = 0) const WARN_UNUSED_RETURN;
void writeIndexKeys(const IDBRecordIdentifier*, IDBBackingStoreLevelDB&, IDBBackingStoreTransactionLevelDB&, int64_t databaseId, int64_t objectStoreId) const;
private:
IDBIndexWriterLevelDB(const IDBIndexMetadata&, const IndexKeys&);
bool addingKeyAllowed(IDBBackingStoreLevelDB&, IDBBackingStoreTransactionLevelDB&, int64_t databaseId, int64_t objectStoreId, int64_t indexId, const IDBKey* indexKey, const IDBKey* primaryKey, bool& allowed) const WARN_UNUSED_RETURN;
const IDBIndexMetadata m_indexMetadata;
IndexKeys m_indexKeys;
};
}
#endif // #if USE(LEVELDB)
#endif // ENABLE(INDEXED_DATABASE)
#endif // IDBIndexWriterLevelDB_h