grpc/cpp/classgrpc__impl_1_1_server_...

974 lines
59 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>GRPC C++: grpc_impl::ServerBuilder 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++
&#160;<span id="projectnumber">1.22.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</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__impl.html">grpc_impl</a></li><li class="navelem"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#friends">Friends</a> </div>
<div class="headertitle">
<div class="title">grpc_impl::ServerBuilder Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>A builder class for the creation and startup of <em><a class="el" href="namespacegrpc.html#a28c99eb4f62e460502c80cf1e10a8fb4">grpc::Server</a></em> instances.
<a href="classgrpc__impl_1_1_server_builder.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="server__builder__impl_8h_source.html">server_builder_impl.h</a>&gt;</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 &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder_1_1experimental__type.html">experimental_type</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">NOTE: class <a class="el" href="classgrpc__impl_1_1_server_builder_1_1experimental__type.html" title="NOTE: class experimental_type is not part of the public API of this class. ">experimental_type</a> is not part of the public API of this class. <a href="classgrpc__impl_1_1_server_builder_1_1experimental__type.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgrpc__impl_1_1_server_builder_1_1_named_service.html">NamedService</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgrpc__impl_1_1_server_builder_1_1_port.html">Port</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Experimental, to be deprecated. <a href="structgrpc__impl_1_1_server_builder_1_1_port.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a2df88297f8a97c527e7bb4d6898c5d5d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#a2df88297f8a97c527e7bb4d6898c5d5d">SyncServerOption</a> { <a class="el" href="classgrpc__impl_1_1_server_builder.html#a2df88297f8a97c527e7bb4d6898c5d5da09917582ceab035df95c9c0fc874ce86">NUM_CQS</a>,
<a class="el" href="classgrpc__impl_1_1_server_builder.html#a2df88297f8a97c527e7bb4d6898c5d5dad35d859ab44e2ab4d2e32846acd73840">MIN_POLLERS</a>,
<a class="el" href="classgrpc__impl_1_1_server_builder.html#a2df88297f8a97c527e7bb4d6898c5d5da20ca5e9ea66bde1823d7fb96b1d25341">MAX_POLLERS</a>,
<a class="el" href="classgrpc__impl_1_1_server_builder.html#a2df88297f8a97c527e7bb4d6898c5d5da9dce2ab40beb3e478d175aafedbac916">CQ_TIMEOUT_MSEC</a>
}<tr class="memdesc:a2df88297f8a97c527e7bb4d6898c5d5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options for synchronous servers. <a href="classgrpc__impl_1_1_server_builder.html#a2df88297f8a97c527e7bb4d6898c5d5d">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:a2df88297f8a97c527e7bb4d6898c5d5d"><td class="memSeparator" colspan="2">&#160;</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:a18a06a5038465d396ce157b8a9eeba93"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#a18a06a5038465d396ce157b8a9eeba93">ServerBuilder</a> ()</td></tr>
<tr class="separator:a18a06a5038465d396ce157b8a9eeba93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae95fc6450fc46f3e0504d02bb26dbd68"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#ae95fc6450fc46f3e0504d02bb26dbd68">~ServerBuilder</a> ()</td></tr>
<tr class="separator:ae95fc6450fc46f3e0504d02bb26dbd68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa24bf474b499f8a98c3686eb01d90b30"><td class="memItemLeft" align="right" valign="top">virtual std::unique_ptr&lt; <a class="el" href="namespacegrpc.html#a28c99eb4f62e460502c80cf1e10a8fb4">grpc::Server</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#aa24bf474b499f8a98c3686eb01d90b30">BuildAndStart</a> ()</td></tr>
<tr class="memdesc:aa24bf474b499f8a98c3686eb01d90b30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a running server which is ready for processing calls. <a href="#aa24bf474b499f8a98c3686eb01d90b30">More...</a><br /></td></tr>
<tr class="separator:aa24bf474b499f8a98c3686eb01d90b30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade1ff804a3fdbc1ad3652a5bb4c5847e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#ade1ff804a3fdbc1ad3652a5bb4c5847e">RegisterService</a> (<a class="el" href="classgrpc_1_1_service.html">grpc::Service</a> *service)</td></tr>
<tr class="memdesc:ade1ff804a3fdbc1ad3652a5bb4c5847e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a service. <a href="#ade1ff804a3fdbc1ad3652a5bb4c5847e">More...</a><br /></td></tr>
<tr class="separator:ade1ff804a3fdbc1ad3652a5bb4c5847e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad64d81f11dc296605356cc784161b576"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#ad64d81f11dc296605356cc784161b576">AddListeningPort</a> (const <a class="el" href="namespacegrpc.html#ab04a87625da3bf85cdaf5e7856b00203">grpc::string</a> &amp;addr_uri, std::shared_ptr&lt; <a class="el" href="classgrpc__impl_1_1_server_credentials.html">grpc_impl::ServerCredentials</a> &gt; creds, int *selected_port=nullptr)</td></tr>
<tr class="memdesc:ad64d81f11dc296605356cc784161b576"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enlists an endpoint <em>addr</em> (port with an optional IP address) to bind the <em><a class="el" href="namespacegrpc.html#a28c99eb4f62e460502c80cf1e10a8fb4">grpc::Server</a></em> object to be created to. <a href="#ad64d81f11dc296605356cc784161b576">More...</a><br /></td></tr>
<tr class="separator:ad64d81f11dc296605356cc784161b576"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbb6da96e1f9d2d9fee2a0cbc9261023"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgrpc__impl_1_1_server_completion_queue.html">grpc_impl::ServerCompletionQueue</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#adbb6da96e1f9d2d9fee2a0cbc9261023">AddCompletionQueue</a> (bool is_frequently_polled=true)</td></tr>
<tr class="memdesc:adbb6da96e1f9d2d9fee2a0cbc9261023"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a completion queue for handling asynchronous services. <a href="#adbb6da96e1f9d2d9fee2a0cbc9261023">More...</a><br /></td></tr>
<tr class="separator:adbb6da96e1f9d2d9fee2a0cbc9261023"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41d99eb97c87880816aee365ae0285cc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#a41d99eb97c87880816aee365ae0285cc">RegisterService</a> (const <a class="el" href="namespacegrpc.html#ab04a87625da3bf85cdaf5e7856b00203">grpc::string</a> &amp;host, <a class="el" href="classgrpc_1_1_service.html">grpc::Service</a> *service)</td></tr>
<tr class="memdesc:a41d99eb97c87880816aee365ae0285cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a service. <a href="#a41d99eb97c87880816aee365ae0285cc">More...</a><br /></td></tr>
<tr class="separator:a41d99eb97c87880816aee365ae0285cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9678a67fa500072b80eec6e118f430e1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#a9678a67fa500072b80eec6e118f430e1">RegisterAsyncGenericService</a> (<a class="el" href="classgrpc_1_1_async_generic_service.html">grpc::AsyncGenericService</a> *service)</td></tr>
<tr class="memdesc:a9678a67fa500072b80eec6e118f430e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a generic service. <a href="#a9678a67fa500072b80eec6e118f430e1">More...</a><br /></td></tr>
<tr class="separator:a9678a67fa500072b80eec6e118f430e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2b6e41d7ea8654b87a5b51853edd6e1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#af2b6e41d7ea8654b87a5b51853edd6e1">SetMaxReceiveMessageSize</a> (int max_receive_message_size)</td></tr>
<tr class="memdesc:af2b6e41d7ea8654b87a5b51853edd6e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set max receive message size in bytes. <a href="#af2b6e41d7ea8654b87a5b51853edd6e1">More...</a><br /></td></tr>
<tr class="separator:af2b6e41d7ea8654b87a5b51853edd6e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae05e31cf54f1962ddfb2c3294ccd1c38"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#ae05e31cf54f1962ddfb2c3294ccd1c38">SetMaxSendMessageSize</a> (int max_send_message_size)</td></tr>
<tr class="memdesc:ae05e31cf54f1962ddfb2c3294ccd1c38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set max send message size in bytes. <a href="#ae05e31cf54f1962ddfb2c3294ccd1c38">More...</a><br /></td></tr>
<tr class="separator:ae05e31cf54f1962ddfb2c3294ccd1c38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad003d8bd2b5d82bc14d4dec7c951be99"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#ad003d8bd2b5d82bc14d4dec7c951be99">SetMaxMessageSize</a> (int max_message_size)</td></tr>
<tr class="separator:ad003d8bd2b5d82bc14d4dec7c951be99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa55a0602fa156b96f39aed4a9bddb35"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#aaa55a0602fa156b96f39aed4a9bddb35">SetCompressionAlgorithmSupportStatus</a> (<a class="el" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> <a class="el" href="classgrpc__impl_1_1_server_builder.html#ac2db6dc1135723924aa84191e1e30911">algorithm</a>, bool enabled)</td></tr>
<tr class="memdesc:aaa55a0602fa156b96f39aed4a9bddb35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the support status for compression algorithms. <a href="#aaa55a0602fa156b96f39aed4a9bddb35">More...</a><br /></td></tr>
<tr class="separator:aaa55a0602fa156b96f39aed4a9bddb35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9aee4466612c84038d20c9371135061"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#af9aee4466612c84038d20c9371135061">SetDefaultCompressionLevel</a> (<a class="el" href="compression__types_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a> <a class="el" href="classgrpc__impl_1_1_server_builder.html#a2056da96b21166b2954526979905fab2">level</a>)</td></tr>
<tr class="memdesc:af9aee4466612c84038d20c9371135061"><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="#af9aee4466612c84038d20c9371135061">More...</a><br /></td></tr>
<tr class="separator:af9aee4466612c84038d20c9371135061"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac955fecbadd9d3b22023dbde275c01fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#ac955fecbadd9d3b22023dbde275c01fc">SetDefaultCompressionAlgorithm</a> (<a class="el" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> <a class="el" href="classgrpc__impl_1_1_server_builder.html#ac2db6dc1135723924aa84191e1e30911">algorithm</a>)</td></tr>
<tr class="memdesc:ac955fecbadd9d3b22023dbde275c01fc"><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="#ac955fecbadd9d3b22023dbde275c01fc">More...</a><br /></td></tr>
<tr class="separator:ac955fecbadd9d3b22023dbde275c01fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae07d249498c013a55fe8291e1594a63e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#ae07d249498c013a55fe8291e1594a63e">SetResourceQuota</a> (const <a class="el" href="classgrpc__impl_1_1_resource_quota.html">grpc_impl::ResourceQuota</a> &amp;resource_quota)</td></tr>
<tr class="memdesc:ae07d249498c013a55fe8291e1594a63e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the attached buffer pool for this server. <a href="#ae07d249498c013a55fe8291e1594a63e">More...</a><br /></td></tr>
<tr class="separator:ae07d249498c013a55fe8291e1594a63e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c289f90f9ea8545227a3964e3cec30c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#a6c289f90f9ea8545227a3964e3cec30c">SetOption</a> (std::unique_ptr&lt; <a class="el" href="namespacegrpc.html#a7e2f3f7805afa04cec33030abd070bd8">grpc::ServerBuilderOption</a> &gt; option)</td></tr>
<tr class="separator:a6c289f90f9ea8545227a3964e3cec30c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ce3f8be46d5ef31092c7dbfc806c8ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#a0ce3f8be46d5ef31092c7dbfc806c8ff">SetSyncServerOption</a> (<a class="el" href="classgrpc__impl_1_1_server_builder.html#a2df88297f8a97c527e7bb4d6898c5d5d">SyncServerOption</a> option, int value)</td></tr>
<tr class="memdesc:a0ce3f8be46d5ef31092c7dbfc806c8ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Only useful if this is a Synchronous server. <a href="#a0ce3f8be46d5ef31092c7dbfc806c8ff">More...</a><br /></td></tr>
<tr class="separator:a0ce3f8be46d5ef31092c7dbfc806c8ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2ed9b377fb7395b8d79de33aeb66723"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:ad2ed9b377fb7395b8d79de33aeb66723"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#ad2ed9b377fb7395b8d79de33aeb66723">AddChannelArgument</a> (const <a class="el" href="namespacegrpc.html#ab04a87625da3bf85cdaf5e7856b00203">grpc::string</a> &amp;arg, const T &amp;value)</td></tr>
<tr class="memdesc:ad2ed9b377fb7395b8d79de33aeb66723"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a channel argument (an escape hatch to tuning core library parameters directly) <a href="#ad2ed9b377fb7395b8d79de33aeb66723">More...</a><br /></td></tr>
<tr class="separator:ad2ed9b377fb7395b8d79de33aeb66723"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36bd8d884a491ea79eb262e4d7a604c9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#a36bd8d884a491ea79eb262e4d7a604c9">EnableWorkaround</a> (<a class="el" href="workaround__list_8h.html#ade8be35fce7415c7234ac22d8b9ad9d2">grpc_workaround_list</a> id)</td></tr>
<tr class="memdesc:a36bd8d884a491ea79eb262e4d7a604c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable a server workaround. <a href="#a36bd8d884a491ea79eb262e4d7a604c9">More...</a><br /></td></tr>
<tr class="separator:a36bd8d884a491ea79eb262e4d7a604c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52d0f694ed5c4eb62fcfac7af0399b91"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc__impl_1_1_server_builder_1_1experimental__type.html">experimental_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#a52d0f694ed5c4eb62fcfac7af0399b91">experimental</a> ()</td></tr>
<tr class="memdesc:a52d0f694ed5c4eb62fcfac7af0399b91"><td class="mdescLeft">&#160;</td><td class="mdescRight">NOTE: The function <a class="el" href="classgrpc__impl_1_1_server_builder.html#a52d0f694ed5c4eb62fcfac7af0399b91" title="NOTE: The function experimental() is not stable public API. ">experimental()</a> is not stable public API. <a href="#a52d0f694ed5c4eb62fcfac7af0399b91">More...</a><br /></td></tr>
<tr class="separator:a52d0f694ed5c4eb62fcfac7af0399b91"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a0b1caed24280d09df03320326b5777f1"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#a0b1caed24280d09df03320326b5777f1">InternalAddPluginFactory</a> (std::unique_ptr&lt; <a class="el" href="classgrpc_1_1_server_builder_plugin.html">grpc::ServerBuilderPlugin</a> &gt;(*CreatePlugin)())</td></tr>
<tr class="memdesc:a0b1caed24280d09df03320326b5777f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">For internal use only: Register a ServerBuilderPlugin factory function. <a href="#a0b1caed24280d09df03320326b5777f1">More...</a><br /></td></tr>
<tr class="separator:a0b1caed24280d09df03320326b5777f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
Protected Types</h2></td></tr>
<tr class="memitem:a99be6918c103dc4a6887cf60f97043f5"><td class="memItemLeft" align="right" valign="top">typedef std::unique_ptr&lt; <a class="el" href="namespacegrpc.html#ab04a87625da3bf85cdaf5e7856b00203">grpc::string</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#a99be6918c103dc4a6887cf60f97043f5">HostString</a></td></tr>
<tr class="memdesc:a99be6918c103dc4a6887cf60f97043f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Experimental, to be deprecated. <a href="#a99be6918c103dc4a6887cf60f97043f5">More...</a><br /></td></tr>
<tr class="separator:a99be6918c103dc4a6887cf60f97043f5"><td class="memSeparator" colspan="2">&#160;</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:ae85c34ff2520f84a7ddf707de91f5155"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structgrpc__impl_1_1_server_builder_1_1_port.html">Port</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#ae85c34ff2520f84a7ddf707de91f5155">ports</a> ()</td></tr>
<tr class="memdesc:ae85c34ff2520f84a7ddf707de91f5155"><td class="mdescLeft">&#160;</td><td class="mdescRight">Experimental, to be deprecated. <a href="#ae85c34ff2520f84a7ddf707de91f5155">More...</a><br /></td></tr>
<tr class="separator:ae85c34ff2520f84a7ddf707de91f5155"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d365bcec106c069a771a0b3b90bb436"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structgrpc__impl_1_1_server_builder_1_1_named_service.html">NamedService</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#a9d365bcec106c069a771a0b3b90bb436">services</a> ()</td></tr>
<tr class="memdesc:a9d365bcec106c069a771a0b3b90bb436"><td class="mdescLeft">&#160;</td><td class="mdescRight">Experimental, to be deprecated. <a href="#a9d365bcec106c069a771a0b3b90bb436">More...</a><br /></td></tr>
<tr class="separator:a9d365bcec106c069a771a0b3b90bb436"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad765d71a9ff05fe961b19a5d123a4cc6"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="namespacegrpc.html#a7e2f3f7805afa04cec33030abd070bd8">grpc::ServerBuilderOption</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#ad765d71a9ff05fe961b19a5d123a4cc6">options</a> ()</td></tr>
<tr class="memdesc:ad765d71a9ff05fe961b19a5d123a4cc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Experimental, to be deprecated. <a href="#ad765d71a9ff05fe961b19a5d123a4cc6">More...</a><br /></td></tr>
<tr class="separator:ad765d71a9ff05fe961b19a5d123a4cc6"><td class="memSeparator" colspan="2">&#160;</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:a6d051c774efa6448928d2ca4062676d0"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_builder.html#a6d051c774efa6448928d2ca4062676d0">::grpc::testing::ServerBuilderPluginTest</a></td></tr>
<tr class="separator:a6d051c774efa6448928d2ca4062676d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A builder class for the creation and startup of <em><a class="el" href="namespacegrpc.html#a28c99eb4f62e460502c80cf1e10a8fb4">grpc::Server</a></em> instances. </p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a99be6918c103dc4a6887cf60f97043f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99be6918c103dc4a6887cf60f97043f5">&#9670;&nbsp;</a></span>HostString</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">typedef std::unique_ptr&lt;<a class="el" href="namespacegrpc.html#ab04a87625da3bf85cdaf5e7856b00203">grpc::string</a>&gt; <a class="el" href="classgrpc__impl_1_1_server_builder.html#a99be6918c103dc4a6887cf60f97043f5">grpc_impl::ServerBuilder::HostString</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Experimental, to be deprecated. </p>
</div>
</div>
<h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a2df88297f8a97c527e7bb4d6898c5d5d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2df88297f8a97c527e7bb4d6898c5d5d">&#9670;&nbsp;</a></span>SyncServerOption</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="classgrpc__impl_1_1_server_builder.html#a2df88297f8a97c527e7bb4d6898c5d5d">grpc_impl::ServerBuilder::SyncServerOption</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Options for synchronous servers. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a2df88297f8a97c527e7bb4d6898c5d5da09917582ceab035df95c9c0fc874ce86"></a>NUM_CQS&#160;</td><td class="fielddoc"><p>Number of completion queues. </p>
</td></tr>
<tr><td class="fieldname"><a id="a2df88297f8a97c527e7bb4d6898c5d5dad35d859ab44e2ab4d2e32846acd73840"></a>MIN_POLLERS&#160;</td><td class="fielddoc"><p>Minimum number of polling threads. </p>
</td></tr>
<tr><td class="fieldname"><a id="a2df88297f8a97c527e7bb4d6898c5d5da20ca5e9ea66bde1823d7fb96b1d25341"></a>MAX_POLLERS&#160;</td><td class="fielddoc"><p>Maximum number of polling threads. </p>
</td></tr>
<tr><td class="fieldname"><a id="a2df88297f8a97c527e7bb4d6898c5d5da9dce2ab40beb3e478d175aafedbac916"></a>CQ_TIMEOUT_MSEC&#160;</td><td class="fielddoc"><p>Completion queue timeout in milliseconds. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a18a06a5038465d396ce157b8a9eeba93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18a06a5038465d396ce157b8a9eeba93">&#9670;&nbsp;</a></span>ServerBuilder()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">grpc_impl::ServerBuilder::ServerBuilder </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ae95fc6450fc46f3e0504d02bb26dbd68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae95fc6450fc46f3e0504d02bb26dbd68">&#9670;&nbsp;</a></span>~ServerBuilder()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual grpc_impl::ServerBuilder::~ServerBuilder </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ad2ed9b377fb7395b8d79de33aeb66723"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2ed9b377fb7395b8d79de33aeb66723">&#9670;&nbsp;</a></span>AddChannelArgument()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a>&amp; grpc_impl::ServerBuilder::AddChannelArgument </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacegrpc.html#ab04a87625da3bf85cdaf5e7856b00203">grpc::string</a> &amp;&#160;</td>
<td class="paramname"><em>arg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const T &amp;&#160;</td>
<td class="paramname"><em>value</em>&#160;</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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Add a channel argument (an escape hatch to tuning core library parameters directly) </p>
</div>
</div>
<a id="adbb6da96e1f9d2d9fee2a0cbc9261023"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adbb6da96e1f9d2d9fee2a0cbc9261023">&#9670;&nbsp;</a></span>AddCompletionQueue()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgrpc__impl_1_1_server_completion_queue.html">grpc_impl::ServerCompletionQueue</a>&gt; grpc_impl::ServerBuilder::AddCompletionQueue </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>is_frequently_polled</em> = <code>true</code></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add a completion queue for handling asynchronous services. </p>
<p>Best performance is typically obtained by using one thread per polling completion queue.</p>
<p>Caller is required to shutdown the server prior to shutting down the returned completion queue. Caller is also required to drain the completion queue after shutting it down. A typical usage scenario:</p>
<p>// While building the server: <a class="el" href="classgrpc__impl_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>
<p>// While shutting down the server; server_-&gt;Shutdown(); cq_-&gt;Shutdown(); // Always <em>after</em> the associated server's Shutdown()! // Drain the cq_ that was created void* ignored_tag; bool ignored_ok; while (cq_-&gt;Next(&amp;ignored_tag, &amp;ignored_ok)) { }</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<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 <em>Next()</em> or <em>AsyncNext()</em>). 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>
</table>
</dd>
</dl>
</div>
</div>
<a id="ad64d81f11dc296605356cc784161b576"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad64d81f11dc296605356cc784161b576">&#9670;&nbsp;</a></span>AddListeningPort()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a>&amp; grpc_impl::ServerBuilder::AddListeningPort </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacegrpc.html#ab04a87625da3bf85cdaf5e7856b00203">grpc::string</a> &amp;&#160;</td>
<td class="paramname"><em>addr_uri</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::shared_ptr&lt; <a class="el" href="classgrpc__impl_1_1_server_credentials.html">grpc_impl::ServerCredentials</a> &gt;&#160;</td>
<td class="paramname"><em>creds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>selected_port</em> = <code>nullptr</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enlists an endpoint <em>addr</em> (port with an optional IP address) to bind the <em><a class="el" href="namespacegrpc.html#a28c99eb4f62e460502c80cf1e10a8fb4">grpc::Server</a></em> object to be created to. </p>
<p>It can be invoked multiple times.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr_uri</td><td>The address to try to bind to the server in URI form. If the scheme name is omitted, "dns:///" is assumed. To bind to any address, please use IPv6 any, i.e., [::]:&lt;port&gt;, which also accepts IPv4 connections. Valid values include dns:///localhost:1234, / 192.168.1.1:31416, dns:///[::1]:27182, etc.). </td></tr>
<tr><td class="paramname">creds</td><td>The credentials associated with the server. </td></tr>
<tr><td class="paramname">selected_port[out]</td><td>If not <code>nullptr</code>, gets populated with the port number bound to the <em><a class="el" href="namespacegrpc.html#a28c99eb4f62e460502c80cf1e10a8fb4">grpc::Server</a></em> for the corresponding endpoint after it is successfully bound by <a class="el" href="classgrpc__impl_1_1_server_builder.html#aa24bf474b499f8a98c3686eb01d90b30" title="Return a running server which is ready for processing calls. ">BuildAndStart()</a>, 0 otherwise. AddListeningPort does not modify this pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aa24bf474b499f8a98c3686eb01d90b30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa24bf474b499f8a98c3686eb01d90b30">&#9670;&nbsp;</a></span>BuildAndStart()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::unique_ptr&lt;<a class="el" href="namespacegrpc.html#a28c99eb4f62e460502c80cf1e10a8fb4">grpc::Server</a>&gt; grpc_impl::ServerBuilder::BuildAndStart </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Return a running server which is ready for processing calls. </p>
<p>Before calling, one typically needs to ensure that:</p><ol type="1">
<li>a service is registered - so that the server knows what to serve (via RegisterService, or RegisterAsyncGenericService)</li>
<li>a listening port has been added - so the server knows where to receive traffic (via AddListeningPort)</li>
<li>[for async api only] completion queues have been added via AddCompletionQueue </li>
</ol>
</div>
</div>
<a id="a36bd8d884a491ea79eb262e4d7a604c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36bd8d884a491ea79eb262e4d7a604c9">&#9670;&nbsp;</a></span>EnableWorkaround()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a>&amp; grpc_impl::ServerBuilder::EnableWorkaround </td>
<td>(</td>
<td class="paramtype"><a class="el" href="workaround__list_8h.html#ade8be35fce7415c7234ac22d8b9ad9d2">grpc_workaround_list</a>&#160;</td>
<td class="paramname"><em>id</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enable a server workaround. </p>
<p>Do not use unless you know what the workaround does. For explanation and detailed descriptions of workarounds, see <a class="el" href="workarounds_8md.html">doc/workarounds.md</a>. </p>
</div>
</div>
<a id="a52d0f694ed5c4eb62fcfac7af0399b91"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a52d0f694ed5c4eb62fcfac7af0399b91">&#9670;&nbsp;</a></span>experimental()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgrpc__impl_1_1_server_builder_1_1experimental__type.html">experimental_type</a> grpc_impl::ServerBuilder::experimental </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>NOTE: The function <a class="el" href="classgrpc__impl_1_1_server_builder.html#a52d0f694ed5c4eb62fcfac7af0399b91" title="NOTE: The function experimental() is not stable public API. ">experimental()</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. </p>
</div>
</div>
<a id="a0b1caed24280d09df03320326b5777f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b1caed24280d09df03320326b5777f1">&#9670;&nbsp;</a></span>InternalAddPluginFactory()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void grpc_impl::ServerBuilder::InternalAddPluginFactory </td>
<td>(</td>
<td class="paramtype">std::unique_ptr&lt; <a class="el" href="classgrpc_1_1_server_builder_plugin.html">grpc::ServerBuilderPlugin</a> &gt;(*)()&#160;</td>
<td class="paramname"><em>CreatePlugin</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>For internal use only: Register a ServerBuilderPlugin factory function. </p>
</div>
</div>
<a id="ad765d71a9ff05fe961b19a5d123a4cc6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad765d71a9ff05fe961b19a5d123a4cc6">&#9670;&nbsp;</a></span>options()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;<a class="el" href="namespacegrpc.html#a7e2f3f7805afa04cec33030abd070bd8">grpc::ServerBuilderOption</a>*&gt; grpc_impl::ServerBuilder::options </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Experimental, to be deprecated. </p>
</div>
</div>
<a id="ae85c34ff2520f84a7ddf707de91f5155"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae85c34ff2520f84a7ddf707de91f5155">&#9670;&nbsp;</a></span>ports()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;<a class="el" href="structgrpc__impl_1_1_server_builder_1_1_port.html">Port</a>&gt; grpc_impl::ServerBuilder::ports </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Experimental, to be deprecated. </p>
</div>
</div>
<a id="a9678a67fa500072b80eec6e118f430e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9678a67fa500072b80eec6e118f430e1">&#9670;&nbsp;</a></span>RegisterAsyncGenericService()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a>&amp; grpc_impl::ServerBuilder::RegisterAsyncGenericService </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgrpc_1_1_async_generic_service.html">grpc::AsyncGenericService</a> *&#160;</td>
<td class="paramname"><em>service</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Register a generic service. </p>
<p>Matches requests with any :authority This is mostly useful for writing generic gRPC Proxies where the exact serialization format is unknown </p>
</div>
</div>
<a id="ade1ff804a3fdbc1ad3652a5bb4c5847e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade1ff804a3fdbc1ad3652a5bb4c5847e">&#9670;&nbsp;</a></span>RegisterService() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a>&amp; grpc_impl::ServerBuilder::RegisterService </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgrpc_1_1_service.html">grpc::Service</a> *&#160;</td>
<td class="paramname"><em>service</em></td><td>)</td>
<td></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 <em><a class="el" href="classgrpc__impl_1_1_server.html" title="Represents a gRPC server. ">Server</a></em> instance returned by <em><a class="el" href="classgrpc__impl_1_1_server_builder.html#aa24bf474b499f8a98c3686eb01d90b30" title="Return a running server which is ready for processing calls. ">BuildAndStart()</a></em>. Matches requests with any :authority </p>
</div>
</div>
<a id="a41d99eb97c87880816aee365ae0285cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a41d99eb97c87880816aee365ae0285cc">&#9670;&nbsp;</a></span>RegisterService() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a>&amp; grpc_impl::ServerBuilder::RegisterService </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespacegrpc.html#ab04a87625da3bf85cdaf5e7856b00203">grpc::string</a> &amp;&#160;</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">grpc::Service</a> *&#160;</td>
<td class="paramname"><em>service</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></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 <em><a class="el" href="classgrpc__impl_1_1_server.html" title="Represents a gRPC server. ">Server</a></em> instance returned by <em><a class="el" href="classgrpc__impl_1_1_server_builder.html#aa24bf474b499f8a98c3686eb01d90b30" title="Return a running server which is ready for processing calls. ">BuildAndStart()</a></em>. Only matches requests with :authority <em>host</em> </p>
</div>
</div>
<a id="a9d365bcec106c069a771a0b3b90bb436"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d365bcec106c069a771a0b3b90bb436">&#9670;&nbsp;</a></span>services()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;<a class="el" href="structgrpc__impl_1_1_server_builder_1_1_named_service.html">NamedService</a>*&gt; grpc_impl::ServerBuilder::services </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Experimental, to be deprecated. </p>
</div>
</div>
<a id="aaa55a0602fa156b96f39aed4a9bddb35"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa55a0602fa156b96f39aed4a9bddb35">&#9670;&nbsp;</a></span>SetCompressionAlgorithmSupportStatus()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a>&amp; grpc_impl::ServerBuilder::SetCompressionAlgorithmSupportStatus </td>
<td>(</td>
<td class="paramtype"><a class="el" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a>&#160;</td>
<td class="paramname"><em>algorithm</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enabled</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the support status for compression algorithms. </p>
<p>All algorithms are enabled by default.</p>
<p>Incoming calls compressed with an unsupported algorithm will fail with <em>GRPC_STATUS_UNIMPLEMENTED</em>. </p>
</div>
</div>
<a id="ac955fecbadd9d3b22023dbde275c01fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac955fecbadd9d3b22023dbde275c01fc">&#9670;&nbsp;</a></span>SetDefaultCompressionAlgorithm()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a>&amp; grpc_impl::ServerBuilder::SetDefaultCompressionAlgorithm </td>
<td>(</td>
<td class="paramtype"><a class="el" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a>&#160;</td>
<td class="paramname"><em>algorithm</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The default compression algorithm to use for all channel calls in the absence of a call-specific level. </p>
<p>Note that it overrides any compression level set by <em>SetDefaultCompressionLevel</em>. </p>
</div>
</div>
<a id="af9aee4466612c84038d20c9371135061"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af9aee4466612c84038d20c9371135061">&#9670;&nbsp;</a></span>SetDefaultCompressionLevel()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a>&amp; grpc_impl::ServerBuilder::SetDefaultCompressionLevel </td>
<td>(</td>
<td class="paramtype"><a class="el" href="compression__types_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a>&#160;</td>
<td class="paramname"><em>level</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The default compression level to use for all channel calls in the absence of a call-specific level. </p>
</div>
</div>
<a id="ad003d8bd2b5d82bc14d4dec7c951be99"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad003d8bd2b5d82bc14d4dec7c951be99">&#9670;&nbsp;</a></span>SetMaxMessageSize()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a>&amp; grpc_impl::ServerBuilder::SetMaxMessageSize </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>max_message_size</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">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>For backward compatibility. </dd></dl>
</div>
</div>
<a id="af2b6e41d7ea8654b87a5b51853edd6e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af2b6e41d7ea8654b87a5b51853edd6e1">&#9670;&nbsp;</a></span>SetMaxReceiveMessageSize()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a>&amp; grpc_impl::ServerBuilder::SetMaxReceiveMessageSize </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>max_receive_message_size</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>Set max receive message size in bytes. </p>
<p>The default is GRPC_DEFAULT_MAX_RECV_MESSAGE_LENGTH. </p>
</div>
</div>
<a id="ae05e31cf54f1962ddfb2c3294ccd1c38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae05e31cf54f1962ddfb2c3294ccd1c38">&#9670;&nbsp;</a></span>SetMaxSendMessageSize()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a>&amp; grpc_impl::ServerBuilder::SetMaxSendMessageSize </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>max_send_message_size</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>Set max send message size in bytes. </p>
<p>The default is GRPC_DEFAULT_MAX_SEND_MESSAGE_LENGTH. </p>
</div>
</div>
<a id="a6c289f90f9ea8545227a3964e3cec30c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c289f90f9ea8545227a3964e3cec30c">&#9670;&nbsp;</a></span>SetOption()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a>&amp; grpc_impl::ServerBuilder::SetOption </td>
<td>(</td>
<td class="paramtype">std::unique_ptr&lt; <a class="el" href="namespacegrpc.html#a7e2f3f7805afa04cec33030abd070bd8">grpc::ServerBuilderOption</a> &gt;&#160;</td>
<td class="paramname"><em>option</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ae07d249498c013a55fe8291e1594a63e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae07d249498c013a55fe8291e1594a63e">&#9670;&nbsp;</a></span>SetResourceQuota()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a>&amp; grpc_impl::ServerBuilder::SetResourceQuota </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgrpc__impl_1_1_resource_quota.html">grpc_impl::ResourceQuota</a> &amp;&#160;</td>
<td class="paramname"><em>resource_quota</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the attached buffer pool for this server. </p>
</div>
</div>
<a id="a0ce3f8be46d5ef31092c7dbfc806c8ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ce3f8be46d5ef31092c7dbfc806c8ff">&#9670;&nbsp;</a></span>SetSyncServerOption()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgrpc__impl_1_1_server_builder.html">ServerBuilder</a>&amp; grpc_impl::ServerBuilder::SetSyncServerOption </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgrpc__impl_1_1_server_builder.html#a2df88297f8a97c527e7bb4d6898c5d5d">SyncServerOption</a>&#160;</td>
<td class="paramname"><em>option</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Only useful if this is a Synchronous server. </p>
</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="a6d051c774efa6448928d2ca4062676d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d051c774efa6448928d2ca4062676d0">&#9670;&nbsp;</a></span>::grpc::testing::ServerBuilderPluginTest</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">friend class ::grpc::testing::ServerBuilderPluginTest</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>
<h2 class="groupheader">Field Documentation</h2>
<a id="ac2db6dc1135723924aa84191e1e30911"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2db6dc1135723924aa84191e1e30911">&#9670;&nbsp;</a></span>algorithm</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> grpc_impl::ServerBuilder::algorithm</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a35045db56c039b007371dc24c4e18ae8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a35045db56c039b007371dc24c4e18ae8">&#9670;&nbsp;</a></span>is_set</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool grpc_impl::ServerBuilder::is_set</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2056da96b21166b2954526979905fab2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2056da96b21166b2954526979905fab2">&#9670;&nbsp;</a></span>level</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="compression__types_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a> grpc_impl::ServerBuilder::level</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/<a class="el" href="server__builder__impl_8h_source.html">server_builder_impl.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Jul 3 2019 14:51:27 for GRPC C++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>