// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module cc.mojom;

import "cc/ipc/begin_frame_args.mojom";
import "cc/ipc/compositor_frame.mojom";
import "cc/ipc/compositor_frame_metadata.mojom";
import "cc/ipc/copy_output_request.mojom";
import "cc/ipc/copy_output_result.mojom";
import "cc/ipc/filter_operation.mojom";
import "cc/ipc/filter_operations.mojom";
import "cc/ipc/quads.mojom";
import "cc/ipc/render_pass.mojom";
import "cc/ipc/returned_resource.mojom";
import "cc/ipc/selection.mojom";
import "cc/ipc/shared_quad_state.mojom";
import "cc/ipc/surface_id.mojom";
import "cc/ipc/surface_reference.mojom";
import "cc/ipc/surface_sequence.mojom";
import "cc/ipc/texture_mailbox.mojom";
import "cc/ipc/transferable_resource.mojom";

// All functions on this interface echo their arguments to test StructTraits
// serialization and deserialization.
interface TraitsTestService {
  [Sync]
  EchoBeginFrameArgs(BeginFrameArgs b) => (BeginFrameArgs pass);

  [Sync]
  EchoCompositorFrame(CompositorFrame c) => (CompositorFrame pass);

  [Sync]
  EchoCompositorFrameMetadata(CompositorFrameMetadata c) =>
      (CompositorFrameMetadata pass);

  [Sync]
  EchoCopyOutputRequest(CopyOutputRequest c) => (CopyOutputRequest pass);

  [Sync]
  EchoCopyOutputResult(CopyOutputResult c) => (CopyOutputResult pass);

  [Sync]
  EchoFilterOperation(FilterOperation f) => (FilterOperation pass);

  [Sync]
  EchoFilterOperations(FilterOperations f) => (FilterOperations pass);

  [Sync]
  EchoRenderPass(RenderPass r) => (RenderPass pass);

  [Sync]
  EchoReturnedResource(ReturnedResource r) => (ReturnedResource pass);

  [Sync]
  EchoSelection(Selection s) => (Selection pass);

  [Sync]
  EchoSharedQuadState(SharedQuadState s) => (SharedQuadState pass);

  [Sync]
  EchoSurfaceId(SurfaceId s) => (SurfaceId pass);

  [Sync]
  EchoSurfaceReference(SurfaceReference r) => (SurfaceReference pass);

  [Sync]
  EchoSurfaceSequence(SurfaceSequence s) => (SurfaceSequence pass);

  [Sync]
  EchoTextureMailbox(TextureMailbox t) =>
      (TextureMailbox pass);

  [Sync]
  EchoTransferableResource(TransferableResource t) =>
      (TransferableResource pass);
};
