123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
- <meta name="generator" content="Doxygen 1.8.17"/>
- <meta name="viewport" content="width=device-width, initial-scale=1"/>
- <title>GRPC C++: grpc::ServerInterface Class Reference</title>
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="jquery.js"></script>
- <script type="text/javascript" src="dynsections.js"></script>
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="search/searchdata.js"></script>
- <script type="text/javascript" src="search/search.js"></script>
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
- </head>
- <body>
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
- <div id="titlearea">
- <table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">GRPC C++
-  <span id="projectnumber">1.36.1</span>
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.8.17 -->
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
- /* @license-end */
- </script>
- <script type="text/javascript" src="menudata.js"></script>
- <script type="text/javascript" src="menu.js"></script>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
- $(function() {
- initMenu('',true,false,'search.php','Search');
- $(document).ready(function() { init_search(); });
- });
- /* @license-end */</script>
- <div id="main-nav"></div>
- <!-- window showing the filter options -->
- <div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
- </div>
- <!-- iframe showing the search results (closed by default) -->
- <div id="MSearchResultsWindow">
- <iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
- </iframe>
- </div>
- <div id="nav-path" class="navpath">
- <ul>
- <li class="navelem"><a class="el" href="namespacegrpc.html">grpc</a></li><li class="navelem"><a class="el" href="classgrpc_1_1_server_interface.html">ServerInterface</a></li> </ul>
- </div>
- </div><!-- top -->
- <div class="header">
- <div class="summary">
- <a href="#nested-classes">Data Structures</a> |
- <a href="#pub-methods">Public Member Functions</a> |
- <a href="#pro-methods">Protected Member Functions</a> |
- <a href="#friends">Friends</a> </div>
- <div class="headertitle">
- <div class="title">grpc::ServerInterface Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
- </div><!--header-->
- <div class="contents">
- <p><code>#include <<a class="el" href="grpcpp_2impl_2codegen_2server__interface_8h_source.html">server_interface.h</a>></code></p>
- <table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
- Data Structures</h2></td></tr>
- <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface_1_1_base_async_request.html">BaseAsyncRequest</a></td></tr>
- <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface_1_1experimental__registration__interface.html">experimental_registration_interface</a></td></tr>
- <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">NOTE: class <a class="el" href="classgrpc_1_1_server_interface_1_1experimental__registration__interface.html" title="NOTE: class experimental_registration_interface is not part of the public API of this class TODO(vjpa...">experimental_registration_interface</a> is not part of the public API of this class TODO(vjpai): Move these contents to public API when no longer experimental. <a href="classgrpc_1_1_server_interface_1_1experimental__registration__interface.html#details">More...</a><br /></td></tr>
- <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface_1_1_generic_async_request.html">GenericAsyncRequest</a></td></tr>
- <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface_1_1_no_payload_async_request.html">NoPayloadAsyncRequest</a></td></tr>
- <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface_1_1_payload_async_request.html">PayloadAsyncRequest</a></td></tr>
- <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface_1_1_registered_async_request.html">RegisteredAsyncRequest</a></td></tr>
- <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classgrpc_1_1_server_interface_1_1_registered_async_request.html" title="RegisteredAsyncRequest is not part of the C++ API.">RegisteredAsyncRequest</a> is not part of the C++ API. <a href="classgrpc_1_1_server_interface_1_1_registered_async_request.html#details">More...</a><br /></td></tr>
- <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
- Public Member Functions</h2></td></tr>
- <tr class="memitem:a5a0d58f2ecd8c878cde5f8cfd9d8a3e5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface.html#a5a0d58f2ecd8c878cde5f8cfd9d8a3e5">~ServerInterface</a> () override</td></tr>
- <tr class="separator:a5a0d58f2ecd8c878cde5f8cfd9d8a3e5"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a644772d11101318f1424e595dee73ccf"><td class="memTemplParams" colspan="2">template<class T > </td></tr>
- <tr class="memitem:a644772d11101318f1424e595dee73ccf"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface.html#a644772d11101318f1424e595dee73ccf">Shutdown</a> (const T &deadline)</td></tr>
- <tr class="memdesc:a644772d11101318f1424e595dee73ccf"><td class="mdescLeft"> </td><td class="mdescRight"><em>Shutdown</em> does the following things: <a href="classgrpc_1_1_server_interface.html#a644772d11101318f1424e595dee73ccf">More...</a><br /></td></tr>
- <tr class="separator:a644772d11101318f1424e595dee73ccf"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a6a1d337270116c95f387e0abf01f6c6c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface.html#a6a1d337270116c95f387e0abf01f6c6c">Shutdown</a> ()</td></tr>
- <tr class="memdesc:a6a1d337270116c95f387e0abf01f6c6c"><td class="mdescLeft"> </td><td class="mdescRight">Shutdown the server without a deadline and forced cancellation. <a href="classgrpc_1_1_server_interface.html#a6a1d337270116c95f387e0abf01f6c6c">More...</a><br /></td></tr>
- <tr class="separator:a6a1d337270116c95f387e0abf01f6c6c"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ac36477b6a7593a4e4608c7eb712b0d70"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface.html#ac36477b6a7593a4e4608c7eb712b0d70">Wait</a> ()=0</td></tr>
- <tr class="memdesc:ac36477b6a7593a4e4608c7eb712b0d70"><td class="mdescLeft"> </td><td class="mdescRight">Block waiting for all work to complete. <a href="classgrpc_1_1_server_interface.html#ac36477b6a7593a4e4608c7eb712b0d70">More...</a><br /></td></tr>
- <tr class="separator:ac36477b6a7593a4e4608c7eb712b0d70"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pub_methods_classgrpc_1_1internal_1_1_call_hook"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classgrpc_1_1internal_1_1_call_hook')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classgrpc_1_1internal_1_1_call_hook.html">grpc::internal::CallHook</a></td></tr>
- <tr class="memitem:a351f3060b7d6378dabcec53d21842487 inherit pub_methods_classgrpc_1_1internal_1_1_call_hook"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1internal_1_1_call_hook.html#a351f3060b7d6378dabcec53d21842487">~CallHook</a> ()</td></tr>
- <tr class="separator:a351f3060b7d6378dabcec53d21842487 inherit pub_methods_classgrpc_1_1internal_1_1_call_hook"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
- Protected Member Functions</h2></td></tr>
- <tr class="memitem:a340434ec348e1e8ed4fa2fb87f3194cc"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface.html#a340434ec348e1e8ed4fa2fb87f3194cc">RegisterService</a> (const std::string *host, <a class="el" href="classgrpc_1_1_service.html">Service</a> *service)=0</td></tr>
- <tr class="memdesc:a340434ec348e1e8ed4fa2fb87f3194cc"><td class="mdescLeft"> </td><td class="mdescRight">Register a service. <a href="classgrpc_1_1_server_interface.html#a340434ec348e1e8ed4fa2fb87f3194cc">More...</a><br /></td></tr>
- <tr class="separator:a340434ec348e1e8ed4fa2fb87f3194cc"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:adaddf784fcb65fca743b04e1803f72ae"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface.html#adaddf784fcb65fca743b04e1803f72ae">RegisterAsyncGenericService</a> (<a class="el" href="classgrpc_1_1_async_generic_service.html">AsyncGenericService</a> *service)=0</td></tr>
- <tr class="memdesc:adaddf784fcb65fca743b04e1803f72ae"><td class="mdescLeft"> </td><td class="mdescRight">Register a generic service. <a href="classgrpc_1_1_server_interface.html#adaddf784fcb65fca743b04e1803f72ae">More...</a><br /></td></tr>
- <tr class="separator:adaddf784fcb65fca743b04e1803f72ae"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a4c80fc106b3e6ef41cfca7d8ab8eda43"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgrpc_1_1_server_interface_1_1experimental__registration__interface.html">experimental_registration_interface</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface.html#a4c80fc106b3e6ef41cfca7d8ab8eda43">experimental_registration</a> ()</td></tr>
- <tr class="memdesc:a4c80fc106b3e6ef41cfca7d8ab8eda43"><td class="mdescLeft"> </td><td class="mdescRight">NOTE: The function <a class="el" href="classgrpc_1_1_server_interface.html#a4c80fc106b3e6ef41cfca7d8ab8eda43" title="NOTE: The function experimental_registration() is not stable public API.">experimental_registration()</a> is not stable public API. <a href="classgrpc_1_1_server_interface.html#a4c80fc106b3e6ef41cfca7d8ab8eda43">More...</a><br /></td></tr>
- <tr class="separator:a4c80fc106b3e6ef41cfca7d8ab8eda43"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a416cf42ee17bdc3a4109f614610dad02"><td class="memItemLeft" align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface.html#a416cf42ee17bdc3a4109f614610dad02">AddListeningPort</a> (const std::string &addr, <a class="el" href="classgrpc_1_1_server_credentials.html">ServerCredentials</a> *creds)=0</td></tr>
- <tr class="memdesc:a416cf42ee17bdc3a4109f614610dad02"><td class="mdescLeft"> </td><td class="mdescRight">Tries to bind <em>server</em> to the given <em>addr</em>. <a href="classgrpc_1_1_server_interface.html#a416cf42ee17bdc3a4109f614610dad02">More...</a><br /></td></tr>
- <tr class="separator:a416cf42ee17bdc3a4109f614610dad02"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a63988b08374706068bae916b2f8621a8"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface.html#a63988b08374706068bae916b2f8621a8">Start</a> (::<a class="el" href="classgrpc_1_1_server_completion_queue.html">grpc::ServerCompletionQueue</a> **cqs, size_t num_cqs)=0</td></tr>
- <tr class="memdesc:a63988b08374706068bae916b2f8621a8"><td class="mdescLeft"> </td><td class="mdescRight">Start the server. <a href="classgrpc_1_1_server_interface.html#a63988b08374706068bae916b2f8621a8">More...</a><br /></td></tr>
- <tr class="separator:a63988b08374706068bae916b2f8621a8"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a862fd9a2d64e66447d41d0aba40af2f9"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface.html#a862fd9a2d64e66447d41d0aba40af2f9">ShutdownInternal</a> (<a class="el" href="structgpr__timespec.html">gpr_timespec</a> deadline)=0</td></tr>
- <tr class="separator:a862fd9a2d64e66447d41d0aba40af2f9"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a89798a3a429531aa38a4afa4844ac7c0"><td class="memItemLeft" align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface.html#a89798a3a429531aa38a4afa4844ac7c0">max_receive_message_size</a> () const =0</td></tr>
- <tr class="separator:a89798a3a429531aa38a4afa4844ac7c0"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a8e9cf80377d3fd1f110089ad16ec79e7"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="grpc__types_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface.html#a8e9cf80377d3fd1f110089ad16ec79e7">server</a> ()=0</td></tr>
- <tr class="separator:a8e9cf80377d3fd1f110089ad16ec79e7"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:aa8b90dc86f9cecc8554680fb33f67a68"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface.html#aa8b90dc86f9cecc8554680fb33f67a68">PerformOpsOnCall</a> (<a class="el" href="classgrpc_1_1internal_1_1_call_op_set_interface.html">internal::CallOpSetInterface</a> *ops, <a class="el" href="classgrpc_1_1internal_1_1_call.html">internal::Call</a> *call) override=0</td></tr>
- <tr class="separator:aa8b90dc86f9cecc8554680fb33f67a68"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:acec5579d7e5d568a992367051224ca80"><td class="memTemplParams" colspan="2">template<class Message > </td></tr>
- <tr class="memitem:acec5579d7e5d568a992367051224ca80"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface.html#acec5579d7e5d568a992367051224ca80">RequestAsyncCall</a> (<a class="el" href="classgrpc_1_1internal_1_1_rpc_service_method.html">internal::RpcServiceMethod</a> *method, ::<a class="el" href="classgrpc_1_1_server_context.html">grpc::ServerContext</a> *context, <a class="el" href="classgrpc_1_1internal_1_1_server_async_streaming_interface.html">internal::ServerAsyncStreamingInterface</a> *stream, ::<a class="el" href="classgrpc_1_1_completion_queue.html">grpc::CompletionQueue</a> *call_cq, ::<a class="el" href="classgrpc_1_1_server_completion_queue.html">grpc::ServerCompletionQueue</a> *notification_cq, void *tag, Message *message)</td></tr>
- <tr class="separator:acec5579d7e5d568a992367051224ca80"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:acaf1e2972cebf65c5457b55aa8f6bf46"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface.html#acaf1e2972cebf65c5457b55aa8f6bf46">RequestAsyncCall</a> (<a class="el" href="classgrpc_1_1internal_1_1_rpc_service_method.html">internal::RpcServiceMethod</a> *method, ::<a class="el" href="classgrpc_1_1_server_context.html">grpc::ServerContext</a> *context, <a class="el" href="classgrpc_1_1internal_1_1_server_async_streaming_interface.html">internal::ServerAsyncStreamingInterface</a> *stream, ::<a class="el" href="classgrpc_1_1_completion_queue.html">grpc::CompletionQueue</a> *call_cq, ::<a class="el" href="classgrpc_1_1_server_completion_queue.html">grpc::ServerCompletionQueue</a> *notification_cq, void *tag)</td></tr>
- <tr class="separator:acaf1e2972cebf65c5457b55aa8f6bf46"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a178b80a7f2cbd6912daa12db8d9bfba4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface.html#a178b80a7f2cbd6912daa12db8d9bfba4">RequestAsyncGenericCall</a> (<a class="el" href="classgrpc_1_1_generic_server_context.html">GenericServerContext</a> *context, <a class="el" href="classgrpc_1_1internal_1_1_server_async_streaming_interface.html">internal::ServerAsyncStreamingInterface</a> *stream, ::<a class="el" href="classgrpc_1_1_completion_queue.html">grpc::CompletionQueue</a> *call_cq, ::<a class="el" href="classgrpc_1_1_server_completion_queue.html">grpc::ServerCompletionQueue</a> *notification_cq, void *tag)</td></tr>
- <tr class="separator:a178b80a7f2cbd6912daa12db8d9bfba4"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
- Friends</h2></td></tr>
- <tr class="memitem:ae167bce70b5b1c42985d3a22425c8e66"><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_interface.html#ae167bce70b5b1c42985d3a22425c8e66">::grpc::Service</a></td></tr>
- <tr class="separator:ae167bce70b5b1c42985d3a22425c8e66"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <h2 class="groupheader">Constructor & Destructor Documentation</h2>
- <a id="a5a0d58f2ecd8c878cde5f8cfd9d8a3e5"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a5a0d58f2ecd8c878cde5f8cfd9d8a3e5">◆ </a></span>~ServerInterface()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">grpc::ServerInterface::~ServerInterface </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <h2 class="groupheader">Member Function Documentation</h2>
- <a id="a416cf42ee17bdc3a4109f614610dad02"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a416cf42ee17bdc3a4109f614610dad02">◆ </a></span>AddListeningPort()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual int grpc::ServerInterface::AddListeningPort </td>
- <td>(</td>
- <td class="paramtype">const std::string & </td>
- <td class="paramname"><em>addr</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classgrpc_1_1_server_credentials.html">ServerCredentials</a> * </td>
- <td class="paramname"><em>creds</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Tries to bind <em>server</em> to the given <em>addr</em>. </p>
- <p>It can be invoked multiple times.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">addr</td><td>The address to try to bind to the server (eg, localhost:1234, 192.168.1.1:31416, [::1]:27182, etc.). \params creds The credentials associated with the server.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>bound port number on success, 0 on failure.</dd></dl>
- <dl class="section warning"><dt>Warning</dt><dd>It's an error to call this method on an already started server. </dd></dl>
- <p>Implemented in <a class="el" href="classgrpc_1_1_server.html#a3fb2f6e7339bd065f5c8069c21daf378">grpc::Server</a>.</p>
- </div>
- </div>
- <a id="a4c80fc106b3e6ef41cfca7d8ab8eda43"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a4c80fc106b3e6ef41cfca7d8ab8eda43">◆ </a></span>experimental_registration()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual <a class="el" href="classgrpc_1_1_server_interface_1_1experimental__registration__interface.html">experimental_registration_interface</a>* grpc::ServerInterface::experimental_registration </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>NOTE: The function <a class="el" href="classgrpc_1_1_server_interface.html#a4c80fc106b3e6ef41cfca7d8ab8eda43" title="NOTE: The function experimental_registration() is not stable public API.">experimental_registration()</a> is not stable public API. </p>
- <p>It is a view to the experimental components of this class. It may be changed or removed at any time. May not be abstract since this is a post-1.0 API addition </p>
- </div>
- </div>
- <a id="a89798a3a429531aa38a4afa4844ac7c0"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a89798a3a429531aa38a4afa4844ac7c0">◆ </a></span>max_receive_message_size()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual int grpc::ServerInterface::max_receive_message_size </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="aa8b90dc86f9cecc8554680fb33f67a68"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#aa8b90dc86f9cecc8554680fb33f67a68">◆ </a></span>PerformOpsOnCall()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">void grpc::ServerInterface::PerformOpsOnCall </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classgrpc_1_1internal_1_1_call_op_set_interface.html">internal::CallOpSetInterface</a> * </td>
- <td class="paramname"><em>ops</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classgrpc_1_1internal_1_1_call.html">internal::Call</a> * </td>
- <td class="paramname"><em>call</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Implements <a class="el" href="classgrpc_1_1internal_1_1_call_hook.html#a1c14655572215f6256fa0dfee7f138bc">grpc::internal::CallHook</a>.</p>
- </div>
- </div>
- <a id="adaddf784fcb65fca743b04e1803f72ae"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#adaddf784fcb65fca743b04e1803f72ae">◆ </a></span>RegisterAsyncGenericService()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void grpc::ServerInterface::RegisterAsyncGenericService </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classgrpc_1_1_async_generic_service.html">AsyncGenericService</a> * </td>
- <td class="paramname"><em>service</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Register a generic service. </p>
- <p>This call does not take ownership of the service. The service must exist for the lifetime of the <a class="el" href="classgrpc_1_1_server.html" title="Represents a gRPC server.">Server</a> instance. </p>
- </div>
- </div>
- <a id="a340434ec348e1e8ed4fa2fb87f3194cc"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a340434ec348e1e8ed4fa2fb87f3194cc">◆ </a></span>RegisterService()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual bool grpc::ServerInterface::RegisterService </td>
- <td>(</td>
- <td class="paramtype">const std::string * </td>
- <td class="paramname"><em>host</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classgrpc_1_1_service.html">Service</a> * </td>
- <td class="paramname"><em>service</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Register a service. </p>
- <p>This call does not take ownership of the service. The service must exist for the lifetime of the <a class="el" href="classgrpc_1_1_server.html" title="Represents a gRPC server.">Server</a> instance. </p>
- <p>Implemented in <a class="el" href="classgrpc_1_1_server.html#a8fb988b3ce08eef46c059b2ba84b721d">grpc::Server</a>.</p>
- </div>
- </div>
- <a id="acaf1e2972cebf65c5457b55aa8f6bf46"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#acaf1e2972cebf65c5457b55aa8f6bf46">◆ </a></span>RequestAsyncCall() <span class="overload">[1/2]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">void grpc::ServerInterface::RequestAsyncCall </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classgrpc_1_1internal_1_1_rpc_service_method.html">internal::RpcServiceMethod</a> * </td>
- <td class="paramname"><em>method</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">::<a class="el" href="classgrpc_1_1_server_context.html">grpc::ServerContext</a> * </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classgrpc_1_1internal_1_1_server_async_streaming_interface.html">internal::ServerAsyncStreamingInterface</a> * </td>
- <td class="paramname"><em>stream</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">::<a class="el" href="classgrpc_1_1_completion_queue.html">grpc::CompletionQueue</a> * </td>
- <td class="paramname"><em>call_cq</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">::<a class="el" href="classgrpc_1_1_server_completion_queue.html">grpc::ServerCompletionQueue</a> * </td>
- <td class="paramname"><em>notification_cq</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>tag</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="acec5579d7e5d568a992367051224ca80"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#acec5579d7e5d568a992367051224ca80">◆ </a></span>RequestAsyncCall() <span class="overload">[2/2]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class Message > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">void grpc::ServerInterface::RequestAsyncCall </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classgrpc_1_1internal_1_1_rpc_service_method.html">internal::RpcServiceMethod</a> * </td>
- <td class="paramname"><em>method</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">::<a class="el" href="classgrpc_1_1_server_context.html">grpc::ServerContext</a> * </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classgrpc_1_1internal_1_1_server_async_streaming_interface.html">internal::ServerAsyncStreamingInterface</a> * </td>
- <td class="paramname"><em>stream</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">::<a class="el" href="classgrpc_1_1_completion_queue.html">grpc::CompletionQueue</a> * </td>
- <td class="paramname"><em>call_cq</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">::<a class="el" href="classgrpc_1_1_server_completion_queue.html">grpc::ServerCompletionQueue</a> * </td>
- <td class="paramname"><em>notification_cq</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>tag</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">Message * </td>
- <td class="paramname"><em>message</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="a178b80a7f2cbd6912daa12db8d9bfba4"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a178b80a7f2cbd6912daa12db8d9bfba4">◆ </a></span>RequestAsyncGenericCall()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">void grpc::ServerInterface::RequestAsyncGenericCall </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classgrpc_1_1_generic_server_context.html">GenericServerContext</a> * </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classgrpc_1_1internal_1_1_server_async_streaming_interface.html">internal::ServerAsyncStreamingInterface</a> * </td>
- <td class="paramname"><em>stream</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">::<a class="el" href="classgrpc_1_1_completion_queue.html">grpc::CompletionQueue</a> * </td>
- <td class="paramname"><em>call_cq</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">::<a class="el" href="classgrpc_1_1_server_completion_queue.html">grpc::ServerCompletionQueue</a> * </td>
- <td class="paramname"><em>notification_cq</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>tag</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="a8e9cf80377d3fd1f110089ad16ec79e7"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a8e9cf80377d3fd1f110089ad16ec79e7">◆ </a></span>server()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual <a class="el" href="grpc__types_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a>* grpc::ServerInterface::server </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Implemented in <a class="el" href="classgrpc_1_1_server.html#a01bdfb4554d12a10bdc9cf875ffa74dd">grpc::Server</a>.</p>
- </div>
- </div>
- <a id="a6a1d337270116c95f387e0abf01f6c6c"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a6a1d337270116c95f387e0abf01f6c6c">◆ </a></span>Shutdown() <span class="overload">[1/2]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">void grpc::ServerInterface::Shutdown </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Shutdown the server without a deadline and forced cancellation. </p>
- <p>All completion queue associated with the server (for example, for async serving) must be shutdown <em>after</em> this method has returned: See <em><a class="el" href="classgrpc_1_1_server_builder.html#a62fb13bc32374e4aa01ae9eb9fee4dda" title="Add a completion queue for handling asynchronous services.">ServerBuilder::AddCompletionQueue</a></em> for details. </p>
- </div>
- </div>
- <a id="a644772d11101318f1424e595dee73ccf"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a644772d11101318f1424e595dee73ccf">◆ </a></span>Shutdown() <span class="overload">[2/2]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class T > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">void grpc::ServerInterface::Shutdown </td>
- <td>(</td>
- <td class="paramtype">const T & </td>
- <td class="paramname"><em>deadline</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p><em>Shutdown</em> does the following things: </p>
- <ol type="1">
- <li>Shutdown the server: deactivate all listening ports, mark it in "shutdown mode" so that further call Request's or incoming RPC matches are no longer allowed. Also return all Request'ed-but-not-yet-active calls as failed (!ok). This refers to calls that have been requested at the server by the server-side library or application code but that have not yet been matched to incoming RPCs from the client. Note that this would even include default calls added automatically by the gRPC C++ API without the user's input (e.g., "Unimplemented RPC method")</li>
- <li>Block until all rpc method handlers invoked automatically by the sync API finish.</li>
- <li>If all pending calls complete (and all their operations are retrieved by Next) before <em>deadline</em> expires, this finishes gracefully. Otherwise, forcefully cancel all pending calls associated with the server after <em>deadline</em> expires. In the case of the sync API, if the RPC function for a streaming call has already been started and takes a week to complete, the RPC function won't be forcefully terminated (since that would leave state corrupt and incomplete) and the method handler will just keep running (which will prevent the server from completing the "join" operation that it needs to do at shutdown time).</li>
- </ol>
- <p>All completion queue associated with the server (for example, for async serving) must be shutdown <em>after</em> this method has returned: See <em><a class="el" href="classgrpc_1_1_server_builder.html#a62fb13bc32374e4aa01ae9eb9fee4dda" title="Add a completion queue for handling asynchronous services.">ServerBuilder::AddCompletionQueue</a></em> for details. They must also be drained (by repeated Next) after being shutdown.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">deadline</td><td>How long to wait until pending rpcs are forcefully terminated. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="a862fd9a2d64e66447d41d0aba40af2f9"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a862fd9a2d64e66447d41d0aba40af2f9">◆ </a></span>ShutdownInternal()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void grpc::ServerInterface::ShutdownInternal </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structgpr__timespec.html">gpr_timespec</a> </td>
- <td class="paramname"><em>deadline</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <a id="a63988b08374706068bae916b2f8621a8"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a63988b08374706068bae916b2f8621a8">◆ </a></span>Start()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void grpc::ServerInterface::Start </td>
- <td>(</td>
- <td class="paramtype">::<a class="el" href="classgrpc_1_1_server_completion_queue.html">grpc::ServerCompletionQueue</a> ** </td>
- <td class="paramname"><em>cqs</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>num_cqs</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Start the server. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">cqs</td><td>Completion queues for handling asynchronous services. The caller is required to keep all completion queues live until the server is destroyed. </td></tr>
- <tr><td class="paramname">num_cqs</td><td>How many completion queues does <em>cqs</em> hold. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a id="ac36477b6a7593a4e4608c7eb712b0d70"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ac36477b6a7593a4e4608c7eb712b0d70">◆ </a></span>Wait()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void grpc::ServerInterface::Wait </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Block waiting for all work to complete. </p>
- <dl class="section warning"><dt>Warning</dt><dd>The server must be either shutting down or some other thread must call <em>Shutdown</em> for this function to ever return. </dd></dl>
- <p>Implemented in <a class="el" href="classgrpc_1_1_server.html#a79f3e43452fd885df4002ed541d8ca7c">grpc::Server</a>.</p>
- </div>
- </div>
- <h2 class="groupheader">Friends And Related Function Documentation</h2>
- <a id="ae167bce70b5b1c42985d3a22425c8e66"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ae167bce70b5b1c42985d3a22425c8e66">◆ </a></span>::grpc::Service</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_service.html">grpc::Service</a></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">friend</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- </div>
- </div>
- <hr/>The documentation for this class was generated from the following file:<ul>
- <li>include/grpcpp/impl/codegen/<a class="el" href="grpcpp_2impl_2codegen_2server__interface_8h_source.html">server_interface.h</a></li>
- </ul>
- </div><!-- contents -->
- <!-- start footer part -->
- <hr class="footer"/><address class="footer"><small>
- Generated on Wed Mar 3 2021 19:17:25 for GRPC C++ by  <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/>
- </a> 1.8.17
- </small></address>
- </body>
- </html>
|