<!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.Engine.IAttachments 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_1Engine.html">Engine</a></li><li class="navelem"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html">IAttachments</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#properties">Properties</a> &#124;
<a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Apache.Qpid.Proton.Engine.IAttachments Interface Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Attachments API used to provide additional state data to live alongside specific <a class="el" href="namespaceApache_1_1Qpid_1_1Proton.html">Proton</a> AMQP resources.  
 <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Apache.Qpid.Proton.Engine.IAttachments:</div>
<div class="dyncontent">
 <div class="center">
  <img src="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.png" usemap="#Apache.Qpid.Proton.Engine.IAttachments_map" alt=""/>
  <map id="Apache.Qpid.Proton.Engine.IAttachments_map" name="Apache.Qpid.Proton.Engine.IAttachments_map">
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonAttachments.html" alt="Apache.Qpid.Proton.Engine.Implementation.ProtonAttachments" shape="rect" coords="0,56,366,80"/>
  </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:ac91e9803f33ecd2dce73bae3e415b7e9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html#ac91e9803f33ecd2dce73bae3e415b7e9">TryGet</a> (in string key, out object value)</td></tr>
<tr class="memdesc:ac91e9803f33ecd2dce73bae3e415b7e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the user attached value that is associated with the given key, or null if no data is mapped to the key.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html#ac91e9803f33ecd2dce73bae3e415b7e9">More...</a><br /></td></tr>
<tr class="separator:ac91e9803f33ecd2dce73bae3e415b7e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77f7ba18aa0d47859f84b23ba0a73e1f"><td class="memItemLeft" align="right" valign="top">T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html#a77f7ba18aa0d47859f84b23ba0a73e1f">Get&lt; T &gt;</a> (in string key, in T defaultValue)</td></tr>
<tr class="memdesc:a77f7ba18aa0d47859f84b23ba0a73e1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the user attached value that is associated with the given key, or null if no data is mapped to the key.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html#a77f7ba18aa0d47859f84b23ba0a73e1f">More...</a><br /></td></tr>
<tr class="separator:a77f7ba18aa0d47859f84b23ba0a73e1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f954bf1634f4be84133e01fb0fe8627"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html">IAttachments</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html#a5f954bf1634f4be84133e01fb0fe8627">Set</a> (in string key, in object value)</td></tr>
<tr class="memdesc:a5f954bf1634f4be84133e01fb0fe8627"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maps a given object to the given key in this Attachments instance.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html#a5f954bf1634f4be84133e01fb0fe8627">More...</a><br /></td></tr>
<tr class="separator:a5f954bf1634f4be84133e01fb0fe8627"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a549cf43c58cb1b41fb783bc39022ece0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html#a549cf43c58cb1b41fb783bc39022ece0">Contains</a> (in string key)</td></tr>
<tr class="memdesc:a549cf43c58cb1b41fb783bc39022ece0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns if the given key has a value mapped to it in this Attachments instance.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html#a549cf43c58cb1b41fb783bc39022ece0">More...</a><br /></td></tr>
<tr class="separator:a549cf43c58cb1b41fb783bc39022ece0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adffa651979be75e1ba0f8a0f4ea17fb3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html">IAttachments</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html#adffa651979be75e1ba0f8a0f4ea17fb3">Clear</a> ()</td></tr>
<tr class="memdesc:adffa651979be75e1ba0f8a0f4ea17fb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes all attachments from this instance.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html#adffa651979be75e1ba0f8a0f4ea17fb3">More...</a><br /></td></tr>
<tr class="separator:adffa651979be75e1ba0f8a0f4ea17fb3"><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:a2bac8d99175e6a867b7ad28a228da43a"><td class="memItemLeft" align="right" valign="top">object&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html#a2bac8d99175e6a867b7ad28a228da43a">this[string key]</a><code> [get, set]</code></td></tr>
<tr class="memdesc:a2bac8d99175e6a867b7ad28a228da43a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets or sets the attachment with the given key. If the element being retrieved is not in the collection an exception is thrown.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html#a2bac8d99175e6a867b7ad28a228da43a">More...</a><br /></td></tr>
<tr class="separator:a2bac8d99175e6a867b7ad28a228da43a"><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>Attachments API used to provide additional state data to live alongside specific <a class="el" href="namespaceApache_1_1Qpid_1_1Proton.html">Proton</a> AMQP resources. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="adffa651979be75e1ba0f8a0f4ea17fb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adffa651979be75e1ba0f8a0f4ea17fb3">&#9670;&nbsp;</a></span>Clear()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html">IAttachments</a> Apache.Qpid.Proton.Engine.IAttachments.Clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Removes all attachments from this instance. </p>
<dl class="section return"><dt>Returns</dt><dd>This Attachments instance</dd></dl>

