chromium/out/Default/gen/third_party/blink/public/mojom/indexeddb/indexeddb.mojom-shared.h

// third_party/blink/public/mojom/indexeddb/indexeddb.mojom-shared.h is auto generated by mojom_bindings_generator.py, do not edit

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef THIRD_PARTY_BLINK_PUBLIC_MOJOM_INDEXEDDB_INDEXEDDB_MOJOM_SHARED_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_INDEXEDDB_INDEXEDDB_MOJOM_SHARED_H_

#include <stdint.h>

#include <functional>
#include <iosfwd>
#include <type_traits>
#include <utility>
#include "mojo/public/cpp/bindings/array_data_view.h"
#include "mojo/public/cpp/bindings/enum_traits.h"
#include "mojo/public/cpp/bindings/interface_data_view.h"
#include "mojo/public/cpp/bindings/lib/bindings_internal.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/map_data_view.h"
#include "mojo/public/cpp/bindings/string_data_view.h"

#include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h"

#include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom-shared-internal.h"
#include "mojo/public/mojom/base/string16.mojom-shared.h"
#include "mojo/public/mojom/base/string16.mojom-shared.h"
#include "mojo/public/mojom/base/time.mojom-shared.h"
#include "third_party/blink/public/mojom/blob/blob.mojom-shared.h"
#include "third_party/blink/public/mojom/file_system_access/file_system_access_transfer_token.mojom-shared.h"
#include "mojo/public/cpp/bindings/lib/interface_serialization.h"
#include "mojo/public/cpp/system/data_pipe.h"


#include "base/component_export.h"




namespace blink::mojom {
class IDBKeyPathDataView;

class IDBKeyRangeDataView;

class IDBIndexMetadataDataView;

class IDBObjectStoreMetadataDataView;

class IDBDatabaseMetadataDataView;

class IDBNameAndVersionDataView;

class IDBIndexKeysDataView;

class IDBFileInfoDataView;

class IDBBlobInfoDataView;

class IDBValueDataView;

class IDBReturnValueDataView;

class IDBErrorDataView;

class IDBCursorValueDataView;

class IDBDatabaseOpenCursorValueDataView;

class IDBKeyDataView;
class IDBKeyPathDataDataView;
class IDBExternalObjectDataView;
class IDBCursorResultDataView;
class IDBTransactionPutResultDataView;
class IDBDatabaseGetResultDataView;
class IDBDatabaseOpenCursorResultDataView;


}  // blink::mojom

namespace mojo {
namespace internal {

template <>
struct MojomTypeTraits<::blink::mojom::IDBKeyPathDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBKeyRangeDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBIndexMetadataDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBObjectStoreMetadataDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBDatabaseMetadataDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBNameAndVersionDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBIndexKeysDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBFileInfoDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBBlobInfoDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBValueDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBReturnValueDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBErrorDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBCursorValueDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBDatabaseOpenCursorValueDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBKeyDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBKeyPathDataDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBExternalObjectDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBCursorResultDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBTransactionPutResultDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBDatabaseGetResultDataView> {};

template <>
struct MojomTypeTraits<::blink::mojom::IDBDatabaseOpenCursorResultDataView> {};

}  // namespace internal
}  // namespace mojo


namespace blinkmojom  // blink::mojom

