blob: 54e12b6564ca243fc0093d1daae6407243043957 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/common/indexed_db/indexed_db_enum_traits.h"
using indexed_db::mojom::CursorDirection;
using indexed_db::mojom::DataLoss;
using indexed_db::mojom::OperationType;
using indexed_db::mojom::PutMode;
using indexed_db::mojom::TaskType;
using indexed_db::mojom::TransactionMode;
namespace mojo {
// static
CursorDirection
EnumTraits<CursorDirection, blink::WebIDBCursorDirection>::ToMojom(
blink::WebIDBCursorDirection input) {
switch (input) {
case blink::WebIDBCursorDirectionNext:
return CursorDirection::Next;
case blink::WebIDBCursorDirectionNextNoDuplicate:
return CursorDirection::NextNoDuplicate;
case blink::WebIDBCursorDirectionPrev:
return CursorDirection::Prev;
case blink::WebIDBCursorDirectionPrevNoDuplicate:
return CursorDirection::PrevNoDuplicate;
}
NOTREACHED();
return CursorDirection::Next;
}
// static
bool EnumTraits<CursorDirection, blink::WebIDBCursorDirection>::FromMojom(
CursorDirection input,
blink::WebIDBCursorDirection* output) {
switch (input) {
case CursorDirection::Next:
*output = blink::WebIDBCursorDirectionNext;
return true;
case CursorDirection::NextNoDuplicate:
*output = blink::WebIDBCursorDirectionNextNoDuplicate;
return true;
case CursorDirection::Prev:
*output = blink::WebIDBCursorDirectionPrev;
return true;
case CursorDirection::PrevNoDuplicate:
*output = blink::WebIDBCursorDirectionPrevNoDuplicate;
return true;
}
return false;
}
// static
DataLoss EnumTraits<DataLoss, blink::WebIDBDataLoss>::ToMojom(
blink::WebIDBDataLoss input) {
switch (input) {
case blink::WebIDBDataLossNone:
return DataLoss::None;
case blink::WebIDBDataLossTotal:
return DataLoss::Total;
}
NOTREACHED();
return DataLoss::None;
}
// static
bool EnumTraits<DataLoss, blink::WebIDBDataLoss>::FromMojom(
DataLoss input,
blink::WebIDBDataLoss* output) {
switch (input) {
case DataLoss::None:
*output = blink::WebIDBDataLossNone;
return true;
case DataLoss::Total:
*output = blink::WebIDBDataLossTotal;
return true;
}
return false;
}
// static
OperationType EnumTraits<OperationType, blink::WebIDBOperationType>::ToMojom(
blink::WebIDBOperationType input) {
switch (input) {
case blink::WebIDBAdd:
return OperationType::Add;
case blink::WebIDBPut:
return OperationType::Put;
case blink::WebIDBDelete:
return OperationType::Delete;
case blink::WebIDBClear:
return OperationType::Clear;
case blink::WebIDBOperationTypeCount:
// WebIDBOperationTypeCount is not a valid option.
break;
}
NOTREACHED();
return OperationType::Add;
}
// static
bool EnumTraits<OperationType, blink::WebIDBOperationType>::FromMojom(
OperationType input,
blink::WebIDBOperationType* output) {
switch (input) {
case OperationType::Add:
*output = blink::WebIDBAdd;
return true;
case OperationType::Put:
*output = blink::WebIDBPut;
return true;
case OperationType::Delete:
*output = blink::WebIDBDelete;
return true;
case OperationType::Clear:
*output = blink::WebIDBClear;
return true;
}
return false;
}
// static
PutMode EnumTraits<PutMode, blink::WebIDBPutMode>::ToMojom(
blink::WebIDBPutMode input) {
switch (input) {
case blink::WebIDBPutModeAddOrUpdate:
return PutMode::AddOrUpdate;
case blink::WebIDBPutModeAddOnly:
return PutMode::AddOnly;
case blink::WebIDBPutModeCursorUpdate:
return PutMode::CursorUpdate;
}
NOTREACHED();
return PutMode::AddOrUpdate;
}
// static
bool EnumTraits<PutMode, blink::WebIDBPutMode>::FromMojom(
PutMode input,
blink::WebIDBPutMode* output) {
switch (input) {
case PutMode::AddOrUpdate:
*output = blink::WebIDBPutModeAddOrUpdate;
return true;
case PutMode::AddOnly:
*output = blink::WebIDBPutModeAddOnly;
return true;
case PutMode::CursorUpdate:
*output = blink::WebIDBPutModeCursorUpdate;
return true;
}
return false;
}
// static
TaskType EnumTraits<TaskType, blink::WebIDBTaskType>::ToMojom(
blink::WebIDBTaskType input) {
switch (input) {
case blink::WebIDBTaskTypeNormal:
return TaskType::Normal;
case blink::WebIDBTaskTypePreemptive:
return TaskType::Preemptive;
}
NOTREACHED();
return TaskType::Normal;
}
// static
bool EnumTraits<TaskType, blink::WebIDBTaskType>::FromMojom(
TaskType input,
blink::WebIDBTaskType* output) {
switch (input) {
case TaskType::Normal:
*output = blink::WebIDBTaskTypeNormal;
return true;
case TaskType::Preemptive:
*output = blink::WebIDBTaskTypePreemptive;
return true;
}
return false;
}
// static
TransactionMode
EnumTraits<TransactionMode, blink::WebIDBTransactionMode>::ToMojom(
blink::WebIDBTransactionMode input) {
switch (input) {
case blink::WebIDBTransactionModeReadOnly:
return TransactionMode::ReadOnly;
case blink::WebIDBTransactionModeReadWrite:
return TransactionMode::ReadWrite;
case blink::WebIDBTransactionModeVersionChange:
return TransactionMode::VersionChange;
}
NOTREACHED();
return TransactionMode::ReadOnly;
}
// static
bool EnumTraits<TransactionMode, blink::WebIDBTransactionMode>::FromMojom(
TransactionMode input,
blink::WebIDBTransactionMode* output) {
switch (input) {
case TransactionMode::ReadOnly:
*output = blink::WebIDBTransactionModeReadOnly;
return true;
case TransactionMode::ReadWrite:
*output = blink::WebIDBTransactionModeReadWrite;
return true;
case TransactionMode::VersionChange:
*output = blink::WebIDBTransactionModeVersionChange;
return true;
}
return false;
}
} // namespace mojo