#pragma once
#if ENABLE(INDEXED_DATABASE)
#include <wtf/EnumTraits.h>
namespace WebCore {
namespace IndexedDB {
enum class TransactionState {
Active,
Inactive,
Committing,
Aborting,
Finished,
};
enum class CursorDirection {
Next,
Nextunique,
Prev,
Prevunique,
};
const unsigned CursorDirectionMaximum = 3;
enum class CursorType : bool {
KeyAndValue = 0,
KeyOnly = 1,
};
const unsigned CursorTypeMaximum = 1;
enum class CursorSource : bool {
Index,
ObjectStore,
};
enum class VersionNullness {
Null,
NonNull,
};
enum class ObjectStoreOverwriteMode {
Overwrite,
OverwriteForCursor,
NoOverwrite,
};
enum class IndexRecordType : bool {
Key,
Value,
};
enum class ObjectStoreRecordType {
ValueOnly,
KeyOnly,
};
enum KeyType {
Max = -1,
Invalid = 0,
Array,
Binary,
String,
Date,
Number,
Min,
};
enum class RequestType {
Open,
Delete,
Other,
};
enum class GetAllType {
Keys,
Values,
};
enum class ConnectionClosedOnBehalfOfServer : bool { No, Yes };
enum class CursorIterateOption : bool {
DoNotReply,
Reply,
};
}
}
namespace WTF {
template<> struct EnumTraits<WebCore::IndexedDB::CursorDirection> {
using values = EnumValues<
WebCore::IndexedDB::CursorDirection,
WebCore::IndexedDB::CursorDirection::Next,
WebCore::IndexedDB::CursorDirection::Nextunique,
WebCore::IndexedDB::CursorDirection::Prev,
WebCore::IndexedDB::CursorDirection::Prevunique
>;
};
template<> struct EnumTraits<WebCore::IndexedDB::KeyType> {
using values = EnumValues<
WebCore::IndexedDB::KeyType,
WebCore::IndexedDB::KeyType::Max,
WebCore::IndexedDB::KeyType::Invalid,
WebCore::IndexedDB::KeyType::Array,
WebCore::IndexedDB::KeyType::Binary,
WebCore::IndexedDB::KeyType::String,
WebCore::IndexedDB::KeyType::Date,
WebCore::IndexedDB::KeyType::Number,
WebCore::IndexedDB::KeyType::Min
>;
};
template<> struct EnumTraits<WebCore::IndexedDB::ObjectStoreOverwriteMode> {
using values = EnumValues<
WebCore::IndexedDB::ObjectStoreOverwriteMode,
WebCore::IndexedDB::ObjectStoreOverwriteMode::Overwrite,
WebCore::IndexedDB::ObjectStoreOverwriteMode::OverwriteForCursor,
WebCore::IndexedDB::ObjectStoreOverwriteMode::NoOverwrite
>;
};
template<> struct EnumTraits<WebCore::IndexedDB::RequestType> {
using values = EnumValues<
WebCore::IndexedDB::RequestType,
WebCore::IndexedDB::RequestType::Open,
WebCore::IndexedDB::RequestType::Delete,
WebCore::IndexedDB::RequestType::Other
>;
};
}
#endif // ENABLED(INDEXED_DATABASE)