//
// 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/common/observable_events.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/common/observable_events.proto.
 */
export const file_protos_perfetto_common_observable_events: GenFile = /*@__PURE__*/
  fileDesc("Ci5wcm90b3MvcGVyZmV0dG8vY29tbW9uL29ic2VydmFibGVfZXZlbnRzLnByb3RvEg9wZXJmZXR0by5wcm90b3Mi8gUKEE9ic2VydmFibGVFdmVudHMSXwoWaW5zdGFuY2Vfc3RhdGVfY2hhbmdlcxgBIAMoCzI/LnBlcmZldHRvLnByb3Rvcy5PYnNlcnZhYmxlRXZlbnRzLkRhdGFTb3VyY2VJbnN0YW5jZVN0YXRlQ2hhbmdlEiAKGGFsbF9kYXRhX3NvdXJjZXNfc3RhcnRlZBgCIAEoCBJMChFjbG9uZV90cmlnZ2VyX2hpdBgDIAEoCzIxLnBlcmZldHRvLnByb3Rvcy5PYnNlcnZhYmxlRXZlbnRzLkNsb25lVHJpZ2dlckhpdBqaAQodRGF0YVNvdXJjZUluc3RhbmNlU3RhdGVDaGFuZ2USFQoNcHJvZHVjZXJfbmFtZRgBIAEoCRIYChBkYXRhX3NvdXJjZV9uYW1lGAIgASgJEkgKBXN0YXRlGAMgASgOMjkucGVyZmV0dG8ucHJvdG9zLk9ic2VydmFibGVFdmVudHMuRGF0YVNvdXJjZUluc3RhbmNlU3RhdGUahgEKD0Nsb25lVHJpZ2dlckhpdBIaChJ0cmFjaW5nX3Nlc3Npb25faWQYASABKAMSFAoMdHJpZ2dlcl9uYW1lGAIgASgJEhUKDXByb2R1Y2VyX25hbWUYAyABKAkSFAoMcHJvZHVjZXJfdWlkGAQgASgNEhQKDGJvb3RfdGltZV9ucxgFIAEoBCJ8CgRUeXBlEhQKEFRZUEVfVU5TUEVDSUZJRUQQABIfChtUWVBFX0RBVEFfU09VUkNFU19JTlNUQU5DRVMQARIhCh1UWVBFX0FMTF9EQVRBX1NPVVJDRVNfU1RBUlRFRBACEhoKFlRZUEVfQ0xPTkVfVFJJR0dFUl9ISVQQBCJpChdEYXRhU291cmNlSW5zdGFuY2VTdGF0ZRImCiJEQVRBX1NPVVJDRV9JTlNUQU5DRV9TVEFURV9TVE9QUEVEEAESJgoiREFUQV9TT1VSQ0VfSU5TVEFOQ0VfU1RBVEVfU1RBUlRFRBAC");

/**
 * @generated from message perfetto.protos.ObservableEvents
 */
export type ObservableEvents = Message<"perfetto.protos.ObservableEvents"> & {
  /**
   * @generated from field: repeated perfetto.protos.ObservableEvents.DataSourceInstanceStateChange instance_state_changes = 1;
   */
  instanceStateChanges: ObservableEvents_DataSourceInstanceStateChange[];

  /**
   * @generated from field: optional bool all_data_sources_started = 2;
   */
  allDataSourcesStarted: boolean;

  /**
   * @generated from field: optional perfetto.protos.ObservableEvents.CloneTriggerHit clone_trigger_hit = 3;
   */
  cloneTriggerHit?: ObservableEvents_CloneTriggerHit;
};

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

/**
 * @generated from message perfetto.protos.ObservableEvents.DataSourceInstanceStateChange
 */
export type ObservableEvents_DataSourceInstanceStateChange = Message<"perfetto.protos.ObservableEvents.DataSourceInstanceStateChange"> & {
  /**
   * @generated from field: optional string producer_name = 1;
   */
  producerName: string;

  /**
   * @generated from field: optional string data_source_name = 2;
   */
  dataSourceName: string;

  /**
   * @generated from field: optional perfetto.protos.ObservableEvents.DataSourceInstanceState state = 3;
   */
  state: ObservableEvents_DataSourceInstanceState;
};

/**
 * Describes the message perfetto.protos.ObservableEvents.DataSourceInstanceStateChange.
 * Use `create(ObservableEvents_DataSourceInstanceStateChangeSchema)` to create a new message.
 */
