; | |
/** | |
* Streaming RPC helpers. | |
* @namespace | |
*/ | |
var rpc = exports; | |
/** | |
* RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets. | |
* @typedef RPCImpl | |
* @type {function} | |
* @param {Method|rpc.ServiceMethod<Message<{}>,Message<{}>>} method Reflected or static method being called | |
* @param {Uint8Array} requestData Request data | |
* @param {RPCImplCallback} callback Callback function | |
* @returns {undefined} | |
* @example | |
* function rpcImpl(method, requestData, callback) { | |
* if (protobuf.util.lcFirst(method.name) !== "myMethod") // compatible with static code | |
* throw Error("no such method"); | |
* asynchronouslyObtainAResponse(requestData, function(err, responseData) { | |
* callback(err, responseData); | |
* }); | |
* } | |
*/ | |
/** | |
* Node-style callback as used by {@link RPCImpl}. | |
* @typedef RPCImplCallback | |
* @type {function} | |
* @param {Error|null} error Error, if any, otherwise `null` | |
* @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error | |
* @returns {undefined} | |
*/ | |
rpc.Service = require("./rpc/service"); | |