//
// Copyright (C) 2019 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated from file protos/perfetto/trace/interned_data/interned_data.proto (package perfetto.protos, syntax proto2)
/* eslint-disable */

import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1";
import type { NetworkPacketContext } from "../android/network_trace_pb";
import { file_protos_perfetto_trace_android_network_trace } from "../android/network_trace_pb";
import type { InternedV8Isolate, InternedV8JsFunction, InternedV8JsScript, InternedV8String, InternedV8WasmScript } from "../chrome/v8_pb";
import { file_protos_perfetto_trace_chrome_v8 } from "../chrome/v8_pb";
import type { InternedGpuRenderStageSpecification, InternedGraphicsContext } from "../gpu/gpu_render_stage_event_pb";
import { file_protos_perfetto_trace_gpu_gpu_render_stage_event } from "../gpu/gpu_render_stage_event_pb";
import type { HistogramName } from "../track_event/chrome_histogram_sample_pb";
import { file_protos_perfetto_trace_track_event_chrome_histogram_sample } from "../track_event/chrome_histogram_sample_pb";
import type { DebugAnnotationName, DebugAnnotationValueTypeName } from "../track_event/debug_annotation_pb";
import { file_protos_perfetto_trace_track_event_debug_annotation } from "../track_event/debug_annotation_pb";
import type { LogMessageBody } from "../track_event/log_message_pb";
import { file_protos_perfetto_trace_track_event_log_message } from "../track_event/log_message_pb";
import type { EventCategory, EventName } from "../track_event/track_event_pb";
import { file_protos_perfetto_trace_track_event_track_event } from "../track_event/track_event_pb";
import type { SourceLocation, UnsymbolizedSourceLocation } from "../track_event/source_location_pb";
import { file_protos_perfetto_trace_track_event_source_location } from "../track_event/source_location_pb";
import type { Callstack, Frame, InternedString, Mapping, ProfiledFrameSymbols } from "../profiling/profile_common_pb";
import { file_protos_perfetto_trace_profiling_profile_common } from "../profiling/profile_common_pb";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file protos/perfetto/trace/interned_data/interned_data.proto.
 */