<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonAttachments.html#aa32a125518ae8a98030618f4753aa69f">Apache.Qpid.Proton.Engine.Implementation.ProtonAttachments</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Apache.Qpid.Proton.Engine.IAttachments.Contains </td>
          <td>(</td>
          <td class="paramtype">in string&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns if the given key has a value mapped to it in this Attachments instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">key</td><td>The key to search in the attachments</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the key is present or false if not.</dd></dl>

<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonAttachments.html#afb54d3cf2e5a014d7a97a64495fd2487">Apache.Qpid.Proton.Engine.Implementation.ProtonAttachments</a>.</p>

</div>
</div>
<a id="a77f7ba18aa0d47859f84b23ba0a73e1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77f7ba18aa0d47859f84b23ba0a73e1f">&#9670;&nbsp;</a></span>Get&lt; T &gt;()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">T Apache.Qpid.Proton.Engine.IAttachments.Get&lt; T &gt; </td>
          <td>(</td>
          <td class="paramtype">in string&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">in T&#160;</td>
          <td class="paramname"><em>defaultValue</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the user attached value that is associated with the given key, or null if no data is mapped to the key. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T</td><td>The type to attempt to convert the attachment to</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">key</td><td>The key to search for in the attachments</td></tr>
    <tr><td class="paramname">defaultValue</td><td>The default to return if the key is not present</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A user set attachment for this given key or return the default</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">InvalidCastException</td><td>If the attachment cannot be converted</td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonAttachments.html#a7746c01d75ba569e59704510f74e243c">Apache.Qpid.Proton.Engine.Implementation.ProtonAttachments</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1IAttachments.html">IAttachments</a> Apache.Qpid.Proton.Engine.IAttachments.Set </td>
          <td>(</td>
          <td class="paramtype">in string&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">in object&#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>Maps a given object to the given key in this Attachments instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">key</td><td>The key used to add or replace a value</td></tr>
    <tr><td class="paramname">value</td><td>The value to store with the given key</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>This Attachments instance</dd></dl>

<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonAttachments.html#a78d72b11782a5155e141c5b70f7be382">Apache.Qpid.Proton.Engine.Implementation.ProtonAttachments</a>.</p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Apache.Qpid.Proton.Engine.IAttachments.TryGet </td>
          <td>(</td>
          <td class="paramtype">in string&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">out object&#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>Gets the user attached value that is associated with the given key, or null if no data is mapped to the key. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">key</td><td>The key to search for in the attachments</td></tr>
    <tr><td class="paramname">value</td><td>The value that result if the key exists</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the value was in the attachments and retrieved</dd></dl>

<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Implementation_1_1ProtonAttachments.html#a9b26200ca475a83575a8dbe4f4c76910">Apache.Qpid.Proton.Engine.Implementation.ProtonAttachments</a>.</p>

</div>
</div>
<h2 class="groupheader">Property Documentation</h2>
<a id="a2bac8d99175e6a867b7ad28a228da43a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2bac8d99175e6a867b7ad28a228da43a">&#9670;&nbsp;</a></span>this[string key]</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">object Apache.Qpid.Proton.Engine.IAttachments.this[string key]</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span><span class="mlabel">set</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets or sets the attachment with the given key. If the element being retrieved is not in the collection an exception is thrown. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">key</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">KeyNotFoundException</td><td>If the given key is not in the attachments</td></tr>
    <tr><td class="paramname">ArgumentNullException</td><td>If the given key is null</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this interface was generated from the following file:<ul>
<li>src/Proton/Engine/IAttachments.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>