namespace std {

template <>
struct hash<::blink::mojom::IDBCursorDirection>
    : public mojo::internal::EnumHashImpl<::blink::mojom::IDBCursorDirection> {};

template <>
struct hash<::blink::mojom::IDBDataLoss>
    : public mojo::internal::EnumHashImpl<::blink::mojom::IDBDataLoss> {};

template <>
struct hash<::blink::mojom::IDBKeyType>
    : public mojo::internal::EnumHashImpl<::blink::mojom::IDBKeyType> {};

template <>
struct hash<::blink::mojom::IDBTransactionDurability>
    : public mojo::internal::EnumHashImpl<::blink::mojom::IDBTransactionDurability> {};

template <>
struct hash<::blink::mojom::IDBKeyPathType>
    : public mojo::internal::EnumHashImpl<::blink::mojom::IDBKeyPathType> {};

template <>
struct hash<::blink::mojom::IDBOperationType>
    : public mojo::internal::EnumHashImpl<::blink::mojom::IDBOperationType> {};

template <>
struct hash<::blink::mojom::IDBPutMode>
    : public mojo::internal::EnumHashImpl<::blink::mojom::IDBPutMode> {};

template <>
struct hash<::blink::mojom::IDBTaskType>
    : public mojo::internal::EnumHashImpl<::blink::mojom::IDBTaskType> {};

template <>
struct hash<::blink::mojom::IDBTransactionMode>
    : public mojo::internal::EnumHashImpl<::blink::mojom::IDBTransactionMode> {};

template <>
struct hash<::blink::mojom::IDBException>
    : public mojo::internal::EnumHashImpl<::blink::mojom::IDBException> {};

}  // namespace std

namespace mojo {


namespace internal {

Serializer< ::blink::mojom::IDBCursorDirection, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBDataLoss, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBKeyType, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBTransactionDurability, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBKeyPathType, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBOperationType, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBPutMode, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBTaskType, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBTransactionMode, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBException, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBKeyPathDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBKeyRangeDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBIndexMetadataDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBObjectStoreMetadataDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBDatabaseMetadataDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBNameAndVersionDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBIndexKeysDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBFileInfoDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBBlobInfoDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBValueDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBReturnValueDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBErrorDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBCursorValueDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBDatabaseOpenCursorValueDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBKeyDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBKeyPathDataDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBExternalObjectDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBCursorResultDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBTransactionPutResultDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBDatabaseGetResultDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::blink::mojom::IDBDatabaseOpenCursorResultDataView, MaybeConstUserType>;

}  // namespace internal

}  // namespace mojo


