| "use strict"; |
| |
| /** |
| * 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"); |