export const file_protos_perfetto_trace_interned_data_interned_data: GenFile = /*@__PURE__*/
  fileDesc("Cjdwcm90b3MvcGVyZmV0dG8vdHJhY2UvaW50ZXJuZWRfZGF0YS9pbnRlcm5lZF9kYXRhLnByb3RvEg9wZXJmZXR0by5wcm90b3MiihAKDEludGVybmVkRGF0YRI4ChBldmVudF9jYXRlZ29yaWVzGAEgAygLMh4ucGVyZmV0dG8ucHJvdG9zLkV2ZW50Q2F0ZWdvcnkSLwoLZXZlbnRfbmFtZXMYAiADKAsyGi5wZXJmZXR0by5wcm90b3MuRXZlbnROYW1lEkQKFmRlYnVnX2Fubm90YXRpb25fbmFtZXMYAyADKAsyJC5wZXJmZXR0by5wcm90b3MuRGVidWdBbm5vdGF0aW9uTmFtZRJYCiFkZWJ1Z19hbm5vdGF0aW9uX3ZhbHVlX3R5cGVfbmFtZXMYGyADKAsyLS5wZXJmZXR0by5wcm90b3MuRGVidWdBbm5vdGF0aW9uVmFsdWVUeXBlTmFtZRI5ChBzb3VyY2VfbG9jYXRpb25zGAQgAygLMh8ucGVyZmV0dG8ucHJvdG9zLlNvdXJjZUxvY2F0aW9uElIKHXVuc3ltYm9saXplZF9zb3VyY2VfbG9jYXRpb25zGBwgAygLMisucGVyZmV0dG8ucHJvdG9zLlVuc3ltYm9saXplZFNvdXJjZUxvY2F0aW9uEjkKEGxvZ19tZXNzYWdlX2JvZHkYFCADKAsyHy5wZXJmZXR0by5wcm90b3MuTG9nTWVzc2FnZUJvZHkSNwoPaGlzdG9ncmFtX25hbWVzGBkgAygLMh4ucGVyZmV0dG8ucHJvdG9zLkhpc3RvZ3JhbU5hbWUSMgoJYnVpbGRfaWRzGBAgAygLMh8ucGVyZmV0dG8ucHJvdG9zLkludGVybmVkU3RyaW5nEjYKDW1hcHBpbmdfcGF0aHMYESADKAsyHy5wZXJmZXR0by5wcm90b3MuSW50ZXJuZWRTdHJpbmcSNQoMc291cmNlX3BhdGhzGBIgAygLMh8ucGVyZmV0dG8ucHJvdG9zLkludGVybmVkU3RyaW5nEjcKDmZ1bmN0aW9uX25hbWVzGAUgAygLMh8ucGVyZmV0dG8ucHJvdG9zLkludGVybmVkU3RyaW5nEkUKFnByb2ZpbGVkX2ZyYW1lX3N5bWJvbHMYFSADKAsyJS5wZXJmZXR0by5wcm90b3MuUHJvZmlsZWRGcmFtZVN5bWJvbHMSKgoIbWFwcGluZ3MYEyADKAsyGC5wZXJmZXR0by5wcm90b3MuTWFwcGluZxImCgZmcmFtZXMYBiADKAsyFi5wZXJmZXR0by5wcm90b3MuRnJhbWUSLgoKY2FsbHN0YWNrcxgHIAMoCzIaLnBlcmZldHRvLnByb3Rvcy5DYWxsc3RhY2sSOwoSdnVsa2FuX21lbW9yeV9rZXlzGBYgAygLMh8ucGVyZmV0dG8ucHJvdG9zLkludGVybmVkU3RyaW5nEkMKEWdyYXBoaWNzX2NvbnRleHRzGBcgAygLMigucGVyZmV0dG8ucHJvdG9zLkludGVybmVkR3JhcGhpY3NDb250ZXh0ElAKEmdwdV9zcGVjaWZpY2F0aW9ucxgYIAMoCzI0LnBlcmZldHRvLnByb3Rvcy5JbnRlcm5lZEdwdVJlbmRlclN0YWdlU3BlY2lmaWNhdGlvbhI3Cg5rZXJuZWxfc3ltYm9scxgaIAMoCzIfLnBlcmZldHRvLnByb3Rvcy5JbnRlcm5lZFN0cmluZxJHCh5kZWJ1Z19hbm5vdGF0aW9uX3N0cmluZ192YWx1ZXMYHSADKAsyHy5wZXJmZXR0by5wcm90b3MuSW50ZXJuZWRTdHJpbmcSPQoOcGFja2V0X2NvbnRleHQYHiADKAsyJS5wZXJmZXR0by5wcm90b3MuTmV0d29ya1BhY2tldENvbnRleHQSPgoTdjhfanNfZnVuY3Rpb25fbmFtZRgfIAMoCzIhLnBlcmZldHRvLnByb3Rvcy5JbnRlcm5lZFY4U3RyaW5nEj0KDnY4X2pzX2Z1bmN0aW9uGCAgAygLMiUucGVyZmV0dG8ucHJvdG9zLkludGVybmVkVjhKc0Z1bmN0aW9uEjkKDHY4X2pzX3NjcmlwdBghIAMoCzIjLnBlcmZldHRvLnByb3Rvcy5JbnRlcm5lZFY4SnNTY3JpcHQSPQoOdjhfd2FzbV9zY3JpcHQYIiADKAsyJS5wZXJmZXR0by5wcm90b3MuSW50ZXJuZWRWOFdhc21TY3JpcHQSNgoKdjhfaXNvbGF0ZRgjIAMoCzIiLnBlcmZldHRvLnByb3Rvcy5JbnRlcm5lZFY4SXNvbGF0ZRI9ChRwcm90b2xvZ19zdHJpbmdfYXJncxgkIAMoCzIfLnBlcmZldHRvLnByb3Rvcy5JbnRlcm5lZFN0cmluZxI8ChNwcm90b2xvZ19zdGFja3RyYWNlGCUgAygLMh8ucGVyZmV0dG8ucHJvdG9zLkludGVybmVkU3RyaW5nEkEKGHZpZXdjYXB0dXJlX3BhY2thZ2VfbmFtZRgmIAMoCzIfLnBlcmZldHRvLnByb3Rvcy5JbnRlcm5lZFN0cmluZxJAChd2aWV3Y2FwdHVyZV93aW5kb3dfbmFtZRgnIAMoCzIfLnBlcmZldHRvLnByb3Rvcy5JbnRlcm5lZFN0cmluZxI8ChN2aWV3Y2FwdHVyZV92aWV3X2lkGCggAygLMh8ucGVyZmV0dG8ucHJvdG9zLkludGVybmVkU3RyaW5nEj8KFnZpZXdjYXB0dXJlX2NsYXNzX25hbWUYKSADKAsyHy5wZXJmZXR0by5wcm90b3MuSW50ZXJuZWRTdHJpbmc", [file_protos_perfetto_trace_android_network_trace, file_protos_perfetto_trace_chrome_v8, file_protos_perfetto_trace_gpu_gpu_render_stage_event, file_protos_perfetto_trace_track_event_chrome_histogram_sample, file_protos_perfetto_trace_track_event_debug_annotation, file_protos_perfetto_trace_track_event_log_message, file_protos_perfetto_trace_track_event_track_event, file_protos_perfetto_trace_track_event_source_location, file_protos_perfetto_trace_profiling_profile_common]);

