blob: b26b39d937c42682f5a3ecb39bb780d069893f23 [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.
/**
* Interface describes the signature of an interface.
* @constructor
* @name Interface
* @property {string} name
* @property {string} pkgPath
* @property {string} doc
* @property {module:vanadium.vdl.signature.Embed[]} embeds No special ordering.
* @property {module:vanadium.vdl.signature.Method[]} method Ordered by method
* name.
* @memberof module:vanadium.vdl.signature
*/
/**
* Embed describes the signature of an embedded interface.
* @constructor
* @name Embed
* @property {string} name
* @property {string} pkgPath
* @property {string} doc
* @memberof module:vanadium.vdl.signature
*/
/**
* Method describes the signature of an interface method.
* @constructor
* @name Method
* @property {string} Name
* @property {string} PkgPath
* @property {module:vanadium.vdl.signature.Arg[]} inArgs Input arguments
* @property {module:vanadium.vdl.signature.Arg[]} outArgs Output arguments
* @property {module:vanadium.vdl.signature.Arg} inStream Input stream
* (optional)
* @property {module:vanadium.vdl.signature.Arg} outStream Output stream
* (optional)
* @property {*} tags Method tags
* @memberof module:vanadium.vdl.signature
*/
/**
* Arg describes the signature of a single argument.
* @constructor
* @name Arg
* @property {string} name
* @property {string} doc
* @property {module:vanadium.vdl.Type} type
* @memberof module:vanadium.vdl.signature
*/
/**
* Duration represents the elapsed duration between two points in time,
* with up to nanosecond precision.
* @constructor
* @name Duration
* @property seconds {integer} Seconds represents the seconds in the duration.
* @property nanos {integer} In normalized form, durations less than one second
* are represented with 0. Seconds and +/-Nanos. For durations one second or
* more, the sign of Nanos must match Seconds, or be 0.
* @memberof module:vanadium.vdl.time
*/