//
// 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/track_event/thread_descriptor.proto (package perfetto.protos, syntax proto2)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file protos/perfetto/trace/track_event/thread_descriptor.proto.
 */
export const file_protos_perfetto_trace_track_event_thread_descriptor: GenFile = /*@__PURE__*/
  fileDesc("Cjlwcm90b3MvcGVyZmV0dG8vdHJhY2UvdHJhY2tfZXZlbnQvdGhyZWFkX2Rlc2NyaXB0b3IucHJvdG8SD3BlcmZldHRvLnByb3RvcyL0BQoQVGhyZWFkRGVzY3JpcHRvchILCgNwaWQYASABKAUSCwoDdGlkGAIgASgFEhMKC3RocmVhZF9uYW1lGAUgASgJEk4KEmNocm9tZV90aHJlYWRfdHlwZRgEIAEoDjIyLnBlcmZldHRvLnByb3Rvcy5UaHJlYWREZXNjcmlwdG9yLkNocm9tZVRocmVhZFR5cGUSHgoWcmVmZXJlbmNlX3RpbWVzdGFtcF91cxgGIAEoAxIgChhyZWZlcmVuY2VfdGhyZWFkX3RpbWVfdXMYByABKAMSKgoicmVmZXJlbmNlX3RocmVhZF9pbnN0cnVjdGlvbl9jb3VudBgIIAEoAxIZChFsZWdhY3lfc29ydF9pbmRleBgDIAEoBSLXAwoQQ2hyb21lVGhyZWFkVHlwZRIdChlDSFJPTUVfVEhSRUFEX1VOU1BFQ0lGSUVEEAASFgoSQ0hST01FX1RIUkVBRF9NQUlOEAESFAoQQ0hST01FX1RIUkVBRF9JTxACEiAKHENIUk9NRV9USFJFQURfUE9PTF9CR19XT1JLRVIQAxIgChxDSFJPTUVfVEhSRUFEX1BPT0xfRkdfV09SS0VSEAQSIgoeQ0hST01FX1RIUkVBRF9QT09MX0ZCX0JMT0NLSU5HEAUSIgoeQ0hST01FX1RIUkVBRF9QT09MX0JHX0JMT0NLSU5HEAYSHgoaQ0hST01FX1RIUkVBRF9QT09MX1NFUlZJQ0UQBxIcChhDSFJPTUVfVEhSRUFEX0NPTVBPU0lUT1IQCBIgChxDSFJPTUVfVEhSRUFEX1ZJWl9DT01QT1NJVE9SEAkSIwofQ0hST01FX1RIUkVBRF9DT01QT1NJVE9SX1dPUktFUhAKEiAKHENIUk9NRV9USFJFQURfU0VSVklDRV9XT1JLRVIQCxIeChpDSFJPTUVfVEhSRUFEX01FTU9SWV9JTkZSQRAyEiMKH0NIUk9NRV9USFJFQURfU0FNUExJTkdfUFJPRklMRVIQMw");

/**
 * Describes a thread's attributes. Emitted as part of a TrackDescriptor,
 * usually by the thread's trace writer.
 *
 * Next id: 9.
 *
 * @generated from message perfetto.protos.ThreadDescriptor
 */