/**
 * Message that contains new entries for the interning indices of a packet
 * sequence.
 *
 * The writer will usually emit new entries in the same TracePacket that first
 * refers to them (since the last reset of interning state). They may also be
 * emitted proactively in advance of referring to them in later packets.
 *
 * Next reserved id: 8 (up to 15).
 * Next id: 42.
 *
 * TODO(eseckler): Replace iid fields inside interned messages with
 * map<iid, message> type fields in InternedData.
 *
 * @generated from message perfetto.protos.InternedData
 */
export type InternedData = Message<"perfetto.protos.InternedData"> & {
  /**
   * Each field's message type needs to specify an |iid| field, which is the ID
   * of the entry in the field's interning index. Each field constructs its own
   * index, thus interning IDs are scoped to the tracing session and field
   * (usually as a counter for efficient var-int encoding), and optionally to
   * the incremental state generation of the packet sequence.
   *
   * @generated from field: repeated perfetto.protos.EventCategory event_categories = 1;
   */
  eventCategories: EventCategory[];

  /**
   * @generated from field: repeated perfetto.protos.EventName event_names = 2;
   */
  eventNames: EventName[];

  /**
   * @generated from field: repeated perfetto.protos.DebugAnnotationName debug_annotation_names = 3;
   */
  debugAnnotationNames: DebugAnnotationName[];

  /**
   * @generated from field: repeated perfetto.protos.DebugAnnotationValueTypeName debug_annotation_value_type_names = 27;
   */
  debugAnnotationValueTypeNames: DebugAnnotationValueTypeName[];

  /**
   * @generated from field: repeated perfetto.protos.SourceLocation source_locations = 4;
   */
  sourceLocations: SourceLocation[];

  /**
   * @generated from field: repeated perfetto.protos.UnsymbolizedSourceLocation unsymbolized_source_locations = 28;
   */
  unsymbolizedSourceLocations: UnsymbolizedSourceLocation[];

  /**
   * @generated from field: repeated perfetto.protos.LogMessageBody log_message_body = 20;
   */
  logMessageBody: LogMessageBody[];

  /**
   * @generated from field: repeated perfetto.protos.HistogramName histogram_names = 25;
   */
  histogramNames: HistogramName[];

  /**
   * Build IDs of exectuable files.
   *
   * @generated from field: repeated perfetto.protos.InternedString build_ids = 16;
   */
  buildIds: InternedString[];

  /**
   * Paths to executable files.
   *
   * @generated from field: repeated perfetto.protos.InternedString mapping_paths = 17;
   */
  mappingPaths: InternedString[];

  /**
   * Paths to source files.
   *
   * @generated from field: repeated perfetto.protos.InternedString source_paths = 18;
   */
  sourcePaths: InternedString[];

  /**
   * Names of functions used in frames below.
   *
   * @generated from field: repeated perfetto.protos.InternedString function_names = 5;
   */
  functionNames: InternedString[];

  /**
   * Symbols that were added to this trace after the fact.
   *
   * @generated from field: repeated perfetto.protos.ProfiledFrameSymbols profiled_frame_symbols = 21;
   */
  profiledFrameSymbols: ProfiledFrameSymbols[];

  /**
   * Executable files mapped into processes.
   *
   * @generated from field: repeated perfetto.protos.Mapping mappings = 19;
   */
  mappings: Mapping[];

  /**
   * Frames of callstacks of a program.
   *
   * @generated from field: repeated perfetto.protos.Frame frames = 6;
   */
  frames: Frame[];

  /**
   * A callstack of a program.
   *
   * @generated from field: repeated perfetto.protos.Callstack callstacks = 7;
   */
  callstacks: Callstack[];

  /**
   * Additional Vulkan information sent in a VulkanMemoryEvent message
   *
   * @generated from field: repeated perfetto.protos.InternedString vulkan_memory_keys = 22;
   */
  vulkanMemoryKeys: InternedString[];

  /**
   * Graphics context of a render stage event.  This represent the GL
   * context for an OpenGl app or the VkDevice for a Vulkan app.
   *
   * @generated from field: repeated perfetto.protos.InternedGraphicsContext graphics_contexts = 23;
   */
  graphicsContexts: InternedGraphicsContext[];

  /**
   * Description of a GPU hardware queue or render stage.
   *
   * @generated from field: repeated perfetto.protos.InternedGpuRenderStageSpecification gpu_specifications = 24;
   */
  gpuSpecifications: InternedGpuRenderStageSpecification[];

  /**
   * This is set when FtraceConfig.symbolize_ksyms = true.
   * The id of each symbol the number that will be reported in ftrace events
   * like sched_block_reason.caller and is obtained from a monotonic counter.
   * The same symbol can have different indexes in different bundles.
   * This is is NOT the real address. This is to avoid disclosing KASLR through
   * traces.
   *
   * @generated from field: repeated perfetto.protos.InternedString kernel_symbols = 26;
   */
  kernelSymbols: InternedString[];

  /**
   * Interned string values in the DebugAnnotation proto.
   *
   * @generated from field: repeated perfetto.protos.InternedString debug_annotation_string_values = 29;
   */
  debugAnnotationStringValues: InternedString[];

  /**
   * Interned packet context for android.network_packets.
   *
   * @generated from field: repeated perfetto.protos.NetworkPacketContext packet_context = 30;
   */
  packetContext: NetworkPacketContext[];

  /**
   * Interned name of a js function. We only intern js functions as there is a
   * lot of duplication for them, but less so for other strings in the V8 data
   * source.
   *
   * @generated from field: repeated perfetto.protos.InternedV8String v8_js_function_name = 31;
   */
  v8JsFunctionName: InternedV8String[];

  /**
   * Js functions can be emitted multiple times for various compilation tiers,
   * so it makes sense to deduplicate all this.
   *
   * @generated from field: repeated perfetto.protos.InternedV8JsFunction v8_js_function = 32;
   */
  v8JsFunction: InternedV8JsFunction[];

  /**
   * Interned JS script (there is one associated with each JS function)
   *
   * @generated from field: repeated perfetto.protos.InternedV8JsScript v8_js_script = 33;
   */
  v8JsScript: InternedV8JsScript[];

  /**
   * Interned Wasm script (there is one associated with each Wasm function)
   *
   * @generated from field: repeated perfetto.protos.InternedV8WasmScript v8_wasm_script = 34;
   */
  v8WasmScript: InternedV8WasmScript[];

  /**
   * Every V8 event is associated with an isolate, intern the isolate to remove
   * duplication.
   *
   * @generated from field: repeated perfetto.protos.InternedV8Isolate v8_isolate = 35;
   */
  v8Isolate: InternedV8Isolate[];

  /**
   * Interned protolog strings args.
   *
   * @generated from field: repeated perfetto.protos.InternedString protolog_string_args = 36;
   */
  protologStringArgs: InternedString[];

  /**
   * Interned protolog stacktraces.
   *
   * @generated from field: repeated perfetto.protos.InternedString protolog_stacktrace = 37;
   */
  protologStacktrace: InternedString[];

  /**
   * viewcapture
   *
   * @generated from field: repeated perfetto.protos.InternedString viewcapture_package_name = 38;
   */
  viewcapturePackageName: InternedString[];

  /**
   * @generated from field: repeated perfetto.protos.InternedString viewcapture_window_name = 39;
   */
  viewcaptureWindowName: InternedString[];

  /**
   * @generated from field: repeated perfetto.protos.InternedString viewcapture_view_id = 40;
   */
  viewcaptureViewId: InternedString[];

  /**
   * @generated from field: repeated perfetto.protos.InternedString viewcapture_class_name = 41;
   */
  viewcaptureClassName: InternedString[];
};

/**
 * Describes the message perfetto.protos.InternedData.
 * Use `create(InternedDataSchema)` to create a new message.
 */
export const InternedDataSchema: GenMessage<InternedData> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_interned_data_interned_data, 0);

