blob: d4c7e8769dbcc041e1390626f7cf09db2b03986d [file] [log] [blame]
// Copyright 2015 The Vanadium 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 v23proxy;
import "../mojo/public/interfaces/bindings/mojom_types.mojom";
interface V23 {
// Sets up a communication channel between the caller and the mojo application
// running in a remote process.
//
// v23Name: Vanadium object name (i.e., "address") at which the remote mojo
// application is running.
// ifaceSig: Interface that the remote mojo application is expected to
// implement.
// mapping: Type definitions (indexed by type name) of the various types
// described in ifaceSig.
// serviceName: Name of the mojo application (i.e., the name that would be
// used if connecting to the application locally).
// futureMessages: Pipe over which messages can be sent to/received from
// serviceName running on the remote service v23Name.
SetupProxy(string v23Name,
mojo.MojomInterface ifaceSig,
map<string, mojo.UserDefinedType> mapping,
string serviceName,
handle<message_pipe> futureMessages);
// Endpoints gets the endpoints that the v23proxy serves at.
Endpoints() => (array<string> endpoints);
};