<!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.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Proton DotNet: Apache.Qpid.Proton.Client.IClient Interface 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">Proton DotNet
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @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&amp;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="namespaceApache.html">Apache</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid.html">Qpid</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton.html">Proton</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Client.html">Client</a></li><li class="navelem"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html">IClient</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#properties">Properties</a> &#124;
<a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Apache.Qpid.Proton.Client.IClient Interface Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>The Container that hosts one ore more AMQP connections that share a given AMQP container Id.  
 <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Apache.Qpid.Proton.Client.IClient:</div>
<div class="dyncontent">
 <div class="center">
  <img src="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.png" usemap="#Apache.Qpid.Proton.Client.IClient_map" alt=""/>
  <map id="Apache.Qpid.Proton.Client.IClient_map" name="Apache.Qpid.Proton.Client.IClient_map">
<area href="classApache_1_1Qpid_1_1Proton_1_1Client_1_1Implementation_1_1ClientInstance.html" title="The client type servers as a container of connections and provides a means of closing all open connec..." alt="Apache.Qpid.Proton.Client.Implementation.ClientInstance" shape="rect" coords="0,112,333,136"/>
  </map>
</div></div>
<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:ae362ffd0e30afce6205eef88913c6c8e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html#ae362ffd0e30afce6205eef88913c6c8e">Close</a> ()</td></tr>
<tr class="memdesc:ae362ffd0e30afce6205eef88913c6c8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Blocking close method that waits for all open connections to be closed before returning to the caller.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html#ae362ffd0e30afce6205eef88913c6c8e">More...</a><br /></td></tr>
<tr class="separator:ae362ffd0e30afce6205eef88913c6c8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c73a2b222c984e7e09182613d25606e"><td class="memItemLeft" align="right" valign="top">Task&lt; <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html">IClient</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html#a2c73a2b222c984e7e09182613d25606e">CloseAsync</a> ()</td></tr>
<tr class="memdesc:a2c73a2b222c984e7e09182613d25606e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initiates an asynchronous close of all the connections created from this client container. The returned Task allows the caller to wait for the close to complete or check in periodically to see if the operation has finished.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html#a2c73a2b222c984e7e09182613d25606e">More...</a><br /></td></tr>
<tr class="separator:a2c73a2b222c984e7e09182613d25606e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa30a756650351f8eb6285b50e3c295a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IConnection.html">IConnection</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html#afa30a756650351f8eb6285b50e3c295a">Connect</a> (string host, int port, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Client_1_1ConnectionOptions.html">ConnectionOptions</a> options=null)</td></tr>
<tr class="memdesc:afa30a756650351f8eb6285b50e3c295a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new connection to the designated remote host on the provided port. The connection is configured using the provided connection options. This method does not block waiting for the actual IO level connection to be established, a new <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IConnection.html" title="A single AMQP Connection instance.">IConnection</a> instance will be return which the caller can begin using. To await full connection to the remote the caller should use the open task exposed by the <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IConnection.html" title="A single AMQP Connection instance.">IConnection</a> to wait the outcome.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html#afa30a756650351f8eb6285b50e3c295a">More...</a><br /></td></tr>
<tr class="separator:afa30a756650351f8eb6285b50e3c295a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32721d33061fa40b8d0b915144a319f6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IConnection.html">IConnection</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html#a32721d33061fa40b8d0b915144a319f6">Connect</a> (string host, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Client_1_1ConnectionOptions.html">ConnectionOptions</a> options=null)</td></tr>
<tr class="memdesc:a32721d33061fa40b8d0b915144a319f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new connection to the designated remote host on the default AMQP port. The connection is configured using the provided connection options. This method does not block waiting for the actual IO level connection to be established, a new <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IConnection.html" title="A single AMQP Connection instance.">IConnection</a> instance will be return which the caller can begin using. To await full connection to the remote the caller should use the open task exposed by the <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IConnection.html" title="A single AMQP Connection instance.">IConnection</a> to wait the outcome.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html#a32721d33061fa40b8d0b915144a319f6">More...</a><br /></td></tr>
<tr class="separator:a32721d33061fa40b8d0b915144a319f6"><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:ae56f9c1873811240c72a915729da4653"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html">IClient</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html#ae56f9c1873811240c72a915729da4653">Create</a> (<a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Client_1_1ClientOptions.html">ClientOptions</a> options=null)</td></tr>
<tr class="memdesc:ae56f9c1873811240c72a915729da4653"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html" title="The Container that hosts one ore more AMQP connections that share a given AMQP container Id.">IClient</a> instance using the <a class="el" href="namespaceApache_1_1Qpid_1_1Proton.html">Proton</a> default implementation which has been configured using the provided client options.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html#ae56f9c1873811240c72a915729da4653">More...</a><br /></td></tr>
<tr class="separator:ae56f9c1873811240c72a915729da4653"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
Properties</h2></td></tr>
<tr class="memitem:af5241fb43f0f7f629cf01524f55131c1"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html#af5241fb43f0f7f629cf01524f55131c1">ContainerId</a><code> [get]</code></td></tr>
<tr class="memdesc:af5241fb43f0f7f629cf01524f55131c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the fixed AMQP container Id value this connection was created with.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html#af5241fb43f0f7f629cf01524f55131c1">More...</a><br /></td></tr>
<tr class="separator:af5241fb43f0f7f629cf01524f55131c1"><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>The Container that hosts one ore more AMQP connections that share a given AMQP container Id. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ae362ffd0e30afce6205eef88913c6c8e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae362ffd0e30afce6205eef88913c6c8e">&#9670;&nbsp;</a></span>Close()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Apache.Qpid.Proton.Client.IClient.Close </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Blocking close method that waits for all open connections to be closed before returning to the caller. </p>

