<!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>
<link rel="canonical" href="https://ignite.apache.org/releases/2.1.0/dotnetdoc/class_apache_1_1_ignite_1_1_asp_net_1_1_ignite_output_cache_provider.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">

<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.11"/>
<title>Apache Ignite.NET: Apache.Ignite.AspNet.IgniteOutputCacheProvider 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></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="projectlogo"><img alt="Logo" src="ignite_logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Apache Ignite.NET
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('class_apache_1_1_ignite_1_1_asp_net_1_1_ignite_output_cache_provider.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="class_apache_1_1_ignite_1_1_asp_net_1_1_ignite_output_cache_provider-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Apache.Ignite.AspNet.IgniteOutputCacheProvider Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>ASP.NET output cache provider that uses Ignite cache as a storage.  
 <a href="class_apache_1_1_ignite_1_1_asp_net_1_1_ignite_output_cache_provider.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Apache.Ignite.AspNet.IgniteOutputCacheProvider:</div>
<div class="dyncontent">
 <div class="center">
  <img src="class_apache_1_1_ignite_1_1_asp_net_1_1_ignite_output_cache_provider.png" usemap="#Apache.Ignite.AspNet.IgniteOutputCacheProvider_map" alt=""/>
  <map id="Apache.Ignite.AspNet.IgniteOutputCacheProvider_map" name="Apache.Ignite.AspNet.IgniteOutputCacheProvider_map">
</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:a3e97a02fc976871d3ca8ba199993c842"><td class="memItemLeft" align="right" valign="top">override object&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_apache_1_1_ignite_1_1_asp_net_1_1_ignite_output_cache_provider.html#a3e97a02fc976871d3ca8ba199993c842">Get</a> (string key)</td></tr>
<tr class="memdesc:a3e97a02fc976871d3ca8ba199993c842"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a reference to the specified entry in the output cache.  <a href="#a3e97a02fc976871d3ca8ba199993c842">More...</a><br /></td></tr>
<tr class="separator:a3e97a02fc976871d3ca8ba199993c842"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7706d3d2543d69c76031dc9ef1f02925"><td class="memItemLeft" align="right" valign="top">override object&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_apache_1_1_ignite_1_1_asp_net_1_1_ignite_output_cache_provider.html#a7706d3d2543d69c76031dc9ef1f02925">Add</a> (string key, object entry, DateTime utcExpiry)</td></tr>
<tr class="memdesc:a7706d3d2543d69c76031dc9ef1f02925"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts the specified entry into the output cache.  <a href="#a7706d3d2543d69c76031dc9ef1f02925">More...</a><br /></td></tr>
<tr class="separator:a7706d3d2543d69c76031dc9ef1f02925"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ac574d92de38f6a5908134c16c8f210"><td class="memItemLeft" align="right" valign="top">override void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_apache_1_1_ignite_1_1_asp_net_1_1_ignite_output_cache_provider.html#a2ac574d92de38f6a5908134c16c8f210">Set</a> (string key, object entry, DateTime utcExpiry)</td></tr>
<tr class="memdesc:a2ac574d92de38f6a5908134c16c8f210"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts the specified entry into the output cache, overwriting the entry if it is already cached.  <a href="#a2ac574d92de38f6a5908134c16c8f210">More...</a><br /></td></tr>
<tr class="separator:a2ac574d92de38f6a5908134c16c8f210"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5878be7f33d5267492f38f103ff86a60"><td class="memItemLeft" align="right" valign="top">override void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_apache_1_1_ignite_1_1_asp_net_1_1_ignite_output_cache_provider.html#a5878be7f33d5267492f38f103ff86a60">Remove</a> (string key)</td></tr>
<tr class="memdesc:a5878be7f33d5267492f38f103ff86a60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the specified entry from the output cache.  <a href="#a5878be7f33d5267492f38f103ff86a60">More...</a><br /></td></tr>
<tr class="separator:a5878be7f33d5267492f38f103ff86a60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38755d695e3075b02f421b21ae366395"><td class="memItemLeft" align="right" valign="top">override void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_apache_1_1_ignite_1_1_asp_net_1_1_ignite_output_cache_provider.html#a38755d695e3075b02f421b21ae366395">Initialize</a> (string name, NameValueCollection config)</td></tr>
<tr class="memdesc:a38755d695e3075b02f421b21ae366395"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the provider.  <a href="#a38755d695e3075b02f421b21ae366395">More...</a><br /></td></tr>
<tr class="separator:a38755d695e3075b02f421b21ae366395"><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>You can either start Ignite yourself, and provide <code>gridName</code> attribute, or provide <code>igniteConfigurationSectionName</code> attribute to start Ignite automatically from specified configuration section (see IgniteConfigurationSection) using <code>igniteConfigurationSectionName</code>. </p>
<p><code>cacheName</code> attribute specifies Ignite cache name to use for data storage. This attribute can be omitted if cache name is null. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a7706d3d2543d69c76031dc9ef1f02925"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">override object Apache.Ignite.AspNet.IgniteOutputCacheProvider.Add </td>
          <td>(</td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">object&#160;</td>
          <td class="paramname"><em>entry</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DateTime&#160;</td>
          <td class="paramname"><em>utcExpiry</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">key</td><td>A unique identifier for <em>entry</em> .</td></tr>
    <tr><td class="paramname">entry</td><td>The content to add to the output cache.</td></tr>
    <tr><td class="paramname">utcExpiry</td><td>The time and date on which the cached entry expires.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A reference to the specified provider. </dd></dl>

</div>
</div>
<a class="anchor" id="a3e97a02fc976871d3ca8ba199993c842"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">override object Apache.Ignite.AspNet.IgniteOutputCacheProvider.Get </td>
          <td>(</td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">key</td><td>A unique identifier for a cached entry in the output cache.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The <em>key</em>  value that identifies the specified entry in the cache, or null if the specified entry is not in the cache. </dd></dl>

</div>
</div>
<a class="anchor" id="a38755d695e3075b02f421b21ae366395"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">override void Apache.Ignite.AspNet.IgniteOutputCacheProvider.Initialize </td>
          <td>(</td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">NameValueCollection&#160;</td>
          <td class="paramname"><em>config</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>The friendly name of the provider.</td></tr>
    <tr><td class="paramname">config</td><td>A collection of the name/value pairs representing the provider-specific attributes specified in the configuration for this provider.</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5878be7f33d5267492f38f103ff86a60"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">override void Apache.Ignite.AspNet.IgniteOutputCacheProvider.Remove </td>
          <td>(</td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">key</td><td>The unique identifier for the entry to remove from the output cache.</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2ac574d92de38f6a5908134c16c8f210"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">override void Apache.Ignite.AspNet.IgniteOutputCacheProvider.Set </td>
          <td>(</td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">object&#160;</td>
          <td class="paramname"><em>entry</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DateTime&#160;</td>
          <td class="paramname"><em>utcExpiry</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">key</td><td>A unique identifier for <em>entry</em> .</td></tr>
    <tr><td class="paramname">entry</td><td>The content to add to the output cache.</td></tr>
    <tr><td class="paramname">utcExpiry</td><td>The time and date on which the cached <em>entry</em>  expires.</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespace_apache.html">Apache</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite.html">Ignite</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite_1_1_asp_net.html">AspNet</a></li><li class="navelem"><a class="el" href="class_apache_1_1_ignite_1_1_asp_net_1_1_ignite_output_cache_provider.html">IgniteOutputCacheProvider</a></li>
    <li class="footer">Generated on Thu Jul 20 2017 17:38:48 for Apache Ignite.NET by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