export const ObservableEvents_DataSourceInstanceStateChangeSchema: GenMessage<ObservableEvents_DataSourceInstanceStateChange> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_common_observable_events, 0, 0);

/**
 * @generated from message perfetto.protos.ObservableEvents.CloneTriggerHit
 */
export type ObservableEvents_CloneTriggerHit = Message<"perfetto.protos.ObservableEvents.CloneTriggerHit"> & {
  /**
   * The TracingSessionID of the original tracing session which had a
   * CLONE_SNAPSHOT trigger defined. This is necessary just because the
   * consumer has no idea of what is the TSID of its own tracing session and
   * there is no other good way to plumb it.
   *
   * @generated from field: optional int64 tracing_session_id = 1;
   */
  tracingSessionId: bigint;

  /**
   * The name of the CLONE_SNAPSHOT trigger which was hit.
   *
   * @generated from field: optional string trigger_name = 2;
   */
  triggerName: string;

  /**
   * The name of the producer that sent the CLONE_SNAPSHOT trigger.
   *
   * @generated from field: optional string producer_name = 3;
   */
  producerName: string;

  /**
   * The uid of the producer that sent the CLONE_SNAPSHOT trigger.
   *
   * @generated from field: optional uint32 producer_uid = 4;
   */
  producerUid: number;

  /**
   * The timestamp of the CLONE_SNAPSHOT trigger which was hit.
   *
   * @generated from field: optional uint64 boot_time_ns = 5;
   */
  bootTimeNs: bigint;
};

/**
 * Describes the message perfetto.protos.ObservableEvents.CloneTriggerHit.
 * Use `create(ObservableEvents_CloneTriggerHitSchema)` to create a new message.
 */
export const ObservableEvents_CloneTriggerHitSchema: GenMessage<ObservableEvents_CloneTriggerHit> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_common_observable_events, 0, 1);

/**
 * @generated from enum perfetto.protos.ObservableEvents.Type
 */
export enum ObservableEvents_Type {
  /**
   * @generated from enum value: TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * State changes of data source instances associated with the consumer's
   * session. Note that not all data sources may support these notifications.
   * See |will_notify_on_start/stop| in DataSourceDescriptor.
   *
   * @generated from enum value: TYPE_DATA_SOURCES_INSTANCES = 1;
   */
  DATA_SOURCES_INSTANCES = 1,

  /**
   * State change triggered when all data sources are in the STARTED state.
   * For data sources that registered with |will_notify_on_start| this happens
   * only after the data source has acked the start. This allows the consumer
   * to synchronize with the data sources and to perform actions (e.g. start a
   * test binary) only after trace recording is actually started.
   * Introduced in Android 11 (R).
   *
   * @generated from enum value: TYPE_ALL_DATA_SOURCES_STARTED = 2;
   */
  ALL_DATA_SOURCES_STARTED = 2,

  /**
   * When a tracing session has one or more triggers of type CLONE_SNAPSHOT
   * and a matching trigger is hit, the service will send this notification to
   * the consumer after |stop_delay_ms|.
   *
   * @generated from enum value: TYPE_CLONE_TRIGGER_HIT = 4;
   */
  CLONE_TRIGGER_HIT = 4,
}

/**
 * Describes the enum perfetto.protos.ObservableEvents.Type.
 */
export const ObservableEvents_TypeSchema: GenEnum<ObservableEvents_Type> = /*@__PURE__*/
  enumDesc(file_protos_perfetto_common_observable_events, 0, 0);

/**
 * @generated from enum perfetto.protos.ObservableEvents.DataSourceInstanceState
 */
export enum ObservableEvents_DataSourceInstanceState {
  /**
   * A data source is created in stopped state.
   *
   * @generated from enum value: DATA_SOURCE_INSTANCE_STATE_STOPPED = 1;
   */
  STOPPED = 1,

  /**
   * @generated from enum value: DATA_SOURCE_INSTANCE_STATE_STARTED = 2;
   */
  STARTED = 2,
}

/**
 * Describes the enum perfetto.protos.ObservableEvents.DataSourceInstanceState.
 */
export const ObservableEvents_DataSourceInstanceStateSchema: GenEnum<ObservableEvents_DataSourceInstanceState> = /*@__PURE__*/
  enumDesc(file_protos_perfetto_common_observable_events, 0, 1);

