grpc/node/grpc.html

5845 lines
82 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Documentation Namespace: grpc</title>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/sunlight.default.css">
<link type="text/css" rel="stylesheet" href="styles/site.simplex.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top ">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="index.html">Documentation</a>
<button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#topNavigation">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="navbar-collapse collapse" id="topNavigation">
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="namespaces.list.html" class="dropdown-toggle" data-toggle="dropdown">Namespaces<b class="caret"></b></a>
<ul class="dropdown-menu ">
<li><a href="grpc.html">grpc</a></li><li><a href="grpc.credentials.html">grpc.credentials</a></li>
</ul>
</li>
<li class="dropdown">
<a href="modules.list.html" class="dropdown-toggle" data-toggle="dropdown">Modules<b class="caret"></b></a>
<ul class="dropdown-menu ">
<li><a href="module-src_client_interceptors.html">src/client_interceptors</a></li>
</ul>
</li>
<li class="dropdown">
<a href="classes.list.html" class="dropdown-toggle" data-toggle="dropdown">Classes<b class="caret"></b></a>
<ul class="dropdown-menu ">
<li><a href="grpc.Channel.html">grpc.Channel</a></li><li><a href="grpc.Client.html">grpc.Client</a></li><li><a href="grpc.credentials-CallCredentials.html">grpc.credentials~CallCredentials</a></li><li><a href="grpc.credentials-ChannelCredentials.html">grpc.credentials~ChannelCredentials</a></li><li><a href="grpc.Metadata.html">grpc.Metadata</a></li><li><a href="grpc.Server.html">grpc.Server</a></li><li><a href="grpc.ServerCredentials.html">grpc.ServerCredentials</a></li><li><a href="grpc-Call.html">grpc~Call</a></li><li><a href="grpc-ClientDuplexStream.html">grpc~ClientDuplexStream</a></li><li><a href="grpc-ClientReadableStream.html">grpc~ClientReadableStream</a></li><li><a href="grpc-ClientUnaryCall.html">grpc~ClientUnaryCall</a></li><li><a href="grpc-ClientWritableStream.html">grpc~ClientWritableStream</a></li><li><a href="grpc-ServerDuplexStream.html">grpc~ServerDuplexStream</a></li><li><a href="grpc-ServerReadableStream.html">grpc~ServerReadableStream</a></li><li><a href="grpc-ServerUnaryCall.html">grpc~ServerUnaryCall</a></li><li><a href="grpc-ServerWritableStream.html">grpc~ServerWritableStream</a></li><li><a href="module-src_client_interceptors-EndListener.html">src/client_interceptors~EndListener</a></li><li><a href="module-src_client_interceptors-InterceptingCall.html">src/client_interceptors~InterceptingCall</a></li><li><a href="module-src_client_interceptors-InterceptingListener.html">src/client_interceptors~InterceptingListener</a></li><li><a href="module-src_client_interceptors-InterceptorConfigurationError.html">src/client_interceptors~InterceptorConfigurationError</a></li><li><a href="module-src_client_interceptors-ListenerBuilder.html">src/client_interceptors~ListenerBuilder</a></li><li><a href="module-src_client_interceptors-RequesterBuilder.html">src/client_interceptors~RequesterBuilder</a></li><li><a href="module-src_client_interceptors-StatusBuilder.html">src/client_interceptors~StatusBuilder</a></li>
</ul>
</li>
<li class="dropdown">
<a href="events.list.html" class="dropdown-toggle" data-toggle="dropdown">Events<b class="caret"></b></a>
<ul class="dropdown-menu ">
<li><a href="grpc-ClientDuplexStream.html#event:metadata">grpc~ClientDuplexStream#metadata</a></li><li><a href="grpc-ClientDuplexStream.html#event:status">grpc~ClientDuplexStream#status</a></li><li><a href="grpc-ClientReadableStream.html#event:metadata">grpc~ClientReadableStream#metadata</a></li><li><a href="grpc-ClientReadableStream.html#event:status">grpc~ClientReadableStream#status</a></li><li><a href="grpc-ClientUnaryCall.html#event:metadata">grpc~ClientUnaryCall#event:metadata</a></li><li><a href="grpc-ClientUnaryCall.html#event:status">grpc~ClientUnaryCall#event:status</a></li><li><a href="grpc-ClientWritableStream.html#event:metadata">grpc~ClientWritableStream#metadata</a></li><li><a href="grpc-ClientWritableStream.html#event:status">grpc~ClientWritableStream#status</a></li><li><a href="grpc-ServerDuplexStream.html#~event:cancelled">grpc~ServerDuplexStream~event:cancelled</a></li><li><a href="grpc-ServerReadableStream.html#~event:cancelled">grpc~ServerReadableStream~event:cancelled</a></li><li><a href="grpc-ServerUnaryCall.html#~event:cancelled">grpc~ServerUnaryCall~event:cancelled</a></li><li><a href="grpc-ServerWritableStream.html#~event:cancelled">grpc~ServerWritableStream~event:cancelled</a></li>
</ul>
</li>
<li class="dropdown">
<a href="global.html" class="dropdown-toggle" data-toggle="dropdown">Global<b class="caret"></b></a>
<ul class="dropdown-menu ">
<li><a href="global.html#CancelRequester">CancelRequester</a></li><li><a href="global.html#CloseRequester">CloseRequester</a></li><li><a href="global.html#createStatusError">createStatusError</a></li><li><a href="global.html#getClientInterceptors">getClientInterceptors</a></li><li><a href="global.html#getMethodType">getMethodType</a></li><li><a href="global.html#GetPeerRequester">GetPeerRequester</a></li><li><a href="global.html#Interceptor">Interceptor</a></li><li><a href="global.html#InterceptorProvider">InterceptorProvider</a></li><li><a href="global.html#loadPackageDefinition">loadPackageDefinition</a></li><li><a href="global.html#MessageListener">MessageListener</a></li><li><a href="global.html#MessageRequester">MessageRequester</a></li><li><a href="global.html#MetadataListener">MetadataListener</a></li><li><a href="global.html#MetadataRequester">MetadataRequester</a></li><li><a href="global.html#NextCall">NextCall</a></li><li><a href="global.html#StatusListener">StatusListener</a></li>
</ul>
</li>
<li class="dropdown">
<a href="externals.list.html" class="dropdown-toggle" data-toggle="dropdown">Externals<b class="caret"></b></a>
<ul class="dropdown-menu ">
<li><a href="external-Duplex.html">Duplex</a></li><li><a href="external-EventEmitter.html">EventEmitter</a></li><li><a href="external-GoogleCredential.html">GoogleCredential</a></li><li><a href="external-Readable.html">Readable</a></li><li><a href="external-Writable.html">Writable</a></li>
</ul>
</li>
</ul>
<div class="col-sm-3 col-md-3">
<form class="navbar-form" role="search">
<div class="input-group">
<input type="text" class="form-control" placeholder="Search" name="q" id="search-input">
<div class="input-group-btn">
<button class="btn btn-default" id="search-submit"><i class="glyphicon glyphicon-search"></i></button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<div class="container" id="toc-content">
<div class="row">
<div class="col-md-8">
<div id="main">
<h1 class="page-title">Namespace: grpc</h1>
<section>
<header>
<h2>
grpc
</h2>
</header>
<article>
<div class="container-overview">
<dl class="details">
</dl>
</div>
<h3 class="subsection-title">Classes</h3>
<dl>
<dt><a href="grpc.Channel.html">Channel</a></dt>
<dd></dd>
<dt><a href="grpc.Client.html">Client</a></dt>
<dd></dd>
<dt><a href="grpc.Metadata.html">Metadata</a></dt>
<dd></dd>
<dt><a href="grpc.Server.html">Server</a></dt>
<dd></dd>
<dt><a href="grpc.ServerCredentials.html">ServerCredentials</a></dt>
<dd></dd>
<dt><a href="grpc-Call.html">Call</a></dt>
<dd></dd>
<dt><a href="grpc-ClientDuplexStream.html">ClientDuplexStream</a></dt>
<dd></dd>
<dt><a href="grpc-ClientReadableStream.html">ClientReadableStream</a></dt>
<dd></dd>
<dt><a href="grpc-ClientUnaryCall.html">ClientUnaryCall</a></dt>
<dd></dd>
<dt><a href="grpc-ClientWritableStream.html">ClientWritableStream</a></dt>
<dd></dd>
<dt><a href="grpc-ServerDuplexStream.html">ServerDuplexStream</a></dt>
<dd></dd>
<dt><a href="grpc-ServerReadableStream.html">ServerReadableStream</a></dt>
<dd></dd>
<dt><a href="grpc-ServerUnaryCall.html">ServerUnaryCall</a></dt>
<dd></dd>
<dt><a href="grpc-ServerWritableStream.html">ServerWritableStream</a></dt>
<dd></dd>
</dl>
<h3 class="subsection-title">Namespaces</h3>
<dl>
<dt><a href="namespaces.html#grpc.credentials"><a href="grpc.credentials.html">credentials</a></a></dt>
<dd></dd>
</dl>
<h3 class="subsection-title">Members</h3>
<dl>
<hr>
<dt class="name" id=".callError">
<h4 id=".callError"><span class="type-signature">&lt;static, constant> </span>callError<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
<p>Call error constants. Call errors almost always indicate bugs in the gRPC
library, and these error codes are mainly useful for finding those bugs.</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
<h5 class="subsection-title">Properties:</h5>
<dl>
<table class="props table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>OK</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
0
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>ERROR</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
1
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>NOT_ON_SERVER</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
2
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>NOT_ON_CLIENT</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
3
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>ALREADY_INVOKED</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
5
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>NOT_INVOKED</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
6
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>ALREADY_FINISHED</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
7
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>TOO_MANY_OPERATIONS</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
8
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>INVALID_FLAGS</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
9
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>INVALID_METADATA</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
10
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>INVALID_MESSAGE</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
11
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>NOT_SERVER_COMPLETION_QUEUE</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
12
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>BATCH_TOO_BIG</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
13
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>PAYLOAD_TYPE_MISMATCH</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
14
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
</dl>
</dl>
</dd>
<hr>
<dt class="name" id=".connectivityState">
<h4 id=".connectivityState"><span class="type-signature">&lt;static, readonly> </span>connectivityState<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
<p>Connectivity state values</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
<h5 class="subsection-title">Properties:</h5>
<dl>
<table class="props table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>IDLE</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
0
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>CONNECTING</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
1
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>READY</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
2
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>TRANSIENT_FAILURE</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
3
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>SHUTDOWN</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
4
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
</dl>
</dl>
</dd>
<hr>
<dt class="name" id=".load">
<h4 id=".load"><span class="type-signature">&lt;static> </span>load<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
<p>Load a gRPC object from a .proto file.</p>
</div>
<dl class="details">
<dt class="important tag-deprecated method-doc-label method-doc-details-label">Deprecated:</dt>
<dd>
<ul class="dummy">
<li>Use the <a href="https://www.npmjs.com/package/@grpc/proto-loader">proto-loader module</a>
with grpc.loadPackageDefinition instead.</li>
</ul>
</dd>
</dl>
</dd>
<hr>
<dt class="name" id=".logVerbosity">
<h4 id=".logVerbosity"><span class="type-signature">&lt;static, readonly> </span>logVerbosity<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
<h5 class="subsection-title">Properties:</h5>
<dl>
<table class="props table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>DEBUG</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
0
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>INFO</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
1
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>ERROR</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
2
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
</dl>
</dl>
</dd>
<hr>
<dt class="name" id=".methodTypes">
<h4 id=".methodTypes"><span class="type-signature">&lt;static, readonly> </span>methodTypes<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
<p>Method types: the supported RPC types</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
<h5 class="subsection-title">Properties:</h5>
<dl>
<table class="props table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>UNARY</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
0
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>CLIENT_STREAMING</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
1
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>SERVER_STREAMING</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
2
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>BIDI_STREAMING</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
3
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
</dl>
</dl>
</dd>
<hr>
<dt class="name" id=".propagate">
<h4 id=".propagate"><span class="type-signature">&lt;static> </span>propagate<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
<p>Propagation flags: these can be bitwise or-ed to form the propagation option
for calls.</p>
<p>Users are encouraged to write propagation masks as deltas from the default.
i.e. write <code>grpc.propagate.DEFAULTS &amp; ~grpc.propagate.DEADLINE</code> to disable
deadline propagation.</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
<h5 class="subsection-title">Properties:</h5>
<dl>
<table class="props table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>DEADLINE</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
1
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>CENSUS_STATS_CONTEXT</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
2
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>CENSUS_TRACING_CONTEXT</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
4
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>CANCELLATION</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
8
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>DEFAULTS</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
65535
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
</dl>
</dl>
</dd>
<hr>
<dt class="name" id=".status">
<h4 id=".status"><span class="type-signature">&lt;static, readonly> </span>status<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
<p>Enum of status codes that gRPC can return</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
<h5 class="subsection-title">Properties:</h5>
<dl>
<table class="props table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>OK</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
0
</td>
<td class="description last"><p>Not an error; returned on success</p></td>
</tr>
<tr>
<td class="name"><code>CANCELLED</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
1
</td>
<td class="description last"><p>The operation was cancelled (typically by the caller).</p></td>
</tr>
<tr>
<td class="name"><code>UNKNOWN</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
2
</td>
<td class="description last"><p>Unknown error. An example of where this error may be returned is
if a status value received from another address space belongs to
an error-space that is not known in this address space. Also
errors raised by APIs that do not return enough error information
may be converted to this error.</p></td>
</tr>
<tr>
<td class="name"><code>INVALID_ARGUMENT</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
3
</td>
<td class="description last"><p>Client specified an invalid argument. Note that this differs
from FAILED_PRECONDITION. INVALID_ARGUMENT indicates arguments
that are problematic regardless of the state of the system
(e.g., a malformed file name).</p></td>
</tr>
<tr>
<td class="name"><code>DEADLINE_EXCEEDED</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
4
</td>
<td class="description last"><p>Deadline expired before operation could complete. For operations
that change the state of the system, this error may be returned
even if the operation has completed successfully. For example, a
successful response from a server could have been delayed long
enough for the deadline to expire.</p></td>
</tr>
<tr>
<td class="name"><code>NOT_FOUND</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
5
</td>
<td class="description last"><p>Some requested entity (e.g., file or directory) was not found.</p></td>
</tr>
<tr>
<td class="name"><code>ALREADY_EXISTS</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
6
</td>
<td class="description last"><p>Some entity that we attempted to create (e.g., file or directory)
already exists.</p></td>
</tr>
<tr>
<td class="name"><code>PERMISSION_DENIED</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
7
</td>
<td class="description last"><p>The caller does not have permission to execute the specified
operation. PERMISSION_DENIED must not be used for rejections
caused by exhausting some resource (use RESOURCE_EXHAUSTED
instead for those errors). PERMISSION_DENIED must not be
used if the caller can not be identified (use UNAUTHENTICATED
instead for those errors).</p></td>
</tr>
<tr>
<td class="name"><code>RESOURCE_EXHAUSTED</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
8
</td>
<td class="description last"><p>Some resource has been exhausted, perhaps a per-user quota, or
perhaps the entire file system is out of space.</p></td>
</tr>
<tr>
<td class="name"><code>FAILED_PRECONDITION</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
9
</td>
<td class="description last"><p>Operation was rejected because the system is not in a state
required for the operation's execution. For example, directory
to be deleted may be non-empty, an rmdir operation is applied to
a non-directory, etc.</p>
<p>A litmus test that may help a service implementor in deciding
between FAILED_PRECONDITION, ABORTED, and UNAVAILABLE:</p>
<ul>
<li>Use UNAVAILABLE if the client can retry just the failing call.</li>
<li>Use ABORTED if the client should retry at a higher-level
(e.g., restarting a read-modify-write sequence).</li>
<li>Use FAILED_PRECONDITION if the client should not retry until
the system state has been explicitly fixed. E.g., if an &quot;rmdir&quot;
fails because the directory is non-empty, FAILED_PRECONDITION
should be returned since the client should not retry unless
they have first fixed up the directory by deleting files from it.</li>
<li>Use FAILED_PRECONDITION if the client performs conditional
REST Get/Update/Delete on a resource and the resource on the
server does not match the condition. E.g., conflicting
read-modify-write on the same resource.</li>
</ul></td>
</tr>
<tr>
<td class="name"><code>ABORTED</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
10
</td>
<td class="description last"><p>The operation was aborted, typically due to a concurrency issue
like sequencer check failures, transaction aborts, etc.</p>
<p>See litmus test above for deciding between FAILED_PRECONDITION,
ABORTED, and UNAVAILABLE.</p></td>
</tr>
<tr>
<td class="name"><code>OUT_OF_RANGE</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
11
</td>
<td class="description last"><p>Operation was attempted past the valid range. E.g., seeking or
reading past end of file.</p>
<p>Unlike INVALID_ARGUMENT, this error indicates a problem that may
be fixed if the system state changes. For example, a 32-bit file
system will generate INVALID_ARGUMENT if asked to read at an
offset that is not in the range [0,2^32-1], but it will generate
OUT_OF_RANGE if asked to read from an offset past the current
file size.</p>
<p>There is a fair bit of overlap between FAILED_PRECONDITION and
OUT_OF_RANGE. We recommend using OUT_OF_RANGE (the more specific
error) when it applies so that callers who are iterating through
a space can easily look for an OUT_OF_RANGE error to detect when
they are done.</p></td>
</tr>
<tr>
<td class="name"><code>UNIMPLEMENTED</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
12
</td>
<td class="description last"><p>Operation is not implemented or not supported/enabled in this service.</p></td>
</tr>
<tr>
<td class="name"><code>INTERNAL</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
13
</td>
<td class="description last"><p>Internal errors. Means some invariants expected by underlying
system has been broken. If you see one of these errors,
something is very broken.</p></td>
</tr>
<tr>
<td class="name"><code>UNAVAILABLE</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
14
</td>
<td class="description last"><p>The service is currently unavailable. This is a most likely a
transient condition and may be corrected by retrying with
a backoff.</p>
<p>See litmus test above for deciding between FAILED_PRECONDITION,
ABORTED, and UNAVAILABLE.</p></td>
</tr>
<tr>
<td class="name"><code>DATA_LOSS</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
15
</td>
<td class="description last"><p>Unrecoverable data loss or corruption.</p></td>
</tr>
<tr>
<td class="name"><code>UNAUTHENTICATED</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
16
</td>
<td class="description last"><p>The request does not have valid authentication credentials for the
operation.</p></td>
</tr>
</tbody>
</table>
</dl>
</dl>
</dd>
<hr>
<dt class="name" id=".writeFlags">
<h4 id=".writeFlags"><span class="type-signature">&lt;static, readonly> </span>writeFlags<span class="type-signature"> :number</span></h4>
</dt>
<dd>
<div class="description">
<p>Write flags: these can be bitwise or-ed to form write options that modify
how data is written.</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
<h5 class="subsection-title">Properties:</h5>
<dl>
<table class="props table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>BUFFER_HINT</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
1
</td>
<td class="description last"><p>Hint that the write may be buffered and need not go out on the wire
immediately. GRPC is free to buffer the message until the next non-buffered
write, or until writes_done, but it need not buffer completely or at all.</p></td>
</tr>
<tr>
<td class="name"><code>NO_COMPRESS</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="default">
2
</td>
<td class="description last"><p>Force compression to be disabled for a particular write</p></td>
</tr>
</tbody>
</table>
</dl>
</dl>
</dd>
<hr>
<dt class="name" id="~defaultLoadOptions">
<h4 id="~defaultLoadOptions"><span class="type-signature">&lt;inner> </span>defaultLoadOptions<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
<p>Default options for loading proto files into gRPC</p>
</div>
<dl class="details">
</dl>
</dd>
</dl>
<h3 class="subsection-title">Methods</h3>
<dl>
<hr>
<dt>
<h4 class="name" id=".closeClient"><span class="type-signature">&lt;static> </span>closeClient(client_obj)</h4>
</dt>
<dd>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>client_obj</code></td>
<td class="type">
<span class="param-type"><a href="grpc.Client.html">grpc.Client</a></span>
</td>
<td class="description last"><p>The client to close</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
</dd>
<hr>
<dt>
<h4 class="name" id=".loadObject"><span class="type-signature">&lt;static> </span>loadObject(value [, options])</h4>
</dt>
<dd>
<div class="description">
<p>Load a ProtoBuf.js object as a gRPC object.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>value</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>The ProtoBuf.js reflection object to load</p></td>
</tr>
<tr>
<td class="name"><code>options</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last"><p>Options to apply to the loaded file</p>
<h6 class="method-params-label method-subparams-label">Properties</h6>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>binaryAsBase64</code></td>
<td class="type">
<span class="param-type">bool</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
false
</td>
<td class="description last"><p>deserialize bytes values as
base64 strings instead of Buffers</p></td>
</tr>
<tr>
<td class="name"><code>longsAsStrings</code></td>
<td class="type">
<span class="param-type">bool</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
true
</td>
<td class="description last"><p>deserialize long values as
strings instead of objects</p></td>
</tr>
<tr>
<td class="name"><code>enumsAsStrings</code></td>
<td class="type">
<span class="param-type">bool</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
true
</td>
<td class="description last"><p>deserialize enum values as
strings instead of numbers. Only works with Protobuf.js 6 values.</p></td>
</tr>
<tr>
<td class="name"><code>deprecatedArgumentOrder</code></td>
<td class="type">
<span class="param-type">bool</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
false
</td>
<td class="description last"><p>use the beta method
argument order for client methods, with optional arguments after the
callback. This option is only a temporary stopgap measure to smooth an
API breakage. It is deprecated, and new code should not use it.</p></td>
</tr>
<tr>
<td class="name"><code>protobufjsVersion</code></td>
<td class="type">
<span class="param-type">number</span>
|
<span class="param-type">string</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
'detect'
</td>
<td class="description last"><p>5 and 6
respectively indicate that an object from the corresponding version of
Protobuf.js is provided in the value argument. If the option is 'detect',
gRPC will guess what the version is based on the structure of the value.</p></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>The resulting gRPC object.</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Object.&lt;string, *></span>
</dd>
</dl>
</dd>
<hr>
<dt>
<h4 class="name" id=".setLogger"><span class="type-signature">&lt;static> </span>setLogger(logger)</h4>
</dt>
<dd>
<div class="description">
<p>Sets the logger function for the gRPC module. For debugging purposes, the C
core will log synchronously directly to stdout unless this function is
called. Note: the output format here is intended to be informational, and
is not guaranteed to stay the same in the future.
Logs will be directed to logger.error.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>logger</code></td>
<td class="type">
<span class="param-type">Console</span>
</td>
<td class="description last"><p>A Console-like object.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
</dd>
<hr>
<dt>
<h4 class="name" id=".setLogVerbosity"><span class="type-signature">&lt;static> </span>setLogVerbosity(verbosity)</h4>
</dt>
<dd>
<div class="description">
<p>Sets the logger verbosity for gRPC module logging. The options are members
of the grpc.logVerbosity map.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>verbosity</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="description last"><p>The minimum severity to log</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
</dd>
<hr>
<dt>
<h4 class="name" id="~getClientChannel"><span class="type-signature">&lt;inner> </span>getClientChannel(client)</h4>
</dt>
<dd>
<div class="description">
<p>Return the underlying channel object for the specified client</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>client</code></td>
<td class="type">
<span class="param-type"><a href="grpc.Client.html">grpc.Client</a></span>
</td>
<td class="description last"><p>The client</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-see method-doc-label method-doc-details-label">See:</dt>
<dd class="tag-see">
<ul>
<li><a href="grpc.Client.html#getChannel">grpc.Client#getChannel</a></li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>The channel</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Channel</span>
</dd>
</dl>
</dd>
<hr>
<dt>
<h4 class="name" id="~makeGenericClientConstructor"><span class="type-signature">&lt;inner> </span>makeGenericClientConstructor(methods, serviceName, class_options)</h4>
</dt>
<dd>
<div class="description">
<p>Creates a constructor for a client with the given methods, as specified in
the methods argument. The resulting class will have an instance method for
each method in the service, which is a partial application of one of the
<a href="grpc.Client.html">Client</a> request methods, depending on <code>requestSerialize</code>
and <code>responseSerialize</code>, with the <code>method</code>, <code>serialize</code>, and <code>deserialize</code>
arguments predefined.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>methods</code></td>
<td class="type">
<span class="param-type"><a href="grpc.html#~ServiceDefinition">grpc~ServiceDefinition</a></span>
</td>
<td class="description last"><p>An object mapping method names to
method attributes</p></td>
</tr>
<tr>
<td class="name"><code>serviceName</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>The fully qualified name of the service</p></td>
</tr>
<tr>
<td class="name"><code>class_options</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last"><p>An options object.</p>
<h6 class="method-params-label method-subparams-label">Properties</h6>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>deprecatedArgumentOrder</code></td>
<td class="type">
<span class="param-type">boolean</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
false
</td>
<td class="description last"><p>Indicates
that the old argument order should be used for methods, with optional
arguments at the end instead of the callback at the end. This option
is only a temporary stopgap measure to smooth an API breakage.
It is deprecated, and new code should not use it.</p></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>New client constructor, which is a subclass of
<a href="grpc.Client.html">grpc.Client</a>, and has the same arguments as that constructor.</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">function</span>
</dd>
</dl>
</dd>
<hr>
<dt>
<h4 class="name" id="~waitForClientReady"><span class="type-signature">&lt;inner> </span>waitForClientReady(client, deadline, callback)</h4>
</dt>
<dd>
<div class="description">
<p>Wait for the client to be ready. The callback will be called when the
client has successfully connected to the server, and it will be called
with an error if the attempt to connect to the server has unrecoverablly
failed or if the deadline expires. This function will make the channel
start connecting if it has not already done so.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>client</code></td>
<td class="type">
<span class="param-type"><a href="grpc.Client.html">grpc.Client</a></span>
</td>
<td class="description last"><p>The client to wait on</p></td>
</tr>
<tr>
<td class="name"><code>deadline</code></td>
<td class="type">
<span class="param-type"><a href="grpc.html#~Deadline">grpc~Deadline</a></span>
</td>
<td class="description last"><p>When to stop waiting for a connection. Pass
Infinity to wait forever.</p></td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type">function</span>
</td>
<td class="description last"><p>The callback to call when done attempting
to connect.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-see method-doc-label method-doc-details-label">See:</dt>
<dd class="tag-see">
<ul>
<li><a href="grpc.Client.html#waitForReady">grpc.Client#waitForReady</a></li>
</ul>
</dd>
</dl>
</dd>
</dl>
<h3 class="subsection-title">Type Definitions</h3>
<dl>
<hr>
<dt class="name" id="~ChannelOptions">
<h4 id="~ChannelOptions">ChannelOptions</h4>
</dt>
<dd>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">Object.&lt;string, (string|number)></span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<hr>
<dt class="name" id="~CoreMetadata">
<h4 id="~CoreMetadata">CoreMetadata</h4>
</dt>
<dd>
<div class="description">
<p>Metadata representation as passed to and the native addon</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">object</span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<hr>
<dt class="name" id="~Deadline">
<h4 id="~Deadline">Deadline</h4>
</dt>
<dd>
<div class="description">
<p>The deadline of an operation. If it is a date, the deadline is reached at
the date and time specified. If it is a finite number, it is treated as
a number of milliseconds since the Unix Epoch. If it is Infinity, the
deadline will never be reached. If it is -Infinity, the deadline has already
passed.</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
|
<span class="param-type">Date</span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<hr>
<dt>
<h4 class="name" id="~deserialize"><span class="type-signature"></span>deserialize(data)</h4>
</dt>
<dd>
<div class="description">
<p>A deserialization function</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>data</code></td>
<td class="type">
<span class="param-type">Buffer</span>
</td>
<td class="description last"><p>The byte sequence to deserialize</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>The data deserialized as a value</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">*</span>
</dd>
</dl>
</dd>
<hr>
<dt class="name" id="~Listener">
<h4 id="~Listener">Listener</h4>
</dt>
<dd>
<div class="description">
<p>A set of interceptor functions triggered by responses</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">object</span>
</li>
</ul>
<dl class="details">
<h5 class="subsection-title">Properties:</h5>
<dl>
<table class="props table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>onReceiveMetadata</code></td>
<td class="type">
<span class="param-type"><a href="global.html#MetadataListener">MetadataListener</a></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last"><p>A function triggered by
response metadata.</p></td>
</tr>
<tr>
<td class="name"><code>onReceiveMessage</code></td>
<td class="type">
<span class="param-type"><a href="global.html#MessageListener">MessageListener</a></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last"><p>A function triggered by a
response message.</p></td>
</tr>
<tr>
<td class="name"><code>onReceiveStatus</code></td>
<td class="type">
<span class="param-type"><a href="global.html#StatusListener">StatusListener</a></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last"><p>A function triggered by a
response status.</p></td>
</tr>
</tbody>
</table>
</dl>
</dl>
</dd>
<hr>
<dt class="name" id="~MethodDefinition">
<h4 id="~MethodDefinition">MethodDefinition</h4>
</dt>
<dd>
<div class="description">
<p>An object that completely defines a service method signature.</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">Object</span>
</li>
</ul>
<dl class="details">
<h5 class="subsection-title">Properties:</h5>
<dl>
<table class="props table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>path</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>The method's URL path</p></td>
</tr>
<tr>
<td class="name"><code>requestStream</code></td>
<td class="type">
<span class="param-type">boolean</span>
</td>
<td class="description last"><p>Indicates whether the method accepts
a stream of requests</p></td>
</tr>
<tr>
<td class="name"><code>responseStream</code></td>
<td class="type">
<span class="param-type">boolean</span>
</td>
<td class="description last"><p>Indicates whether the method returns
a stream of responses</p></td>
</tr>
<tr>
<td class="name"><code>requestSerialize</code></td>
<td class="type">
<span class="param-type"><a href="grpc.html#~serialize">grpc~serialize</a></span>
</td>
<td class="description last"><p>Serialization
function for request values</p></td>
</tr>
<tr>
<td class="name"><code>responseSerialize</code></td>
<td class="type">
<span class="param-type"><a href="grpc.html#~serialize">grpc~serialize</a></span>
</td>
<td class="description last"><p>Serialization
function for response values</p></td>
</tr>
<tr>
<td class="name"><code>requestDeserialize</code></td>
<td class="type">
<span class="param-type"><a href="grpc.html#~deserialize">grpc~deserialize</a></span>
</td>
<td class="description last"><p>Deserialization
function for request data</p></td>
</tr>
<tr>
<td class="name"><code>responseDeserialize</code></td>
<td class="type">
<span class="param-type"><a href="grpc.html#~deserialize">grpc~deserialize</a></span>
</td>
<td class="description last"><p>Deserialization
function for repsonse data</p></td>
</tr>
</tbody>
</table>
</dl>
</dl>
</dd>
<hr>
<dt class="name" id="~PackageDefinition">
<h4 id="~PackageDefinition">PackageDefinition</h4>
</dt>
<dd>
<div class="description">
<p>An object that defines a package hierarchy with multiple services</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">Object.&lt;string, (<a href="grpc.html#~ServiceDefinition">grpc~ServiceDefinition</a>|<a href="grpc.html#~ProtobufTypeDefinition">grpc~ProtobufTypeDefinition</a>)></span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<hr>
<dt class="name" id="~ProtobufTypeDefinition">
<h4 id="~ProtobufTypeDefinition">ProtobufTypeDefinition</h4>
</dt>
<dd>
<div class="description">
<p>An object that defines a protobuf type</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">object</span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<hr>
<dt class="name" id="~Requester">
<h4 id="~Requester">Requester</h4>
</dt>
<dd>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">object</span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<hr>
<dt>
<h4 class="name" id="~serialize"><span class="type-signature"></span>serialize(value)</h4>
</dt>
<dd>
<div class="description">
<p>A serialization function</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>value</code></td>
<td class="type">
<span class="param-type">*</span>
</td>
<td class="description last"><p>The value to serialize</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>The value serialized as a byte sequence</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Buffer</span>
</dd>
</dl>
</dd>
<hr>
<dt class="name" id="~ServiceDefinition">
<h4 id="~ServiceDefinition">ServiceDefinition</h4>
</dt>
<dd>
<div class="description">
<p>An object that completely defines a service.</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">Object.&lt;string, <a href="grpc.html#~MethodDefinition">grpc~MethodDefinition</a>></span>
</li>
</ul>
<dl class="details">
</dl>
</dd>
<hr>
<dt class="name" id="~ServiceError">
<h4 id="~ServiceError">ServiceError</h4>
</dt>
<dd>
<div class="description">
<p>Describes how a request has failed. The member <code>message</code> will be the same as
<code>details</code> in <a href="grpc.html#~StatusObject">grpc~StatusObject</a>, and <code>code</code> and <code>metadata</code> are the
same as in that object.</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">Error</span>
</li>
</ul>
<dl class="details">
<h5 class="subsection-title">Properties:</h5>
<dl>
<table class="props table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>code</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"><p>The error code, a key of <a href="grpc.html#.status">grpc.status</a> that is
not <code>grpc.status.OK</code></p></td>
</tr>
<tr>
<td class="name"><code>metadata</code></td>
<td class="type">
<span class="param-type"><a href="grpc.Metadata.html">grpc.Metadata</a></span>
</td>
<td class="description last"><p>Trailing metadata sent with the status,
if applicable</p></td>
</tr>
</tbody>
</table>
</dl>
</dl>
</dd>
<hr>
<dt class="name" id="~StatusObject">
<h4 id="~StatusObject">StatusObject</h4>
</dt>
<dd>
<div class="description">
<p>Represents the status of a completed request. If <code>code</code> is
<a href="grpc.html#.status">grpc.status</a>.OK, then the request has completed successfully.
Otherwise, the request has failed, <code>details</code> will contain a description of
the error. Either way, <code>metadata</code> contains the trailing response metadata
sent by the server when it finishes processing the call.</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">object</span>
</li>
</ul>
<dl class="details">
<h5 class="subsection-title">Properties:</h5>
<dl>
<table class="props table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>code</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"><p>The error code, a key of <a href="grpc.html#.status">grpc.status</a></p></td>
</tr>
<tr>
<td class="name"><code>details</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"><p>Human-readable description of the status</p></td>
</tr>
<tr>
<td class="name"><code>metadata</code></td>
<td class="type">
<span class="param-type"><a href="grpc.Metadata.html">grpc.Metadata</a></span>
</td>
<td class="description last"><p>Trailing metadata sent with the status,
if applicable</p></td>
</tr>
</tbody>
</table>
</dl>
</dl>
</dd>
</dl>
</article>
</section>
</div>
</div>
<div class="clearfix"></div>
<div class="col-md-3">
<div id="toc" class="col-md-3 hidden-xs hidden-sm hidden-md"></div>
</div>
</div>
</div>
<div class="modal fade" id="searchResults">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">Search results</h4>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div>
<footer>
<span class="jsdoc-message">
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a>
on 2019-07-15T16:38:16-07:00
using the <a href="https://github.com/docstrap/docstrap">DocStrap template</a>.
</span>
</footer>
<script src="scripts/docstrap.lib.js"></script>
<script src="scripts/toc.js"></script>
<script type="text/javascript" src="scripts/fulltext-search-ui.js"></script>
<script>
$( function () {
$( "[id*='$']" ).each( function () {
var $this = $( this );
$this.attr( "id", $this.attr( "id" ).replace( "$", "__" ) );
} );
$( ".tutorial-section pre, .readme-section pre, pre.prettyprint.source" ).each( function () {
var $this = $( this );
var example = $this.find( "code" );
exampleText = example.html();
var lang = /{@lang (.*?)}/.exec( exampleText );
if ( lang && lang[1] ) {
exampleText = exampleText.replace( lang[0], "" );
example.html( exampleText );
lang = lang[1];
} else {
var langClassMatch = example.parent()[0].className.match(/lang\-(\S+)/);
lang = langClassMatch ? langClassMatch[1] : "javascript";
}
if ( lang ) {
$this
.addClass( "sunlight-highlight-" + lang )
.addClass( "linenums" )
.html( example.html() );
}
} );
Sunlight.highlightAll( {
lineNumbers : false,
showMenu : true,
enableDoclinks : true
} );
$.catchAnchorLinks( {
navbarOffset: 10
} );
$( "#toc" ).toc( {
anchorName : function ( i, heading, prefix ) {
return $( heading ).attr( "id" ) || ( prefix + i );
},
selectors : "#toc-content h1,#toc-content h2,#toc-content h3,#toc-content h4",
showAndHide : false,
smoothScrolling: true
} );
$( "#main span[id^='toc']" ).addClass( "toc-shim" );
$( '.dropdown-toggle' ).dropdown();
$( "table" ).each( function () {
var $this = $( this );
$this.addClass('table');
} );
} );
</script>
<!--Navigation and Symbol Display-->
<!--Google Analytics-->
<script type="text/javascript">
$(document).ready(function() {
SearcherDisplay.init();
});
</script>
</body>
</html>