<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Client_1_1Implementation_1_1ClientInstance.html#a2c002fd7208f848776dae1ae921aaaf9">Apache.Qpid.Proton.Client.Implementation.ClientInstance</a>.</p>

</div>
</div>
<a id="a2c73a2b222c984e7e09182613d25606e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c73a2b222c984e7e09182613d25606e">&#9670;&nbsp;</a></span>CloseAsync()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Task&lt;<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html">IClient</a>&gt; Apache.Qpid.Proton.Client.IClient.CloseAsync </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initiates an asynchronous close of all the connections created from this client container. The returned Task allows the caller to wait for the close to complete or check in periodically to see if the operation has finished. </p>
<dl class="section return"><dt>Returns</dt><dd>A task that aggregates the wait for all connections to close.</dd></dl>

<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Client_1_1Implementation_1_1ClientInstance.html#ac49e756d1dbf64f024338b2ddec0f5f2">Apache.Qpid.Proton.Client.Implementation.ClientInstance</a>.</p>

</div>
</div>
<a id="a32721d33061fa40b8d0b915144a319f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a32721d33061fa40b8d0b915144a319f6">&#9670;&nbsp;</a></span>Connect() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IConnection.html">IConnection</a> Apache.Qpid.Proton.Client.IClient.Connect </td>
          <td>(</td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>host</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Client_1_1ConnectionOptions.html">ConnectionOptions</a>&#160;</td>
          <td class="paramname"><em>options</em> = <code>null</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Creates a new connection to the designated remote host on the default AMQP port. The connection is configured using the provided connection options. This method does not block waiting for the actual IO level connection to be established, a new <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IConnection.html" title="A single AMQP Connection instance.">IConnection</a> instance will be return which the caller can begin using. To await full connection to the remote the caller should use the open task exposed by the <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IConnection.html" title="A single AMQP Connection instance.">IConnection</a> to wait the outcome. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">host</td><td>The remote host this connection should connect to</td></tr>
    <tr><td class="paramname">options</td><td>Optional connection options to use to configure the connection</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A new connection that connects to the given host</dd></dl>

<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Client_1_1Implementation_1_1ClientInstance.html#a869f3630ed0fc2629a83b0c9f9c96390">Apache.Qpid.Proton.Client.Implementation.ClientInstance</a>.</p>

</div>
</div>
<a id="afa30a756650351f8eb6285b50e3c295a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa30a756650351f8eb6285b50e3c295a">&#9670;&nbsp;</a></span>Connect() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IConnection.html">IConnection</a> Apache.Qpid.Proton.Client.IClient.Connect </td>
          <td>(</td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>host</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>port</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Client_1_1ConnectionOptions.html">ConnectionOptions</a>&#160;</td>
          <td class="paramname"><em>options</em> = <code>null</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Creates a new connection to the designated remote host on the provided port. The connection is configured using the provided connection options. This method does not block waiting for the actual IO level connection to be established, a new <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IConnection.html" title="A single AMQP Connection instance.">IConnection</a> instance will be return which the caller can begin using. To await full connection to the remote the caller should use the open task exposed by the <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IConnection.html" title="A single AMQP Connection instance.">IConnection</a> to wait the outcome. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">host</td><td>The remote host this connection should connect to</td></tr>
    <tr><td class="paramname">port</td><td>The port on the remote host where the connection is established</td></tr>
    <tr><td class="paramname">options</td><td>Optional connection options to use to configure the connection</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A new connection that connects to the given host and port</dd></dl>

<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Client_1_1Implementation_1_1ClientInstance.html#a736345f48befe78b744bf5bc15db5849">Apache.Qpid.Proton.Client.Implementation.ClientInstance</a>.</p>

</div>
</div>
<a id="ae56f9c1873811240c72a915729da4653"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae56f9c1873811240c72a915729da4653">&#9670;&nbsp;</a></span>Create()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html">IClient</a> Apache.Qpid.Proton.Client.IClient.Create </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Client_1_1ClientOptions.html">ClientOptions</a>&#160;</td>
          <td class="paramname"><em>options</em> = <code>null</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Creates a new <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Client_1_1IClient.html" title="The Container that hosts one ore more AMQP connections that share a given AMQP container Id.">IClient</a> instance using the <a class="el" href="namespaceApache_1_1Qpid_1_1Proton.html">Proton</a> default implementation which has been configured using the provided client options. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">options</td><td>Optional options to use to configure the new client instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a new client instance using the default <a class="el" href="namespaceApache_1_1Qpid_1_1Proton.html">Proton</a> implementation.</dd></dl>

</div>
</div>
<h2 class="groupheader">Property Documentation</h2>
<a id="af5241fb43f0f7f629cf01524f55131c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5241fb43f0f7f629cf01524f55131c1">&#9670;&nbsp;</a></span>ContainerId</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">string Apache.Qpid.Proton.Client.IClient.ContainerId</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the fixed AMQP container Id value this connection was created with. </p>

</div>
</div>
<hr/>The documentation for this interface was generated from the following file:<ul>
<li>src/Proton.Client/Client/IClient.cs</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>
