chromium/out/Default/gen/services/tracing/public/mojom/perfetto_service.mojom-shared.h

// services/tracing/public/mojom/perfetto_service.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 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;



}  // tracing::mojom

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 internal
}  // namespace mojo


namespace tracingmojom  // tracing::mojom

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 std

namespace mojo {


namespace internal {

Serializer< ::tracing::mojom::ConsoleOutput, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::tracing::mojom::BufferFillPolicy, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::tracing::mojom::TracingClientPriority, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::tracing::mojom::ChunksToMoveDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::tracing::mojom::ChunkPatchDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::tracing::mojom::ChunksToPatchDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::tracing::mojom::CommitDataRequestDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::tracing::mojom::ChromeConfigDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::tracing::mojom::ConsoleConfigDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::tracing::mojom::InterceptorConfigDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::tracing::mojom::DataSourceConfigDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::tracing::mojom::DataSourceRegistrationDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::tracing::mojom::BufferConfigDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::tracing::mojom::DataSourceDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::tracing::mojom::PerfettoBuiltinDataSourceDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::tracing::mojom::IncrementalStateConfigDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::tracing::mojom::TraceConfigDataView, MaybeConstUserType>;

}  // namespace internal

}  // namespace mojo


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) {}



}  // tracing::mojom

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

namespace perfetto {

template <>
struct COMPONENT_EXPORT(TRACING_MOJOM_SHARED) TraceFormatTraits<::tracing::mojom::ConsoleOutput> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(TRACING_MOJOM_SHARED) TraceFormatTraits<::tracing::mojom::BufferFillPolicy> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(TRACING_MOJOM_SHARED) TraceFormatTraits<::tracing::mojom::TracingClientPriority> {};

} // namespace perfetto

#endif  // SERVICES_TRACING_PUBLIC_MOJOM_PERFETTO_SERVICE_MOJOM_SHARED_H_