export type ThreadDescriptor = Message<"perfetto.protos.ThreadDescriptor"> & {
  /**
   * @generated from field: optional int32 pid = 1;
   */
  pid: number;

  /**
   * @generated from field: optional int32 tid = 2;
   */
  tid: number;

  /**
   * @generated from field: optional string thread_name = 5;
   */
  threadName: string;

  /**
   * @generated from field: optional perfetto.protos.ThreadDescriptor.ChromeThreadType chrome_thread_type = 4;
   */
  chromeThreadType: ThreadDescriptor_ChromeThreadType;

  /**
   * Deprecated. Use ClockSnapshot in combination with TracePacket's timestamp
   * and timestamp_clock_id fields instead.
   *
   * @generated from field: optional int64 reference_timestamp_us = 6;
   */
  referenceTimestampUs: bigint;

  /**
   * Absolute reference values. Clock values in subsequent TrackEvents can be
   * encoded accumulatively and relative to these. This reduces their var-int
   * encoding size.
   * TODO(eseckler): Deprecated. Replace these with ClockSnapshot encoding.
   *
   * @generated from field: optional int64 reference_thread_time_us = 7;
   */
  referenceThreadTimeUs: bigint;

  /**
   * @generated from field: optional int64 reference_thread_instruction_count = 8;
   */
  referenceThreadInstructionCount: bigint;

  /**
   * To support old UI. New UI should determine default sorting by thread_type.
   *
   * @generated from field: optional int32 legacy_sort_index = 3;
   */
  legacySortIndex: number;
};

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

/**
 * @generated from enum perfetto.protos.ThreadDescriptor.ChromeThreadType
 */
export enum ThreadDescriptor_ChromeThreadType {
  /**
   * @generated from enum value: CHROME_THREAD_UNSPECIFIED = 0;
   */
  CHROME_THREAD_UNSPECIFIED = 0,

  /**
   * @generated from enum value: CHROME_THREAD_MAIN = 1;
   */
  CHROME_THREAD_MAIN = 1,

  /**
   * @generated from enum value: CHROME_THREAD_IO = 2;
   */
  CHROME_THREAD_IO = 2,

  /**
   * Scheduler:
   *
   * @generated from enum value: CHROME_THREAD_POOL_BG_WORKER = 3;
   */
  CHROME_THREAD_POOL_BG_WORKER = 3,

  /**
   * @generated from enum value: CHROME_THREAD_POOL_FG_WORKER = 4;
   */
  CHROME_THREAD_POOL_FG_WORKER = 4,

  /**
   * @generated from enum value: CHROME_THREAD_POOL_FB_BLOCKING = 5;
   */
  CHROME_THREAD_POOL_FB_BLOCKING = 5,

  /**
   * @generated from enum value: CHROME_THREAD_POOL_BG_BLOCKING = 6;
   */
  CHROME_THREAD_POOL_BG_BLOCKING = 6,

  /**
   * @generated from enum value: CHROME_THREAD_POOL_SERVICE = 7;
   */
  CHROME_THREAD_POOL_SERVICE = 7,

  /**
   * Compositor:
   *
   * @generated from enum value: CHROME_THREAD_COMPOSITOR = 8;
   */
  CHROME_THREAD_COMPOSITOR = 8,

  /**
   * @generated from enum value: CHROME_THREAD_VIZ_COMPOSITOR = 9;
   */
  CHROME_THREAD_VIZ_COMPOSITOR = 9,

  /**
   * @generated from enum value: CHROME_THREAD_COMPOSITOR_WORKER = 10;
   */
  CHROME_THREAD_COMPOSITOR_WORKER = 10,

  /**
   * Renderer:
   *
   * @generated from enum value: CHROME_THREAD_SERVICE_WORKER = 11;
   */
  CHROME_THREAD_SERVICE_WORKER = 11,

  /**
   * Tracing related threads:
   *
   * @generated from enum value: CHROME_THREAD_MEMORY_INFRA = 50;
   */
  CHROME_THREAD_MEMORY_INFRA = 50,

  /**
   * @generated from enum value: CHROME_THREAD_SAMPLING_PROFILER = 51;
   */
  CHROME_THREAD_SAMPLING_PROFILER = 51,
}

/**
 * Describes the enum perfetto.protos.ThreadDescriptor.ChromeThreadType.
 */
export const ThreadDescriptor_ChromeThreadTypeSchema: GenEnum<ThreadDescriptor_ChromeThreadType> = /*@__PURE__*/
  enumDesc(file_protos_perfetto_trace_track_event_thread_descriptor, 0, 0);

