//
// Copyright (C) 2024 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/remote_clock_sync.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 { ClockSnapshot } from "./clock_snapshot_pb";
import { file_protos_perfetto_trace_clock_snapshot } from "./clock_snapshot_pb";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file protos/perfetto/trace/remote_clock_sync.proto.
 */
export const file_protos_perfetto_trace_remote_clock_sync: GenFile = /*@__PURE__*/
  fileDesc("Ci1wcm90b3MvcGVyZmV0dG8vdHJhY2UvcmVtb3RlX2Nsb2NrX3N5bmMucHJvdG8SD3BlcmZldHRvLnByb3RvcyLTAQoPUmVtb3RlQ2xvY2tTeW5jEkQKDXN5bmNlZF9jbG9ja3MYASADKAsyLS5wZXJmZXR0by5wcm90b3MuUmVtb3RlQ2xvY2tTeW5jLlN5bmNlZENsb2Nrcxp6CgxTeW5jZWRDbG9ja3MSNQoNY2xpZW50X2Nsb2NrcxgCIAEoCzIeLnBlcmZldHRvLnByb3Rvcy5DbG9ja1NuYXBzaG90EjMKC2hvc3RfY2xvY2tzGAMgASgLMh4ucGVyZmV0dG8ucHJvdG9zLkNsb2NrU25hcHNob3Q", [file_protos_perfetto_trace_clock_snapshot]);

/**
 * Records the parameters for aligning clock readings between machines.
 *
 * @generated from message perfetto.protos.RemoteClockSync
 */
export type RemoteClockSync = Message<"perfetto.protos.RemoteClockSync"> & {
  /**
   * @generated from field: repeated perfetto.protos.RemoteClockSync.SyncedClocks synced_clocks = 1;
   */
  syncedClocks: RemoteClockSync_SyncedClocks[];
};

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

/**
 * Synchronized clock snapshots taken on both sides of the relay port (the
 * tracing service and the relay service). A round of clock synchronization
 * IPC takes emits 2 SyncedClocks messages, i.e., client snapshot -> host
 * snapshot -> client snapshot -> host snapshot.
 *
 * @generated from message perfetto.protos.RemoteClockSync.SyncedClocks
 */
export type RemoteClockSync_SyncedClocks = Message<"perfetto.protos.RemoteClockSync.SyncedClocks"> & {
  /**
   * @generated from field: optional perfetto.protos.ClockSnapshot client_clocks = 2;
   */
  clientClocks?: ClockSnapshot;

  /**
   * @generated from field: optional perfetto.protos.ClockSnapshot host_clocks = 3;
   */
  hostClocks?: ClockSnapshot;
};

/**
 * Describes the message perfetto.protos.RemoteClockSync.SyncedClocks.
 * Use `create(RemoteClockSync_SyncedClocksSchema)` to create a new message.
 */
export const RemoteClockSync_SyncedClocksSchema: GenMessage<RemoteClockSync_SyncedClocks> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_remote_clock_sync, 0, 0);

