| // 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. |
| |
| /** |
| * @summary |
| * Namespace rpc defines the public interface for all |
| * interprocess communication. |
| * @description |
| * <p>Namespace rpc defines the public interface for all |
| * interprocess communication.</p> |
| * |
| * <p>There are two actors in the system, |
| * [clients]{@link module:vanadium.rpc~Client} and |
| * [servers]{@link module:vanadium.rpc~Server}. Clients invoke |
| * methods on Servers, using the bindTo method provided by the Client |
| * interface. Servers implement methods on named objects. The named object is |
| * found using a [Dispatcher]{@link Dispatcher}, and the method is invoked using |
| * an Invoker.</p> |
| * <p>Instances of the [Runtime]{@link module:vanadium~Runtime} host |
| * Clients and Servers, such instances may |
| * simultaneously host both Clients and Servers. The Runtime allows multiple |
| * names to be simultaneously supported via the Dispatcher interface.</p> |
| * |
| * <p>The [naming]{@link module:vanadium.naming} namespace provides a |
| * rendezvous mechanism for |
| * Clients and Servers. In particular, it allows Runtimes hosting Servers to |
| * share Endpoints with Clients that enables communication between them. |
| * Endpoints encode sufficient addressing information to enable |
| * communication.</p> |
| * @memberof module:vanadium |
| * @namespace rpc |
| */ |
| |
| module.exports = { |
| /** |
| * @summary |
| * Namespace reserved defines interfaces for interacting with reserved RPC |
| * methods such as Signature, MethodSignature and Glob. |
| * @memberof module:vanadium.rpc |
| * @namespace reserved |
| */ |
| reserved: require('../gen-vdl/v.io/v23/rpc/reserved'), |
| serverOption: require('./server-option') |
| }; |