| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module mojo_proxy.test.mojom; |
| |
| import "mojo/public/mojom/base/file.mojom"; |
| import "mojo/public/mojom/base/shared_memory.mojom"; |
| |
| interface TestService { |
| // Returns `x` unmodified. Used to exercise basic end-to-end communication |
| // through a mojo_proxy instance. |
| Echo(int32 x) => (int32 x); |
| |
| // Returns `x` scaled by an implementation-defined value. Used to exercise |
| // basic end-to-end communication through a mojo_proxy instance with some |
| // additional routing validation. |
| Scale(int32 x) => (int32 scaled_x); |
| |
| // Reads a file's contents and sends back a new file with the same contents, |
| // reversed. Used to exercise biridrectional platform handle transmission |
| // through a mojo_proxy instance. |
| FlipFile(mojo_base.mojom.File file) => (mojo_base.mojom.File reversed_file); |
| |
| // Reads a memory region's contents and sends back a new region with the |
| // same contents, reversed. Used to exercise bidirectional Mojo shared buffer |
| // transmission through a mojo_proxy instance. |
| FlipMemory(mojo_base.mojom.ReadOnlySharedMemoryRegion region) |
| => (mojo_base.mojom.ReadOnlySharedMemoryRegion region); |
| |
| // Binds another TestService pipe to the receiving instance. Used to exercise |
| // message pipe transfer through a mojo_proxy instance, from host to target. |
| BindReceiver(pending_receiver<TestService> receiver); |
| |
| // Binds another TestService pipe to the receiving instance and passes back |
| // a corresponding remote. Used to exercise message pipe transfer through a |
| // mojo_proxy instance, from target to host. |
| BindNewRemote() => (pending_remote<TestService> remote); |
| }; |