namespace blink::mojom {

inline void IDBKeyPathDataView::GetDataDataView(
    IDBKeyPathDataDataView* output) {}


inline void IDBKeyRangeDataView::GetLowerDataView(
    IDBKeyDataView* output) {}
inline void IDBKeyRangeDataView::GetUpperDataView(
    IDBKeyDataView* output) {}


inline void IDBIndexMetadataDataView::GetNameDataView(
    ::mojo_base::mojom::String16DataView* output) {}
inline void IDBIndexMetadataDataView::GetKeyPathDataView(
    IDBKeyPathDataView* output) {}


inline void IDBObjectStoreMetadataDataView::GetNameDataView(
    ::mojo_base::mojom::String16DataView* output) {}
inline void IDBObjectStoreMetadataDataView::GetKeyPathDataView(
    IDBKeyPathDataView* output) {}
inline void IDBObjectStoreMetadataDataView::GetIndexesDataView(
    mojo::MapDataView<int64_t, IDBIndexMetadataDataView>* output) {}


inline void IDBDatabaseMetadataDataView::GetNameDataView(
    ::mojo_base::mojom::String16DataView* output) {}
inline void IDBDatabaseMetadataDataView::GetObjectStoresDataView(
    mojo::MapDataView<int64_t, IDBObjectStoreMetadataDataView>* output) {}


inline void IDBNameAndVersionDataView::GetNameDataView(
    ::mojo_base::mojom::String16DataView* output) {}


inline void IDBIndexKeysDataView::GetIndexKeysDataView(
    mojo::ArrayDataView<IDBKeyDataView>* output) {}


inline void IDBFileInfoDataView::GetNameDataView(
    ::mojo_base::mojom::String16DataView* output) {}
inline void IDBFileInfoDataView::GetLastModifiedDataView(
    ::mojo_base::mojom::TimeDataView* output) {}


inline void IDBBlobInfoDataView::GetUuidDataView(
    mojo::StringDataView* output) {}
inline void IDBBlobInfoDataView::GetMimeTypeDataView(
    ::mojo_base::mojom::String16DataView* output) {}
inline void IDBBlobInfoDataView::GetFileDataView(
    IDBFileInfoDataView* output) {}


inline void IDBValueDataView::GetBitsDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void IDBValueDataView::GetExternalObjectsDataView(
    mojo::ArrayDataView<IDBExternalObjectDataView>* output) {}


inline void IDBReturnValueDataView::GetValueDataView(
    IDBValueDataView* output) {}
inline void IDBReturnValueDataView::GetPrimaryKeyDataView(
    IDBKeyDataView* output) {}
inline void IDBReturnValueDataView::GetKeyPathDataView(
    IDBKeyPathDataView* output) {}


inline void IDBErrorDataView::GetErrorMessageDataView(
    ::mojo_base::mojom::String16DataView* output) {}


inline void IDBCursorValueDataView::GetKeysDataView(
    mojo::ArrayDataView<IDBKeyDataView>* output) {}
inline void IDBCursorValueDataView::GetPrimaryKeysDataView(
    mojo::ArrayDataView<IDBKeyDataView>* output) {}
inline void IDBCursorValueDataView::GetValuesDataView(
    mojo::ArrayDataView<IDBValueDataView>* output) {}


inline void IDBDatabaseOpenCursorValueDataView::GetKeyDataView(
    IDBKeyDataView* output) {}
inline void IDBDatabaseOpenCursorValueDataView::GetPrimaryKeyDataView(
    IDBKeyDataView* output) {}
inline void IDBDatabaseOpenCursorValueDataView::GetValueDataView(
    IDBValueDataView* output) {}


inline void IDBKeyDataView::GetKeyArrayDataView(
    mojo::ArrayDataView<IDBKeyDataView>* output) const {}
inline void IDBKeyDataView::GetBinaryDataView(
    mojo::ArrayDataView<uint8_t>* output) const {}
inline void IDBKeyDataView::GetStringDataView(
    ::mojo_base::mojom::String16DataView* output) const {}

inline void IDBKeyPathDataDataView::GetStringDataView(
    ::mojo_base::mojom::String16DataView* output) const {}
inline void IDBKeyPathDataDataView::GetStringArrayDataView(
    mojo::ArrayDataView<::mojo_base::mojom::String16DataView>* output) const {}

inline void IDBExternalObjectDataView::GetBlobOrFileDataView(
    IDBBlobInfoDataView* output) const {}

inline void IDBCursorResultDataView::GetErrorResultDataView(
    IDBErrorDataView* output) const {}
inline void IDBCursorResultDataView::GetValuesDataView(
    IDBCursorValueDataView* output) const {}

inline void IDBTransactionPutResultDataView::GetErrorResultDataView(
    IDBErrorDataView* output) const {}
inline void IDBTransactionPutResultDataView::GetKeyDataView(
    IDBKeyDataView* output) const {}

inline void IDBDatabaseGetResultDataView::GetErrorResultDataView(
    IDBErrorDataView* output) const {}
inline void IDBDatabaseGetResultDataView::GetKeyDataView(
    IDBKeyDataView* output) const {}
inline void IDBDatabaseGetResultDataView::GetValueDataView(
    IDBReturnValueDataView* output) const {}

inline void IDBDatabaseOpenCursorResultDataView::GetErrorResultDataView(
    IDBErrorDataView* output) const {}
inline void IDBDatabaseOpenCursorResultDataView::GetValueDataView(
    IDBDatabaseOpenCursorValueDataView* output) const {}


}  // blink::mojom

// Declare TraceFormatTraits for enums, which should be defined in ::perfetto
// namespace.

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::IDBCursorDirection> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::IDBDataLoss> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::IDBKeyType> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::IDBTransactionDurability> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::IDBKeyPathType> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::IDBOperationType> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::IDBPutMode> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::IDBTaskType> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::IDBTransactionMode> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) TraceFormatTraits<::blink::mojom::IDBException> {};

} // namespace perfetto

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_INDEXEDDB_INDEXEDDB_MOJOM_SHARED_H_