blob: 53272b367d8b7486dd5bf4279b1f2c5a5e1c1ab4 [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 mojo.bindings.types;
//module v23proxy; // TODO(bprosnitz) Ideally, this would be in v23proxy. This is in mojo.bindings.types because importing across modules is broken in mojo.
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,
MojomInterface ifaceSig,
map<string, UserDefinedType> mapping,
string serviceName,
handle<message_pipe> futureMessages);
// Endpoints gets the endpoints that the v23proxy serves at.
Endpoints() => (array<string> endpoints);
};