classgrpc_1_1_server_builder.html 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <meta name="generator" content="Doxygen 1.8.11"/>
  7. <title>GRPC C++: grpc::ServerBuilder Class Reference</title>
  8. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  9. <script type="text/javascript" src="jquery.js"></script>
  10. <script type="text/javascript" src="dynsections.js"></script>
  11. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  12. <script type="text/javascript" src="search/searchdata.js"></script>
  13. <script type="text/javascript" src="search/search.js"></script>
  14. <script type="text/javascript">
  15. $(document).ready(function() { init_search(); });
  16. </script>
  17. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  18. </head>
  19. <body>
  20. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  21. <div id="titlearea">
  22. <table cellspacing="0" cellpadding="0">
  23. <tbody>
  24. <tr style="height: 56px;">
  25. <td id="projectalign" style="padding-left: 0.5em;">
  26. <div id="projectname">GRPC C++
  27. &#160;<span id="projectnumber">1.0.0</span>
  28. </div>
  29. </td>
  30. </tr>
  31. </tbody>
  32. </table>
  33. </div>
  34. <!-- end header part -->
  35. <!-- Generated by Doxygen 1.8.11 -->
  36. <script type="text/javascript">
  37. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  38. </script>
  39. <div id="navrow1" class="tabs">
  40. <ul class="tablist">
  41. <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  42. <li><a href="modules.html"><span>Modules</span></a></li>
  43. <li><a href="namespaces.html"><span>Namespaces</span></a></li>
  44. <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  45. <li><a href="files.html"><span>Files</span></a></li>
  46. <li>
  47. <div id="MSearchBox" class="MSearchBoxInactive">
  48. <span class="left">
  49. <img id="MSearchSelect" src="search/mag_sel.png"
  50. onmouseover="return searchBox.OnSearchSelectShow()"
  51. onmouseout="return searchBox.OnSearchSelectHide()"
  52. alt=""/>
  53. <input type="text" id="MSearchField" value="Search" accesskey="S"
  54. onfocus="searchBox.OnSearchFieldFocus(true)"
  55. onblur="searchBox.OnSearchFieldFocus(false)"
  56. onkeyup="searchBox.OnSearchFieldChange(event)"/>
  57. </span><span class="right">
  58. <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  59. </span>
  60. </div>
  61. </li>
  62. </ul>
  63. </div>
  64. <div id="navrow2" class="tabs2">
  65. <ul class="tablist">
  66. <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  67. <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
  68. <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
  69. <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
  70. </ul>
  71. </div>
  72. <!-- window showing the filter options -->
  73. <div id="MSearchSelectWindow"
  74. onmouseover="return searchBox.OnSearchSelectShow()"
  75. onmouseout="return searchBox.OnSearchSelectHide()"
  76. onkeydown="return searchBox.OnSearchSelectKey(event)">
  77. </div>
  78. <!-- iframe showing the search results (closed by default) -->
  79. <div id="MSearchResultsWindow">
  80. <iframe src="javascript:void(0)" frameborder="0"
  81. name="MSearchResults" id="MSearchResults">
  82. </iframe>
  83. </div>
  84. <div id="nav-path" class="navpath">
  85. <ul>
  86. <li class="navelem"><a class="el" href="namespacegrpc.html">grpc</a></li><li class="navelem"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a></li> </ul>
  87. </div>
  88. </div><!-- top -->
  89. <div class="header">
  90. <div class="summary">
  91. <a href="#nested-classes">Data Structures</a> &#124;
  92. <a href="#pub-methods">Public Member Functions</a> &#124;
  93. <a href="#pub-static-methods">Static Public Member Functions</a> &#124;
  94. <a href="#friends">Friends</a> </div>
  95. <div class="headertitle">
  96. <div class="title">grpc::ServerBuilder Class Reference</div> </div>
  97. </div><!--header-->
  98. <div class="contents">
  99. <p>A builder class for the creation and startup of <em><a class="el" href="classgrpc_1_1_server.html" title="Models a gRPC server. ">grpc::Server</a></em> instances.
  100. <a href="classgrpc_1_1_server_builder.html#details">More...</a></p>
  101. <p><code>#include &lt;<a class="el" href="server__builder_8h_source.html">server_builder.h</a>&gt;</code></p>
  102. <table class="memberdecls">
  103. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  104. Public Member Functions</h2></td></tr>
  105. <tr class="memitem:a208346e343cd01351492f0cace59b242"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_builder.html#a208346e343cd01351492f0cace59b242">ServerBuilder</a> ()</td></tr>
  106. <tr class="separator:a208346e343cd01351492f0cace59b242"><td class="memSeparator" colspan="2">&#160;</td></tr>
  107. <tr class="memitem:a5300484238239412a11e0a9c49435d7e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_builder.html#a5300484238239412a11e0a9c49435d7e">RegisterService</a> (<a class="el" href="classgrpc_1_1_service.html">Service</a> *service)</td></tr>
  108. <tr class="memdesc:a5300484238239412a11e0a9c49435d7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a service. <a href="#a5300484238239412a11e0a9c49435d7e">More...</a><br /></td></tr>
  109. <tr class="separator:a5300484238239412a11e0a9c49435d7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  110. <tr class="memitem:a06468091b05b8bba676a0b94ca8e1281"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_builder.html#a06468091b05b8bba676a0b94ca8e1281">RegisterAsyncGenericService</a> (<a class="el" href="classgrpc_1_1_async_generic_service.html">AsyncGenericService</a> *service)</td></tr>
  111. <tr class="memdesc:a06468091b05b8bba676a0b94ca8e1281"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a generic service. <a href="#a06468091b05b8bba676a0b94ca8e1281">More...</a><br /></td></tr>
  112. <tr class="separator:a06468091b05b8bba676a0b94ca8e1281"><td class="memSeparator" colspan="2">&#160;</td></tr>
  113. <tr class="memitem:a0b06b5828b892feeb6541c8eeae2d542"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_builder.html#a0b06b5828b892feeb6541c8eeae2d542">RegisterService</a> (const <a class="el" href="namespacegrpc.html#ab04a87625da3bf85cdaf5e7856b00203">grpc::string</a> &amp;host, <a class="el" href="classgrpc_1_1_service.html">Service</a> *service)</td></tr>
  114. <tr class="memdesc:a0b06b5828b892feeb6541c8eeae2d542"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a service. <a href="#a0b06b5828b892feeb6541c8eeae2d542">More...</a><br /></td></tr>
  115. <tr class="separator:a0b06b5828b892feeb6541c8eeae2d542"><td class="memSeparator" colspan="2">&#160;</td></tr>
  116. <tr class="memitem:a13f4b030529c9f447e3a172a6d8a7e29"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_builder.html#a13f4b030529c9f447e3a172a6d8a7e29">SetMaxMessageSize</a> (int max_message_size)</td></tr>
  117. <tr class="memdesc:a13f4b030529c9f447e3a172a6d8a7e29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set max message size in bytes. <a href="#a13f4b030529c9f447e3a172a6d8a7e29">More...</a><br /></td></tr>
  118. <tr class="separator:a13f4b030529c9f447e3a172a6d8a7e29"><td class="memSeparator" colspan="2">&#160;</td></tr>
  119. <tr class="memitem:a26e4b20a377c4bbbe37c33aa72165034"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_builder.html#a26e4b20a377c4bbbe37c33aa72165034">SetCompressionAlgorithmSupportStatus</a> (<a class="el" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> <a class="el" href="classgrpc_1_1_server_builder.html#a27b5a3733140caef60846fc21977d6ba">algorithm</a>, bool enabled)</td></tr>
  120. <tr class="memdesc:a26e4b20a377c4bbbe37c33aa72165034"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the support status for compression algorithms. <a href="#a26e4b20a377c4bbbe37c33aa72165034">More...</a><br /></td></tr>
  121. <tr class="separator:a26e4b20a377c4bbbe37c33aa72165034"><td class="memSeparator" colspan="2">&#160;</td></tr>
  122. <tr class="memitem:ae10c6dc23ec295695710c0b4c14f9353"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_builder.html#ae10c6dc23ec295695710c0b4c14f9353">SetDefaultCompressionLevel</a> (<a class="el" href="compression__types_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a> <a class="el" href="classgrpc_1_1_server_builder.html#a99bc7fd30172c4e154b6942e1c221a1c">level</a>)</td></tr>
  123. <tr class="memdesc:ae10c6dc23ec295695710c0b4c14f9353"><td class="mdescLeft">&#160;</td><td class="mdescRight">The default compression level to use for all channel calls in the absence of a call-specific level. <a href="#ae10c6dc23ec295695710c0b4c14f9353">More...</a><br /></td></tr>
  124. <tr class="separator:ae10c6dc23ec295695710c0b4c14f9353"><td class="memSeparator" colspan="2">&#160;</td></tr>
  125. <tr class="memitem:a6ee516b7445ff4e1274a6d882f529504"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_builder.html#a6ee516b7445ff4e1274a6d882f529504">SetDefaultCompressionAlgorithm</a> (<a class="el" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> <a class="el" href="classgrpc_1_1_server_builder.html#a27b5a3733140caef60846fc21977d6ba">algorithm</a>)</td></tr>
  126. <tr class="memdesc:a6ee516b7445ff4e1274a6d882f529504"><td class="mdescLeft">&#160;</td><td class="mdescRight">The default compression algorithm to use for all channel calls in the absence of a call-specific level. <a href="#a6ee516b7445ff4e1274a6d882f529504">More...</a><br /></td></tr>
  127. <tr class="separator:a6ee516b7445ff4e1274a6d882f529504"><td class="memSeparator" colspan="2">&#160;</td></tr>
  128. <tr class="memitem:af0480c82eb5881f6d998ff85abe0c99a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_builder.html#af0480c82eb5881f6d998ff85abe0c99a">SetOption</a> (std::unique_ptr&lt; <a class="el" href="classgrpc_1_1_server_builder_option.html">ServerBuilderOption</a> &gt; option)</td></tr>
  129. <tr class="separator:af0480c82eb5881f6d998ff85abe0c99a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  130. <tr class="memitem:acc75463f5d82b7774a83a4073d904f90"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_builder.html#acc75463f5d82b7774a83a4073d904f90">AddListeningPort</a> (const <a class="el" href="namespacegrpc.html#ab04a87625da3bf85cdaf5e7856b00203">grpc::string</a> &amp;addr, std::shared_ptr&lt; <a class="el" href="classgrpc_1_1_server_credentials.html">ServerCredentials</a> &gt; creds, int *selected_port=nullptr)</td></tr>
  131. <tr class="memdesc:acc75463f5d82b7774a83a4073d904f90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tries to bind <em>server</em> to the given <em>addr</em>. <a href="#acc75463f5d82b7774a83a4073d904f90">More...</a><br /></td></tr>
  132. <tr class="separator:acc75463f5d82b7774a83a4073d904f90"><td class="memSeparator" colspan="2">&#160;</td></tr>
  133. <tr class="memitem:a960d55977e1aef56fd7b582037a01bbd"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgrpc_1_1_server_completion_queue.html">ServerCompletionQueue</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_builder.html#a960d55977e1aef56fd7b582037a01bbd">AddCompletionQueue</a> (bool is_frequently_polled=true)</td></tr>
  134. <tr class="memdesc:a960d55977e1aef56fd7b582037a01bbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a completion queue for handling asynchronous services. <a href="#a960d55977e1aef56fd7b582037a01bbd">More...</a><br /></td></tr>
  135. <tr class="separator:a960d55977e1aef56fd7b582037a01bbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
  136. <tr class="memitem:af284cd39b185043e8e92405c1ae0f310"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgrpc_1_1_server.html">Server</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_builder.html#af284cd39b185043e8e92405c1ae0f310">BuildAndStart</a> ()</td></tr>
  137. <tr class="memdesc:af284cd39b185043e8e92405c1ae0f310"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a running server which is ready for processing calls. <a href="#af284cd39b185043e8e92405c1ae0f310">More...</a><br /></td></tr>
  138. <tr class="separator:af284cd39b185043e8e92405c1ae0f310"><td class="memSeparator" colspan="2">&#160;</td></tr>
  139. </table><table class="memberdecls">
  140. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
  141. Static Public Member Functions</h2></td></tr>
  142. <tr class="memitem:ae37fe433154b148b9ea9ccb17ac1488a"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_builder.html#ae37fe433154b148b9ea9ccb17ac1488a">InternalAddPluginFactory</a> (std::unique_ptr&lt; <a class="el" href="classgrpc_1_1_server_builder_plugin.html">ServerBuilderPlugin</a> &gt;(*CreatePlugin)())</td></tr>
  143. <tr class="memdesc:ae37fe433154b148b9ea9ccb17ac1488a"><td class="mdescLeft">&#160;</td><td class="mdescRight">For internal use only: Register a <a class="el" href="classgrpc_1_1_server_builder_plugin.html">ServerBuilderPlugin</a> factory function. <a href="#ae37fe433154b148b9ea9ccb17ac1488a">More...</a><br /></td></tr>
  144. <tr class="separator:ae37fe433154b148b9ea9ccb17ac1488a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  145. </table><table class="memberdecls">
  146. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
  147. Friends</h2></td></tr>
  148. <tr class="memitem:a6d051c774efa6448928d2ca4062676d0"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_server_builder.html#a6d051c774efa6448928d2ca4062676d0">::grpc::testing::ServerBuilderPluginTest</a></td></tr>
  149. <tr class="separator:a6d051c774efa6448928d2ca4062676d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  150. </table>
  151. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  152. <div class="textblock"><p>A builder class for the creation and startup of <em><a class="el" href="classgrpc_1_1_server.html" title="Models a gRPC server. ">grpc::Server</a></em> instances. </p>
  153. </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  154. <a class="anchor" id="a208346e343cd01351492f0cace59b242"></a>
  155. <div class="memitem">
  156. <div class="memproto">
  157. <table class="memname">
  158. <tr>
  159. <td class="memname">grpc::ServerBuilder::ServerBuilder </td>
  160. <td>(</td>
  161. <td class="paramname"></td><td>)</td>
  162. <td></td>
  163. </tr>
  164. </table>
  165. </div><div class="memdoc">
  166. </div>
  167. </div>
  168. <h2 class="groupheader">Member Function Documentation</h2>
  169. <a class="anchor" id="a960d55977e1aef56fd7b582037a01bbd"></a>
  170. <div class="memitem">
  171. <div class="memproto">
  172. <table class="memname">
  173. <tr>
  174. <td class="memname">std::unique_ptr&lt;<a class="el" href="classgrpc_1_1_server_completion_queue.html">ServerCompletionQueue</a>&gt; grpc::ServerBuilder::AddCompletionQueue </td>
  175. <td>(</td>
  176. <td class="paramtype">bool&#160;</td>
  177. <td class="paramname"><em>is_frequently_polled</em> = <code>true</code></td><td>)</td>
  178. <td></td>
  179. </tr>
  180. </table>
  181. </div><div class="memdoc">
  182. <p>Add a completion queue for handling asynchronous services. </p>
  183. <p>Caller is required to shutdown the server prior to shutting down the returned completion queue. A typical usage scenario:</p>
  184. <p>// While building the server: <a class="el" href="classgrpc_1_1_server_builder.html" title="A builder class for the creation and startup of grpc::Server instances. ">ServerBuilder</a> builder; ... cq_ = builder.AddCompletionQueue(); server_ = builder.BuildAndStart();</p>
  185. <p>// While shutting down the server; server_-&gt;Shutdown(); cq_-&gt;Shutdown(); // Always <em>after</em> the associated server's Shutdown()!</p>
  186. <dl class="params"><dt>Parameters</dt><dd>
  187. <table class="params">
  188. <tr><td class="paramname">is_frequently_polled</td><td>This is an optional parameter to inform GRPC library about whether this completion queue would be frequently polled (i.e by calling Next() or AsyncNext()). The default value is 'true' and is the recommended setting. Setting this to 'false' (i.e not polling the completion queue frequently) will have a significantly negative performance impact and hence should not be used in production use cases. </td></tr>
  189. </table>
  190. </dd>
  191. </dl>
  192. </div>
  193. </div>
  194. <a class="anchor" id="acc75463f5d82b7774a83a4073d904f90"></a>
  195. <div class="memitem">
  196. <div class="memproto">
  197. <table class="memname">
  198. <tr>
  199. <td class="memname"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a>&amp; grpc::ServerBuilder::AddListeningPort </td>
  200. <td>(</td>
  201. <td class="paramtype">const <a class="el" href="namespacegrpc.html#ab04a87625da3bf85cdaf5e7856b00203">grpc::string</a> &amp;&#160;</td>
  202. <td class="paramname"><em>addr</em>, </td>
  203. </tr>
  204. <tr>
  205. <td class="paramkey"></td>
  206. <td></td>
  207. <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classgrpc_1_1_server_credentials.html">ServerCredentials</a> &gt;&#160;</td>
  208. <td class="paramname"><em>creds</em>, </td>
  209. </tr>
  210. <tr>
  211. <td class="paramkey"></td>
  212. <td></td>
  213. <td class="paramtype">int *&#160;</td>
  214. <td class="paramname"><em>selected_port</em> = <code>nullptr</code>&#160;</td>
  215. </tr>
  216. <tr>
  217. <td></td>
  218. <td>)</td>
  219. <td></td><td></td>
  220. </tr>
  221. </table>
  222. </div><div class="memdoc">
  223. <p>Tries to bind <em>server</em> to the given <em>addr</em>. </p>
  224. <p>It can be invoked multiple times.</p>
  225. <dl class="params"><dt>Parameters</dt><dd>
  226. <table class="params">
  227. <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.). creds The credentials associated with the server. </td></tr>
  228. <tr><td class="paramname">selected_port[out]</td><td>Upon success, updated to contain the port number. <em>nullptr</em> otherwise. </td></tr>
  229. </table>
  230. </dd>
  231. </dl>
  232. </div>
  233. </div>
  234. <a class="anchor" id="af284cd39b185043e8e92405c1ae0f310"></a>
  235. <div class="memitem">
  236. <div class="memproto">
  237. <table class="memname">
  238. <tr>
  239. <td class="memname">std::unique_ptr&lt;<a class="el" href="classgrpc_1_1_server.html">Server</a>&gt; grpc::ServerBuilder::BuildAndStart </td>
  240. <td>(</td>
  241. <td class="paramname"></td><td>)</td>
  242. <td></td>
  243. </tr>
  244. </table>
  245. </div><div class="memdoc">
  246. <p>Return a running server which is ready for processing calls. </p>
  247. </div>
  248. </div>
  249. <a class="anchor" id="ae37fe433154b148b9ea9ccb17ac1488a"></a>
  250. <div class="memitem">
  251. <div class="memproto">
  252. <table class="mlabels">
  253. <tr>
  254. <td class="mlabels-left">
  255. <table class="memname">
  256. <tr>
  257. <td class="memname">static void grpc::ServerBuilder::InternalAddPluginFactory </td>
  258. <td>(</td>
  259. <td class="paramtype">std::unique_ptr&lt; <a class="el" href="classgrpc_1_1_server_builder_plugin.html">ServerBuilderPlugin</a> &gt;(*)()&#160;</td>
  260. <td class="paramname"><em>CreatePlugin</em></td><td>)</td>
  261. <td></td>
  262. </tr>
  263. </table>
  264. </td>
  265. <td class="mlabels-right">
  266. <span class="mlabels"><span class="mlabel">static</span></span> </td>
  267. </tr>
  268. </table>
  269. </div><div class="memdoc">
  270. <p>For internal use only: Register a <a class="el" href="classgrpc_1_1_server_builder_plugin.html">ServerBuilderPlugin</a> factory function. </p>
  271. </div>
  272. </div>
  273. <a class="anchor" id="a06468091b05b8bba676a0b94ca8e1281"></a>
  274. <div class="memitem">
  275. <div class="memproto">
  276. <table class="memname">
  277. <tr>
  278. <td class="memname"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a>&amp; grpc::ServerBuilder::RegisterAsyncGenericService </td>
  279. <td>(</td>
  280. <td class="paramtype"><a class="el" href="classgrpc_1_1_async_generic_service.html">AsyncGenericService</a> *&#160;</td>
  281. <td class="paramname"><em>service</em></td><td>)</td>
  282. <td></td>
  283. </tr>
  284. </table>
  285. </div><div class="memdoc">
  286. <p>Register a generic service. </p>
  287. <p>Matches requests with any :authority </p>
  288. </div>
  289. </div>
  290. <a class="anchor" id="a5300484238239412a11e0a9c49435d7e"></a>
  291. <div class="memitem">
  292. <div class="memproto">
  293. <table class="memname">
  294. <tr>
  295. <td class="memname"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a>&amp; grpc::ServerBuilder::RegisterService </td>
  296. <td>(</td>
  297. <td class="paramtype"><a class="el" href="classgrpc_1_1_service.html">Service</a> *&#160;</td>
  298. <td class="paramname"><em>service</em></td><td>)</td>
  299. <td></td>
  300. </tr>
  301. </table>
  302. </div><div class="memdoc">
  303. <p>Register a service. </p>
  304. <p>This call does not take ownership of the service. The service must exist for the lifetime of the <em><a class="el" href="classgrpc_1_1_server.html" title="Models a gRPC server. ">Server</a></em> instance returned by <em><a class="el" href="classgrpc_1_1_server_builder.html#af284cd39b185043e8e92405c1ae0f310" title="Return a running server which is ready for processing calls. ">BuildAndStart()</a></em>. Matches requests with any :authority </p>
  305. </div>
  306. </div>
  307. <a class="anchor" id="a0b06b5828b892feeb6541c8eeae2d542"></a>
  308. <div class="memitem">
  309. <div class="memproto">
  310. <table class="memname">
  311. <tr>
  312. <td class="memname"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a>&amp; grpc::ServerBuilder::RegisterService </td>
  313. <td>(</td>
  314. <td class="paramtype">const <a class="el" href="namespacegrpc.html#ab04a87625da3bf85cdaf5e7856b00203">grpc::string</a> &amp;&#160;</td>
  315. <td class="paramname"><em>host</em>, </td>
  316. </tr>
  317. <tr>
  318. <td class="paramkey"></td>
  319. <td></td>
  320. <td class="paramtype"><a class="el" href="classgrpc_1_1_service.html">Service</a> *&#160;</td>
  321. <td class="paramname"><em>service</em>&#160;</td>
  322. </tr>
  323. <tr>
  324. <td></td>
  325. <td>)</td>
  326. <td></td><td></td>
  327. </tr>
  328. </table>
  329. </div><div class="memdoc">
  330. <p>Register a service. </p>
  331. <p>This call does not take ownership of the service. The service must exist for the lifetime of the <em><a class="el" href="classgrpc_1_1_server.html" title="Models a gRPC server. ">Server</a></em> instance returned by <a class="el" href="classgrpc_1_1_server_builder.html#af284cd39b185043e8e92405c1ae0f310" title="Return a running server which is ready for processing calls. ">BuildAndStart()</a>. Only matches requests with :authority <em>host</em> </p>
  332. </div>
  333. </div>
  334. <a class="anchor" id="a26e4b20a377c4bbbe37c33aa72165034"></a>
  335. <div class="memitem">
  336. <div class="memproto">
  337. <table class="memname">
  338. <tr>
  339. <td class="memname"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a>&amp; grpc::ServerBuilder::SetCompressionAlgorithmSupportStatus </td>
  340. <td>(</td>
  341. <td class="paramtype"><a class="el" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a>&#160;</td>
  342. <td class="paramname"><em>algorithm</em>, </td>
  343. </tr>
  344. <tr>
  345. <td class="paramkey"></td>
  346. <td></td>
  347. <td class="paramtype">bool&#160;</td>
  348. <td class="paramname"><em>enabled</em>&#160;</td>
  349. </tr>
  350. <tr>
  351. <td></td>
  352. <td>)</td>
  353. <td></td><td></td>
  354. </tr>
  355. </table>
  356. </div><div class="memdoc">
  357. <p>Set the support status for compression algorithms. </p>
  358. <p>All algorithms are enabled by default.</p>
  359. <p>Incoming calls compressed with an unsupported algorithm will fail with GRPC_STATUS_UNIMPLEMENTED. </p>
  360. </div>
  361. </div>
  362. <a class="anchor" id="a6ee516b7445ff4e1274a6d882f529504"></a>
  363. <div class="memitem">
  364. <div class="memproto">
  365. <table class="memname">
  366. <tr>
  367. <td class="memname"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a>&amp; grpc::ServerBuilder::SetDefaultCompressionAlgorithm </td>
  368. <td>(</td>
  369. <td class="paramtype"><a class="el" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a>&#160;</td>
  370. <td class="paramname"><em>algorithm</em></td><td>)</td>
  371. <td></td>
  372. </tr>
  373. </table>
  374. </div><div class="memdoc">
  375. <p>The default compression algorithm to use for all channel calls in the absence of a call-specific level. </p>
  376. <p>Note that it overrides any compression level set by <em>SetDefaultCompressionLevel</em>. </p>
  377. </div>
  378. </div>
  379. <a class="anchor" id="ae10c6dc23ec295695710c0b4c14f9353"></a>
  380. <div class="memitem">
  381. <div class="memproto">
  382. <table class="memname">
  383. <tr>
  384. <td class="memname"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a>&amp; grpc::ServerBuilder::SetDefaultCompressionLevel </td>
  385. <td>(</td>
  386. <td class="paramtype"><a class="el" href="compression__types_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a>&#160;</td>
  387. <td class="paramname"><em>level</em></td><td>)</td>
  388. <td></td>
  389. </tr>
  390. </table>
  391. </div><div class="memdoc">
  392. <p>The default compression level to use for all channel calls in the absence of a call-specific level. </p>
  393. </div>
  394. </div>
  395. <a class="anchor" id="a13f4b030529c9f447e3a172a6d8a7e29"></a>
  396. <div class="memitem">
  397. <div class="memproto">
  398. <table class="mlabels">
  399. <tr>
  400. <td class="mlabels-left">
  401. <table class="memname">
  402. <tr>
  403. <td class="memname"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a>&amp; grpc::ServerBuilder::SetMaxMessageSize </td>
  404. <td>(</td>
  405. <td class="paramtype">int&#160;</td>
  406. <td class="paramname"><em>max_message_size</em></td><td>)</td>
  407. <td></td>
  408. </tr>
  409. </table>
  410. </td>
  411. <td class="mlabels-right">
  412. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  413. </tr>
  414. </table>
  415. </div><div class="memdoc">
  416. <p>Set max message size in bytes. </p>
  417. </div>
  418. </div>
  419. <a class="anchor" id="af0480c82eb5881f6d998ff85abe0c99a"></a>
  420. <div class="memitem">
  421. <div class="memproto">
  422. <table class="memname">
  423. <tr>
  424. <td class="memname"><a class="el" href="classgrpc_1_1_server_builder.html">ServerBuilder</a>&amp; grpc::ServerBuilder::SetOption </td>
  425. <td>(</td>
  426. <td class="paramtype">std::unique_ptr&lt; <a class="el" href="classgrpc_1_1_server_builder_option.html">ServerBuilderOption</a> &gt;&#160;</td>
  427. <td class="paramname"><em>option</em></td><td>)</td>
  428. <td></td>
  429. </tr>
  430. </table>
  431. </div><div class="memdoc">
  432. </div>
  433. </div>
  434. <h2 class="groupheader">Friends And Related Function Documentation</h2>
  435. <a class="anchor" id="a6d051c774efa6448928d2ca4062676d0"></a>
  436. <div class="memitem">
  437. <div class="memproto">
  438. <table class="mlabels">
  439. <tr>
  440. <td class="mlabels-left">
  441. <table class="memname">
  442. <tr>
  443. <td class="memname">friend class ::grpc::testing::ServerBuilderPluginTest</td>
  444. </tr>
  445. </table>
  446. </td>
  447. <td class="mlabels-right">
  448. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  449. </tr>
  450. </table>
  451. </div><div class="memdoc">
  452. </div>
  453. </div>
  454. <h2 class="groupheader">Field Documentation</h2>
  455. <a class="anchor" id="a27b5a3733140caef60846fc21977d6ba"></a>
  456. <div class="memitem">
  457. <div class="memproto">
  458. <table class="memname">
  459. <tr>
  460. <td class="memname"><a class="el" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> grpc::ServerBuilder::algorithm</td>
  461. </tr>
  462. </table>
  463. </div><div class="memdoc">
  464. </div>
  465. </div>
  466. <a class="anchor" id="ab2b0b337e27ae80796675a3dd224ec3a"></a>
  467. <div class="memitem">
  468. <div class="memproto">
  469. <table class="memname">
  470. <tr>
  471. <td class="memname">bool grpc::ServerBuilder::is_set</td>
  472. </tr>
  473. </table>
  474. </div><div class="memdoc">
  475. </div>
  476. </div>
  477. <a class="anchor" id="a99bc7fd30172c4e154b6942e1c221a1c"></a>
  478. <div class="memitem">
  479. <div class="memproto">
  480. <table class="memname">
  481. <tr>
  482. <td class="memname"><a class="el" href="compression__types_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a> grpc::ServerBuilder::level</td>
  483. </tr>
  484. </table>
  485. </div><div class="memdoc">
  486. </div>
  487. </div>
  488. <hr/>The documentation for this class was generated from the following file:<ul>
  489. <li>include/grpc++/<a class="el" href="server__builder_8h_source.html">server_builder.h</a></li>
  490. </ul>
  491. </div><!-- contents -->
  492. <!-- start footer part -->
  493. <hr class="footer"/><address class="footer"><small>
  494. Generated on Thu Aug 18 2016 21:34:58 for GRPC C++ by &#160;<a href="http://www.doxygen.org/index.html">
  495. <img class="footer" src="doxygen.png" alt="doxygen"/>
  496. </a> 1.8.11
  497. </small></address>
  498. </body>
  499. </html>