blob: 8241cd1242a2d4cb6b14594eb6ce7b481a01149d [file] [log] [blame]
<!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.0.0/dotnetdoc/interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.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.9.1"/>
<title>Apache Ignite.NET: Apache.Ignite.Core.Cache.Store.ICacheStore&lt; TK, TV &gt; Interface Template 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 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.9.1 -->
</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('interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Apache.Ignite.Core.Cache.Store.ICacheStore&lt; TK, TV &gt; Interface Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>API for cache persistent storage for read-through and write-through behavior.
<a href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Apache.Ignite.Core.Cache.Store.ICacheStore&lt; TK, TV &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.png" usemap="#Apache.Ignite.Core.Cache.Store.ICacheStore&lt; TK, TV &gt;_map" alt=""/>
<map id="Apache.Ignite.Core.Cache.Store.ICacheStore&lt; TK, TV &gt;_map" name="Apache.Ignite.Core.Cache.Store.ICacheStore&lt; TK, TV &gt;_map">
<area href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_parallel_load_store_adapter.html" title="Cache storage adapter with parallel loading in LoadAll method. " alt="Apache.Ignite.Core.Cache.Store.CacheParallelLoadStoreAdapter&lt; TK, TV, TData &gt;" shape="rect" coords="0,112,490,136"/>
<area href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_store_adapter.html" title="Cache storage convenience adapter. It provides default implementation for bulk operations, such as LoadAll, PutAll and RemoveAll by sequentially calling corresponding Load, Put and Remove operations. Use this adapter whenever such behaviour is acceptable. However in many cases it maybe more preferable to take advantage of database batch update functionality, and therefore default adapter implementation may not be the best option. Note that LoadCache method has empty implementation because it is essentially up to the user to invoke it with specific arguments. " alt="Apache.Ignite.Core.Cache.Store.CacheStoreAdapter&lt; TK, TV &gt;" shape="rect" coords="500,112,990,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:a930ccc208e0bd140af725fcc83dc51fa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html#a930ccc208e0bd140af725fcc83dc51fa">LoadCache</a> (Action&lt; TK, TV &gt; act, params object[] args)</td></tr>
<tr class="memdesc:a930ccc208e0bd140af725fcc83dc51fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads all values from underlying persistent storage. Note that keys are not passed, so it is up to implementation to figure out what to load. This method is called whenever <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache.html#a7b22f19d0a12cf6dedec057a66e94bf7" title="Delegates to ICacheStore<K, V>.LoadCache method to load state from the underlying persistent storage...">ICache&lt;K,V&gt;.LocalLoadCache</a> method is invoked which is usually to preload the cache from persistent storage. This method is optional, and cache implementation does not depend on this method to do anything. For every loaded value method provided action should be called. The action will then make sure that the loaded value is stored in cache. <a href="#a930ccc208e0bd140af725fcc83dc51fa">More...</a><br /></td></tr>
<tr class="separator:a930ccc208e0bd140af725fcc83dc51fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a513a1ec111c25167763b0bafef9f3b8e"><td class="memItemLeft" align="right" valign="top">TV&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html#a513a1ec111c25167763b0bafef9f3b8e">Load</a> (TK key)</td></tr>
<tr class="memdesc:a513a1ec111c25167763b0bafef9f3b8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads an object. Application developers should implement this method to customize the loading of a value for a cache entry. This method is called by a cache when a requested entry is not in the cache. If the object can't be loaded <code>null</code> should be returned. <a href="#a513a1ec111c25167763b0bafef9f3b8e">More...</a><br /></td></tr>
<tr class="separator:a513a1ec111c25167763b0bafef9f3b8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31319a4bfbe9603c7358cb4232c3a30d"><td class="memItemLeft" align="right" valign="top">IEnumerable&lt; KeyValuePair&lt; TK, TV &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html#a31319a4bfbe9603c7358cb4232c3a30d">LoadAll</a> (IEnumerable&lt; TK &gt; keys)</td></tr>
<tr class="memdesc:a31319a4bfbe9603c7358cb4232c3a30d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads multiple objects. Application developers should implement this method to customize the loading of cache entries. This method is called when the requested object is not in the cache. If an object can't be loaded, it is not returned in the resulting map. <a href="#a31319a4bfbe9603c7358cb4232c3a30d">More...</a><br /></td></tr>
<tr class="separator:a31319a4bfbe9603c7358cb4232c3a30d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a841a2a60ea63f70e97f41212f3a5b520"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html#a841a2a60ea63f70e97f41212f3a5b520">Write</a> (TK key, TV val)</td></tr>
<tr class="memdesc:a841a2a60ea63f70e97f41212f3a5b520"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the specified value under the specified key to the external resource. <a href="#a841a2a60ea63f70e97f41212f3a5b520">More...</a><br /></td></tr>
<tr class="separator:a841a2a60ea63f70e97f41212f3a5b520"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9018f67bf3ff70b1fd97eaaa291a288d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html#a9018f67bf3ff70b1fd97eaaa291a288d">WriteAll</a> (IEnumerable&lt; KeyValuePair&lt; TK, TV &gt;&gt; entries)</td></tr>
<tr class="memdesc:a9018f67bf3ff70b1fd97eaaa291a288d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the specified entries to the external resource. This method is intended to support both insert and update. <a href="#a9018f67bf3ff70b1fd97eaaa291a288d">More...</a><br /></td></tr>
<tr class="separator:a9018f67bf3ff70b1fd97eaaa291a288d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c107f09f24d90f070d5fa89d394bfb2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html#a2c107f09f24d90f070d5fa89d394bfb2">Delete</a> (TK key)</td></tr>
<tr class="memdesc:a2c107f09f24d90f070d5fa89d394bfb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete the cache entry from the external resource. <a href="#a2c107f09f24d90f070d5fa89d394bfb2">More...</a><br /></td></tr>
<tr class="separator:a2c107f09f24d90f070d5fa89d394bfb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70ca0efc14a0c8dee2a4de16c0fe4ab5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html#a70ca0efc14a0c8dee2a4de16c0fe4ab5">DeleteAll</a> (IEnumerable&lt; TK &gt; keys)</td></tr>
<tr class="memdesc:a70ca0efc14a0c8dee2a4de16c0fe4ab5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove data and keys from the external resource for the given collection of keys, if present. <a href="#a70ca0efc14a0c8dee2a4de16c0fe4ab5">More...</a><br /></td></tr>
<tr class="separator:a70ca0efc14a0c8dee2a4de16c0fe4ab5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1e59eb2242e5bcada8a2c13e5a398ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html#ab1e59eb2242e5bcada8a2c13e5a398ab">SessionEnd</a> (bool commit)</td></tr>
<tr class="memdesc:ab1e59eb2242e5bcada8a2c13e5a398ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tells store to commit or rollback a transaction depending on the value of the <code>commit</code> parameter. <a href="#ab1e59eb2242e5bcada8a2c13e5a398ab">More...</a><br /></td></tr>
<tr class="separator:ab1e59eb2242e5bcada8a2c13e5a398ab"><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>Non-generic base type for ICacheStore&lt;TK,TV&gt;, used only for configuration property. Users should implement generic ICacheStore&lt;TK,TV&gt;. </p>
<p>Generic argument types depend on <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_configuration_1_1_cache_configuration.html#aca8161d3a96beb28ac8ce32ab1cf1426" title="Gets or sets the flag indicating whether ICacheStore is working with binary objects instead of deseri...">CacheConfiguration.KeepBinaryInStore</a> property. When <code>true</code> (default), cache store operates on IBinaryObject instances. Otherwise, generic arguments should be the same as in corresponding ICache&lt;TK, TV&gt;. </p>
<p>Persistent store is configured in Ignite's Spring XML configuration file via <code>CacheConfiguration.setStore()</code> property. If you have an implementation of cache store in .NET, you should use special Java wrapper which accepts assembly name and class name of .NET store implementation (both properties are mandatory).</p>
<p>Optionally, you may specify "properies" property to set any property values on an instance of your store. </p>
<p>Here is an example: </p><div class="fragment"><div class="line">&lt;bean <span class="keyword">class</span>=<span class="stringliteral">&quot;org.apache.ignite.configuration.CacheConfiguration&quot;</span>&gt;</div>
<div class="line"> ...</div>
<div class="line"> &lt;<span class="keyword">property</span> name=<span class="stringliteral">&quot;cacheStoreFactory&quot;</span>&gt;</div>
<div class="line"> &lt;bean <span class="keyword">class</span>=<span class="stringliteral">&quot;org.apache.ignite.platform.dotnet.PlatformDotNetCacheStoreFactory&quot;</span>&gt;</div>
<div class="line"> &lt;<span class="keyword">property</span> name=<span class="stringliteral">&quot;assemblyName&quot;</span> value=<span class="stringliteral">&quot;MyAssembly&quot;</span>/&gt;</div>
<div class="line"> &lt;<span class="keyword">property</span> name=<span class="stringliteral">&quot;className&quot;</span> value=<span class="stringliteral">&quot;MyApp.MyCacheStore&quot;</span>/&gt;</div>
<div class="line"> &lt;<span class="keyword">property</span> name=<span class="stringliteral">&quot;properties&quot;</span>&gt;</div>
<div class="line"> &lt;map&gt;</div>
<div class="line"> &lt;entry key=<span class="stringliteral">&quot;IntProperty&quot;</span>&gt;</div>
<div class="line"> &lt;value type=<span class="stringliteral">&quot;java.lang.Integer&quot;</span>&gt;42&lt;/value&gt;</div>
<div class="line"> &lt;/entry&gt;</div>
<div class="line"> &lt;entry key=<span class="stringliteral">&quot;StringProperty&quot;</span> value=<span class="stringliteral">&quot;String value&quot;</span>/&gt;</div>
<div class="line"> &lt;/map&gt;</div>
<div class="line"> &lt;/<span class="keyword">property</span>&gt;</div>
<div class="line"> &lt;/bean&gt;</div>
<div class="line"> &lt;/<span class="keyword">property</span>&gt;</div>
<div class="line"> ...</div>
<div class="line">&lt;/bean&gt;</div>
</div><!-- fragment --> <p>Assemply name and class name are passed to <a href="http://msdn.microsoft.com/en-us/library/d133hta4.aspx" target="_blank"><b>System.Activator.CreateInstance(String, String)</b></a> method during node startup to create an instance of cache store. Refer to its documentation for details. </p>
<p>All transactional operations of this API are provided with ongoing ITransaction, if any. You can attach any metadata to transaction, e.g. to recognize if several operations belong to the same transaction or not. </p>
<p>Here is an example of how attach a ODBC connection as transaction metadata: </p><div class="fragment"><div class="line">OdbcConnection conn = tx.Meta(<span class="stringliteral">&quot;some.name&quot;</span>);</div>
<div class="line"></div>
<div class="line"><span class="keywordflow">if</span> (conn == null)</div>
<div class="line">{</div>
<div class="line"> conn = ...; <span class="comment">// Create or get connection.</span></div>
<div class="line"></div>
<div class="line"> <span class="comment">// Store connection in transaction metadata, so it can be accessed</span></div>
<div class="line"> <span class="comment">// for other operations on the same transaction.</span></div>
<div class="line"> tx.AddMeta(<span class="stringliteral">&quot;some.name&quot;</span>, conn);</div>
<div class="line">}</div>
</div><!-- fragment --> <dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">TK</td><td>Key type.</td></tr>
<tr><td class="paramname">TV</td><td>Value type.</td></tr>
</table>
</dd>
</dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a2c107f09f24d90f070d5fa89d394bfb2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html">Apache.Ignite.Core.Cache.Store.ICacheStore</a>&lt; TK, TV &gt;.Delete </td>
<td>(</td>
<td class="paramtype">TK&#160;</td>
<td class="paramname"><em>key</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Expiry of a cache entry is not a delete hence will not cause this method to be invoked. </p>
<p>This method is invoked even if no mapping for the key exists. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>The key that is used for the delete operation.</td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">CacheStoreException</td><td></td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_parallel_load_store_adapter.html#a377a2639291beb495a137f8458328477">Apache.Ignite.Core.Cache.Store.CacheParallelLoadStoreAdapter&lt; TK, TV, TData &gt;</a>, and <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_store_adapter.html#aab8dabc5c9e532afd82223c6369796ad">Apache.Ignite.Core.Cache.Store.CacheStoreAdapter&lt; TK, TV &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="a70ca0efc14a0c8dee2a4de16c0fe4ab5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html">Apache.Ignite.Core.Cache.Store.ICacheStore</a>&lt; TK, TV &gt;.DeleteAll </td>
<td>(</td>
<td class="paramtype">IEnumerable&lt; TK &gt;&#160;</td>
<td class="paramname"><em>keys</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The order that individual deletes occur is undefined. </p>
<p>If this operation fails (by throwing an exception) after a partial success, the writer must remove any successfully written entries from the entries collection so that the caching implementation knows what succeeded and can mutate the cache. </p>
<p>Expiry of a cache entry is not a delete hence will not cause this method to be invoked. </p>
<p>This method may include keys even if there is no mapping for that key, in which case the data represented by that key should be removed from the underlying resource. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">keys</td><td>a mutable collection of keys for entries to delete. Upon invocation, it contains the keys to delete for write-through. Upon return the collection must only contain the keys that were not successfully deleted.</td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">CacheStoreException</td><td></td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_parallel_load_store_adapter.html#a3ca7f1e1bda2f96ec8d9f24b1eeb09db">Apache.Ignite.Core.Cache.Store.CacheParallelLoadStoreAdapter&lt; TK, TV, TData &gt;</a>, and <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_store_adapter.html#aa034f03f29fca8273c67ab43f9fc8dbe">Apache.Ignite.Core.Cache.Store.CacheStoreAdapter&lt; TK, TV &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="a513a1ec111c25167763b0bafef9f3b8e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TV <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html">Apache.Ignite.Core.Cache.Store.ICacheStore</a>&lt; TK, TV &gt;.Load </td>
<td>(</td>
<td class="paramtype">TK&#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 key identifying the object being loaded.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The value for the entry that is to be stored in the cache or <code>null</code> if the object can't be loaded</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">CacheStoreException</td><td></td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_store_adapter.html#ac8849cc917642dd8a68437c01045dad5">Apache.Ignite.Core.Cache.Store.CacheStoreAdapter&lt; TK, TV &gt;</a>, and <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_parallel_load_store_adapter.html#a2b2eff1566d6fc49ae2aea9b854b90ef">Apache.Ignite.Core.Cache.Store.CacheParallelLoadStoreAdapter&lt; TK, TV, TData &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="a31319a4bfbe9603c7358cb4232c3a30d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">IEnumerable&lt;KeyValuePair&lt;TK, TV&gt; &gt; <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html">Apache.Ignite.Core.Cache.Store.ICacheStore</a>&lt; TK, TV &gt;.LoadAll </td>
<td>(</td>
<td class="paramtype">IEnumerable&lt; TK &gt;&#160;</td>
<td class="paramname"><em>keys</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">keys</td><td>Keys identifying the values to be loaded.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A map of key, values to be stored in the cache.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">CacheStoreException</td><td></td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_parallel_load_store_adapter.html#af02a09065e8ffdb264a1c5efac9f2e4b">Apache.Ignite.Core.Cache.Store.CacheParallelLoadStoreAdapter&lt; TK, TV, TData &gt;</a>, and <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_store_adapter.html#a2415d2490fbb7c3bf5849346179a7281">Apache.Ignite.Core.Cache.Store.CacheStoreAdapter&lt; TK, TV &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="a930ccc208e0bd140af725fcc83dc51fa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html">Apache.Ignite.Core.Cache.Store.ICacheStore</a>&lt; TK, TV &gt;.LoadCache </td>
<td>(</td>
<td class="paramtype">Action&lt; TK, TV &gt;&#160;</td>
<td class="paramname"><em>act</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">params object[]&#160;</td>
<td class="paramname"><em>args</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">act</td><td>Action for loaded values.</td></tr>
<tr><td class="paramname">args</td><td>Optional arguemnts passed to <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache.html#a7b22f19d0a12cf6dedec057a66e94bf7" title="Delegates to ICacheStore<K, V>.LoadCache method to load state from the underlying persistent storage...">ICache&lt;K,V&gt;.LocalLoadCache</a> method.</td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">CacheStoreException</td><td></td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_parallel_load_store_adapter.html#abe774e788f1fa31485e8b7fdfff7801c">Apache.Ignite.Core.Cache.Store.CacheParallelLoadStoreAdapter&lt; TK, TV, TData &gt;</a>, and <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_store_adapter.html#a3e598d299f83c5c6f3757fd1adf4a020">Apache.Ignite.Core.Cache.Store.CacheStoreAdapter&lt; TK, TV &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="ab1e59eb2242e5bcada8a2c13e5a398ab"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html">Apache.Ignite.Core.Cache.Store.ICacheStore</a>&lt; TK, TV &gt;.SessionEnd </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>commit</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">commit</td><td><code>True</code> if transaction should commit, <code>false</code> for rollback.</td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">CacheStoreException</td><td></td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_parallel_load_store_adapter.html#a477068aaf46e25553dcbb4e8963bc587">Apache.Ignite.Core.Cache.Store.CacheParallelLoadStoreAdapter&lt; TK, TV, TData &gt;</a>, and <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_store_adapter.html#a08141eb3aecbaa469f8b0e2df7c42007">Apache.Ignite.Core.Cache.Store.CacheStoreAdapter&lt; TK, TV &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="a841a2a60ea63f70e97f41212f3a5b520"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html">Apache.Ignite.Core.Cache.Store.ICacheStore</a>&lt; TK, TV &gt;.Write </td>
<td>(</td>
<td class="paramtype">TK&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">TV&#160;</td>
<td class="paramname"><em>val</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This method is intended to support both key/value creation and value update. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>Key to write.</td></tr>
<tr><td class="paramname">val</td><td>Value to write.</td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">CacheStoreException</td><td></td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_store_adapter.html#a03afdaf2743e47d074eafd58c8c05b0e">Apache.Ignite.Core.Cache.Store.CacheStoreAdapter&lt; TK, TV &gt;</a>, and <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_parallel_load_store_adapter.html#a57e9135545622ad3785934286f55e9b5">Apache.Ignite.Core.Cache.Store.CacheParallelLoadStoreAdapter&lt; TK, TV, TData &gt;</a>.</p>
</div>
</div>
<a class="anchor" id="a9018f67bf3ff70b1fd97eaaa291a288d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html">Apache.Ignite.Core.Cache.Store.ICacheStore</a>&lt; TK, TV &gt;.WriteAll </td>
<td>(</td>
<td class="paramtype">IEnumerable&lt; KeyValuePair&lt; TK, TV &gt;&gt;&#160;</td>
<td class="paramname"><em>entries</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The order that individual writes occur is undefined. </p>
<p>If this operation fails (by throwing an exception) after a partial success, the writer must remove any successfully written entries from the entries collection so that the caching implementation knows what succeeded and can mutate the cache. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entries</td><td>a mutable collection to write. Upon invocation, it contains the entries to write for write-through. Upon return the collection must only contain entries that were not successfully written. (see partial success above).</td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">CacheStoreException</td><td></td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_parallel_load_store_adapter.html#a8424e4eb0e823e7b8e38bcb5ce924721">Apache.Ignite.Core.Cache.Store.CacheParallelLoadStoreAdapter&lt; TK, TV, TData &gt;</a>, and <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_store_adapter.html#ad2aa71ba0a2324256a209acf1cfb3fd1">Apache.Ignite.Core.Cache.Store.CacheStoreAdapter&lt; TK, TV &gt;</a>.</p>
</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_core.html">Core</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_cache.html">Cache</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store.html">Store</a></li><li class="navelem"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html">ICacheStore</a></li>
<li class="footer">Generated on Sun Apr 30 2017 12:15:05 for Apache Ignite.NET by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
</div>
</body>
</html>