blob: 649c4c75f440cb43b7b3509b2d8936ab32f6d4b9 [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";
[ServiceName="v23::v23proxy::V23ClientProxy"]
interface V23ClientProxy {
// 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.
SetupClientProxy(string v23Name,
MojomInterface ifaceSig,
map<string, UserDefinedType> mapping,
string serviceName,
handle<message_pipe> futureMessages);
};