<!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.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Apache Geode Native .NET Reference: Data Fields - Functions</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">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</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">Apache Geode Native .NET Reference
   &#160;<span id="projectnumber">1.13.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<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');
/* @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>
</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">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('functions_func_t.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- 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 class="contents">
&#160;

<h3><a id="index_t"></a>- t -</h3><ul>
<li>TimeoutException()
: <a class="el" href="a00650.html#acadcd1412ccbd864dc0945a5fb28d190">Apache::Geode::Client::TimeoutException</a>
</li>
<li>ToData()
: <a class="el" href="a00462.html#afd74764789c89b8b3eac7825ac32ed21">Apache::Geode::Client::CacheableDate</a>
, <a class="el" href="a00470.html#a9a0b222bb6716951fbb6177669bd0a4a">Apache::Geode::Client::CacheableHashMap</a>
, <a class="el" href="a00518.html#a014cff861e9f22584c0339236c1644ca">Apache::Geode::Client::CacheableStack</a>
, <a class="el" href="a00530.html#a813d330b1b098655b4afa6474e25994f">Apache::Geode::Client::CacheableUndefined</a>
, <a class="el" href="a00534.html#aa160b4bf5fe65c679dda54f87a439e77">Apache::Geode::Client::CacheableVector</a>
, <a class="el" href="a00934.html#adf9452e68aefc3bd36a8acd1cf283d9d">Apache::Geode::Client::IDataSerializable</a>
, <a class="el" href="a00978.html#a7474ae1c1adf439e7e95e8805fae9b4c">Apache::Geode::Client::IPdxSerializable</a>
, <a class="el" href="a00982.html#afaf1bc50a405f4aa0098b0cac995308e">Apache::Geode::Client::IPdxSerializer</a>
, <a class="el" href="a00406.html#ae3787788debde25e8cec116b47818577">Apache::Geode::Client::Properties&lt; TPropKey, TPropValue &gt;</a>
, <a class="el" href="a01090.html#a0a7fee9ac7d5b32600ea1729e2a6b50a">Apache::Geode::Client::ReflectionBasedAutoSerializer</a>
, <a class="el" href="a01010.html#a626f3cb55dd5327baa1fab621766e5de">Apache::Geode::Client::RegionAttributes&lt; TKey, TValue &gt;</a>
</li>
<li>ToDelta()
: <a class="el" href="a00950.html#ae596a2c12886ef4c156114c6912366c3">Apache::Geode::Client::IDelta</a>
</li>
<li>ToPdxTypeName()
: <a class="el" href="a00986.html#a5b8c729af34adb799fd21b71fed87408">Apache::Geode::Client::IPdxTypeMapper</a>
</li>
<li>ToString()
: <a class="el" href="a00422.html#ab8b28a924b843eefd2a668687d291d44">Apache::Geode::Client::CacheableBuiltinArray&lt; TNative, TNativePtr, TManaged, TYPEID &gt;</a>
, <a class="el" href="a00418.html#a93998b074515d5609416e8a633e71333">Apache::Geode::Client::CacheableBuiltinKey&lt; TNative, TManaged, TYPEID &gt;</a>
, <a class="el" href="a00462.html#ad2444cf71a9a38173aceab2f04dd971b">Apache::Geode::Client::CacheableDate</a>
, <a class="el" href="a00466.html#a70b00e8aa0f34bbbbfb07aabf3c4b67a">Apache::Geode::Client::CacheableFileName</a>
, <a class="el" href="a00506.html#a76344b40a20a6ac6b207d71210bdc0c6">Apache::Geode::Client::CacheableObject</a>
, <a class="el" href="a00514.html#acb81de701828d0a509b62c2df1cb9be4">Apache::Geode::Client::CacheableObjectXml</a>
, <a class="el" href="a00522.html#a5bbf6e7b40afcdb5f34d7c26fb14b5ca">Apache::Geode::Client::CacheableString</a>
, <a class="el" href="a00526.html#a778f034e0dcec70fa8f9f18ba1546ee4">Apache::Geode::Client::CacheableStringArray</a>
, <a class="el" href="a00966.html#a1a48c98a5079dfe56d0c6434dc9c9cd0">Apache::Geode::Client::IPdxInstance</a>
, <a class="el" href="a01022.html#a335290fd15fd41d39bc73a7ca10d19bd">Apache::Geode::Client::ISerializable</a>
, <a class="el" href="a00406.html#a3d05e2243bcdfd0e4a3ad715bc6ccc07">Apache::Geode::Client::Properties&lt; TPropKey, TPropValue &gt;</a>
, <a class="el" href="a01114.html#aab399122dadac5f60090908915eb174e">Apache::Geode::Client::Serializable</a>
</li>
<li>TransactionDataNodeHasDepartedException()
: <a class="el" href="a00866.html#ad4e7c5a9a2ea766a1576bc2ad6085e34">Apache::Geode::Client::TransactionDataNodeHasDepartedException</a>
</li>
<li>TransactionDataRebalancedException()
: <a class="el" href="a00870.html#ad8623c1b13556f0e75a888217f18499a">Apache::Geode::Client::TransactionDataRebalancedException</a>
</li>
<li>TryResume()
: <a class="el" href="a00550.html#a89403acd3ccff28ec2fc46598f479a0f">Apache::Geode::Client::CacheTransactionManager</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at
     http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<HR><address style="align: right;"><small>Apache Geode C++ Cache .NET API Documentation</small></address>
