#ifndef COMPONENTS_SERVICES_STORAGE_PRIVILEGED_MOJOM_INDEXED_DB_INTERNALS_TYPES_MOJOM_SHARED_H_
#define COMPONENTS_SERVICES_STORAGE_PRIVILEGED_MOJOM_INDEXED_DB_INTERNALS_TYPES_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 "components/services/storage/privileged/mojom/indexed_db_internals_types.mojom-shared-internal.h"
#include "components/services/storage/privileged/mojom/bucket_client_info.mojom-shared.h"
#include "components/services/storage/public/mojom/buckets/bucket_locator.mojom-shared.h"
#include "mojo/public/mojom/base/file_path.mojom-shared.h"
#include "mojo/public/mojom/base/string16.mojom-shared.h"
#include "mojo/public/mojom/base/time.mojom-shared.h"
#include "services/network/public/mojom/schemeful_site.mojom-shared.h"
#include "url/mojom/origin.mojom-shared.h"
namespace storage::mojom {
class IdbOriginMetadataDataView;
class IdbStorageKeyMetadataDataView;
class IdbBucketMetadataDataView;
class IdbDatabaseMetadataDataView;
class IdbTransactionMetadataDataView;
class IdbTransactionMetadataStateHistoryDataView;
}
namespace mojo {
namespace internal {
template <>
struct MojomTypeTraits<::storage::mojom::IdbOriginMetadataDataView> { … };
template <>
struct MojomTypeTraits<::storage::mojom::IdbStorageKeyMetadataDataView> { … };
template <>
struct MojomTypeTraits<::storage::mojom::IdbBucketMetadataDataView> { … };
template <>
struct MojomTypeTraits<::storage::mojom::IdbDatabaseMetadataDataView> { … };
template <>
struct MojomTypeTraits<::storage::mojom::IdbTransactionMetadataDataView> { … };
template <>
struct MojomTypeTraits<::storage::mojom::IdbTransactionMetadataStateHistoryDataView> { … };
}
}
namespace storage::mojom {
enum class IdbTransactionMode : int32_t { … };
std::ostream& operator<<(std::ostream& os, IdbTransactionMode value);
inline bool IsKnownEnumValue(IdbTransactionMode value) { … }
enum class IdbTransactionState : int32_t { … };
std::ostream& operator<<(std::ostream& os, IdbTransactionState value);
inline bool IsKnownEnumValue(IdbTransactionState value) { … }
class IdbOriginMetadataDataView { … };
class IdbStorageKeyMetadataDataView { … };
class IdbBucketMetadataDataView { … };
class IdbDatabaseMetadataDataView { … };
class IdbTransactionMetadataDataView { … };
class IdbTransactionMetadataStateHistoryDataView { … };
}
namespace std {
template <>
struct hash<::storage::mojom::IdbTransactionMode>
: public mojo::internal::EnumHashImpl<::storage::mojom::IdbTransactionMode> { … };
template <>
struct hash<::storage::mojom::IdbTransactionState>
: public mojo::internal::EnumHashImpl<::storage::mojom::IdbTransactionState> { … };
}
namespace mojo {
namespace internal {
Serializer< ::storage::mojom::IdbTransactionMode, MaybeConstUserType>;
}
namespace internal {
Serializer< ::storage::mojom::IdbTransactionState, MaybeConstUserType>;
}
namespace internal {
Serializer< ::storage::mojom::IdbOriginMetadataDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::storage::mojom::IdbStorageKeyMetadataDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::storage::mojom::IdbBucketMetadataDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::storage::mojom::IdbDatabaseMetadataDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::storage::mojom::IdbTransactionMetadataDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::storage::mojom::IdbTransactionMetadataStateHistoryDataView, MaybeConstUserType>;
}
}
namespace storage::mojom {
inline void IdbOriginMetadataDataView::GetOriginDataView(
::url::mojom::OriginDataView* output) { … }
inline void IdbOriginMetadataDataView::GetStorageKeysDataView(
mojo::ArrayDataView<IdbStorageKeyMetadataDataView>* output) { … }
inline void IdbStorageKeyMetadataDataView::GetTopLevelSiteDataView(
::network::mojom::SchemefulSiteDataView* output) { … }
inline void IdbStorageKeyMetadataDataView::GetSerializedStorageKeyDataView(
mojo::StringDataView* output) { … }
inline void IdbStorageKeyMetadataDataView::GetBucketsDataView(
mojo::ArrayDataView<IdbBucketMetadataDataView>* output) { … }
inline void IdbBucketMetadataDataView::GetBucketLocatorDataView(
::storage::mojom::BucketLocatorDataView* output) { … }
inline void IdbBucketMetadataDataView::GetNameDataView(
mojo::StringDataView* output) { … }
inline void IdbBucketMetadataDataView::GetLastModifiedDataView(
::mojo_base::mojom::TimeDataView* output) { … }
inline void IdbBucketMetadataDataView::GetPathsDataView(
mojo::ArrayDataView<::mojo_base::mojom::FilePathDataView>* output) { … }
inline void IdbBucketMetadataDataView::GetDatabasesDataView(
mojo::ArrayDataView<IdbDatabaseMetadataDataView>* output) { … }
inline void IdbBucketMetadataDataView::GetClientsDataView(
mojo::ArrayDataView<::storage::mojom::BucketClientInfoDataView>* output) { … }
inline void IdbDatabaseMetadataDataView::GetNameDataView(
::mojo_base::mojom::String16DataView* output) { … }
inline void IdbDatabaseMetadataDataView::GetTransactionsDataView(
mojo::ArrayDataView<IdbTransactionMetadataDataView>* output) { … }
inline void IdbTransactionMetadataDataView::GetClientTokenDataView(
mojo::StringDataView* output) { … }
inline void IdbTransactionMetadataDataView::GetScopeDataView(
mojo::ArrayDataView<::mojo_base::mojom::String16DataView>* output) { … }
inline void IdbTransactionMetadataDataView::GetStateHistoryDataView(
mojo::ArrayDataView<IdbTransactionMetadataStateHistoryDataView>* output) { … }
}
namespace perfetto {
template <>
struct TraceFormatTraits<::storage::mojom::IdbTransactionMode> { … };
}
namespace perfetto {
template <>
struct TraceFormatTraits<::storage::mojom::IdbTransactionState> { … };
}
#endif