#ifndef SERVICES_TRACING_PUBLIC_MOJOM_PERFETTO_SERVICE_MOJOM_SHARED_H_
#define SERVICES_TRACING_PUBLIC_MOJOM_PERFETTO_SERVICE_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 "services/tracing/public/mojom/perfetto_service.mojom-shared-internal.h"
#include "mojo/public/mojom/base/byte_string.mojom-shared.h"
#include "mojo/public/mojom/base/token.mojom-shared.h"
#include "mojo/public/mojom/base/file.mojom-shared.h"
#include "mojo/public/mojom/base/shared_memory.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 tracing::mojom {
class ChunksToMoveDataView;
class ChunkPatchDataView;
class ChunksToPatchDataView;
class CommitDataRequestDataView;
class ChromeConfigDataView;
class ConsoleConfigDataView;
class InterceptorConfigDataView;
class DataSourceConfigDataView;
class DataSourceRegistrationDataView;
class BufferConfigDataView;
class DataSourceDataView;
class PerfettoBuiltinDataSourceDataView;
class IncrementalStateConfigDataView;
class TraceConfigDataView;
}
namespace mojo {
namespace internal {
template <>
struct MojomTypeTraits<::tracing::mojom::ChunksToMoveDataView> { … };
template <>
struct MojomTypeTraits<::tracing::mojom::ChunkPatchDataView> { … };
template <>
struct MojomTypeTraits<::tracing::mojom::ChunksToPatchDataView> { … };
template <>
struct MojomTypeTraits<::tracing::mojom::CommitDataRequestDataView> { … };
template <>
struct MojomTypeTraits<::tracing::mojom::ChromeConfigDataView> { … };
template <>
struct MojomTypeTraits<::tracing::mojom::ConsoleConfigDataView> { … };
template <>
struct MojomTypeTraits<::tracing::mojom::InterceptorConfigDataView> { … };
template <>
struct MojomTypeTraits<::tracing::mojom::DataSourceConfigDataView> { … };
template <>
struct MojomTypeTraits<::tracing::mojom::DataSourceRegistrationDataView> { … };
template <>
struct MojomTypeTraits<::tracing::mojom::BufferConfigDataView> { … };
template <>
struct MojomTypeTraits<::tracing::mojom::DataSourceDataView> { … };
template <>
struct MojomTypeTraits<::tracing::mojom::PerfettoBuiltinDataSourceDataView> { … };
template <>
struct MojomTypeTraits<::tracing::mojom::IncrementalStateConfigDataView> { … };
template <>
struct MojomTypeTraits<::tracing::mojom::TraceConfigDataView> { … };
}
}
namespace tracingmojom
namespace std {
template <>
struct hash<::tracing::mojom::ConsoleOutput>
: public mojo::internal::EnumHashImpl<::tracing::mojom::ConsoleOutput> { … };
template <>
struct hash<::tracing::mojom::BufferFillPolicy>
: public mojo::internal::EnumHashImpl<::tracing::mojom::BufferFillPolicy> { … };
template <>
struct hash<::tracing::mojom::TracingClientPriority>
: public mojo::internal::EnumHashImpl<::tracing::mojom::TracingClientPriority> { … };
}
namespace mojo {
namespace internal {
Serializer< ::tracing::mojom::ConsoleOutput, MaybeConstUserType>;
}
namespace internal {
Serializer< ::tracing::mojom::BufferFillPolicy, MaybeConstUserType>;
}
namespace internal {
Serializer< ::tracing::mojom::TracingClientPriority, MaybeConstUserType>;
}
namespace internal {
Serializer< ::tracing::mojom::ChunksToMoveDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::tracing::mojom::ChunkPatchDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::tracing::mojom::ChunksToPatchDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::tracing::mojom::CommitDataRequestDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::tracing::mojom::ChromeConfigDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::tracing::mojom::ConsoleConfigDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::tracing::mojom::InterceptorConfigDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::tracing::mojom::DataSourceConfigDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::tracing::mojom::DataSourceRegistrationDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::tracing::mojom::BufferConfigDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::tracing::mojom::DataSourceDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::tracing::mojom::PerfettoBuiltinDataSourceDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::tracing::mojom::IncrementalStateConfigDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::tracing::mojom::TraceConfigDataView, MaybeConstUserType>;
}
}
namespace tracing::mojom {
inline void ChunkPatchDataView::GetDataDataView(
::mojo_base::mojom::ByteStringDataView* output) { … }
inline void ChunksToPatchDataView::GetPatchesDataView(
mojo::ArrayDataView<ChunkPatchDataView>* output) { … }
inline void CommitDataRequestDataView::GetChunksToMoveDataView(
mojo::ArrayDataView<ChunksToMoveDataView>* output) { … }
inline void CommitDataRequestDataView::GetChunksToPatchDataView(
mojo::ArrayDataView<ChunksToPatchDataView>* output) { … }
inline void ChromeConfigDataView::GetTraceConfigDataView(
mojo::StringDataView* output) { … }
inline void InterceptorConfigDataView::GetNameDataView(
mojo::StringDataView* output) { … }
inline void InterceptorConfigDataView::GetConsoleConfigDataView(
ConsoleConfigDataView* output) { … }
inline void DataSourceConfigDataView::GetNameDataView(
mojo::StringDataView* output) { … }
inline void DataSourceConfigDataView::GetChromeConfigDataView(
ChromeConfigDataView* output) { … }
inline void DataSourceConfigDataView::GetInterceptorConfigDataView(
InterceptorConfigDataView* output) { … }
inline void DataSourceConfigDataView::GetLegacyConfigDataView(
mojo::StringDataView* output) { … }
inline void DataSourceConfigDataView::GetTrackEventConfigRawDataView(
::mojo_base::mojom::ByteStringDataView* output) { … }
inline void DataSourceConfigDataView::GetEtwConfigRawDataView(
::mojo_base::mojom::ByteStringDataView* output) { … }
inline void DataSourceRegistrationDataView::GetNameDataView(
mojo::StringDataView* output) { … }
inline void DataSourceDataView::GetConfigDataView(
DataSourceConfigDataView* output) { … }
inline void DataSourceDataView::GetProducerNameFilterDataView(
mojo::ArrayDataView<mojo::StringDataView>* output) { … }
inline void TraceConfigDataView::GetDataSourcesDataView(
mojo::ArrayDataView<DataSourceDataView>* output) { … }
inline void TraceConfigDataView::GetPerfettoBuiltinDataSourceDataView(
PerfettoBuiltinDataSourceDataView* output) { … }
inline void TraceConfigDataView::GetBuffersDataView(
mojo::ArrayDataView<BufferConfigDataView>* output) { … }
inline void TraceConfigDataView::GetIncrementalStateConfigDataView(
IncrementalStateConfigDataView* output) { … }
inline void TraceConfigDataView::GetTraceUuidDataView(
::mojo_base::mojom::TokenDataView* output) { … }
}
namespace perfetto {
template <>
struct COMPONENT_EXPORT(TRACING_MOJOM_SHARED) TraceFormatTraits<::tracing::mojom::ConsoleOutput> { … };
}
namespace perfetto {
template <>
struct COMPONENT_EXPORT(TRACING_MOJOM_SHARED) TraceFormatTraits<::tracing::mojom::BufferFillPolicy> { … };
}
namespace perfetto {
template <>
struct COMPONENT_EXPORT(TRACING_MOJOM_SHARED) TraceFormatTraits<::tracing::mojom::TracingClientPriority> { … };
}
#endif