<!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: Apache::Geode::Client::ISerializable 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="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('a01022.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="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#properties">Properties</a>  </div>
  <div class="headertitle">
<div class="title">Apache::Geode::Client::ISerializable Interface Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>This interface class is the superclass of all user objects in the cache that can be serialized.  
 <a href="a01022.html#details">More...</a></p>

<p>Inherited by <a class="el" href="a00514.html">Apache::Geode::Client::CacheableObjectXml</a>, <a class="el" href="a00902.html">Apache::Geode::Client::ICacheableKey</a>, <a class="el" href="a00934.html">Apache::Geode::Client::IDataSerializable</a>, Apache::Geode::Client::IDataSerializableFixedId, Apache::Geode::Client::IDataSerializableInternal, Apache::Geode::Client::IDataSerializablePrimitive, <a class="el" href="a01114.html">Apache::Geode::Client::Serializable</a>, and <a class="el" href="a01142.html">Apache::Geode::Client::UserFunctionExecutionException</a>.</p>
<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:a335290fd15fd41d39bc73a7ca10d19bd"><td class="memItemLeft" align="right" valign="top">String ^&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01022.html#a335290fd15fd41d39bc73a7ca10d19bd">ToString</a> ()</td></tr>
<tr class="memdesc:a335290fd15fd41d39bc73a7ca10d19bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a string representation of the object.  <a href="#a335290fd15fd41d39bc73a7ca10d19bd">More...</a><br /></td></tr>
<tr class="separator:a335290fd15fd41d39bc73a7ca10d19bd"><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:a961265733e9d83372f8facb7d88b4c78"><td class="memItemLeft" align="right" valign="top">System::UInt64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01022.html#a961265733e9d83372f8facb7d88b4c78">ObjectSize</a><code> [get]</code></td></tr>
<tr class="memdesc:a961265733e9d83372f8facb7d88b4c78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of this object in bytes.  <a href="#a961265733e9d83372f8facb7d88b4c78">More...</a><br /></td></tr>
<tr class="separator:a961265733e9d83372f8facb7d88b4c78"><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>This interface class is the superclass of all user objects in the cache that can be serialized. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a335290fd15fd41d39bc73a7ca10d19bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a335290fd15fd41d39bc73a7ca10d19bd">&#9670;&nbsp;</a></span>ToString()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">String ^ Apache::Geode::Client::ISerializable::ToString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return a string representation of the object. </p>

<p>Implemented in <a class="el" href="a00422.html#ab8b28a924b843eefd2a668687d291d44">Apache::Geode::Client::CacheableBuiltinArray&lt; TNative, TNativePtr, TManaged, TYPEID &gt;</a>, <a class="el" href="a00422.html#ab8b28a924b843eefd2a668687d291d44">Apache::Geode::Client::CacheableBuiltinArray&lt; NativeArray, NativeArray, ManagedType, DsCode &gt;</a>, <a class="el" href="a00406.html#a3d05e2243bcdfd0e4a3ad715bc6ccc07">Apache::Geode::Client::Properties&lt; TPropKey, TPropValue &gt;</a>, <a class="el" href="a00406.html#a3d05e2243bcdfd0e4a3ad715bc6ccc07">Apache::Geode::Client::Properties&lt; String^, String^&gt;</a>, <a class="el" href="a00462.html#ad2444cf71a9a38173aceab2f04dd971b">Apache::Geode::Client::CacheableDate</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="a01114.html#aab399122dadac5f60090908915eb174e">Apache::Geode::Client::Serializable</a>, <a class="el" href="a00514.html#acb81de701828d0a509b62c2df1cb9be4">Apache::Geode::Client::CacheableObjectXml</a>, <a class="el" href="a00506.html#a76344b40a20a6ac6b207d71210bdc0c6">Apache::Geode::Client::CacheableObject</a>, <a class="el" href="a00418.html#a93998b074515d5609416e8a633e71333">Apache::Geode::Client::CacheableBuiltinKey&lt; TNative, TManaged, TYPEID &gt;</a>, <a class="el" href="a00418.html#a93998b074515d5609416e8a633e71333">Apache::Geode::Client::CacheableBuiltinKey&lt; native::CacheableInt32, System::Int32, static_cast&lt; int8_t &gt;(DSCode::CacheableInt32)&gt;</a>, <a class="el" href="a00418.html#a93998b074515d5609416e8a633e71333">Apache::Geode::Client::CacheableBuiltinKey&lt; native::CacheableInt16, System::Int16, static_cast&lt; int8_t &gt;(DSCode::CacheableInt16)&gt;</a>, <a class="el" href="a00418.html#a93998b074515d5609416e8a633e71333">Apache::Geode::Client::CacheableBuiltinKey&lt; native::CacheableCharacter, Char, static_cast&lt; int8_t &gt;(DSCode::CacheableCharacter)&gt;</a>, <a class="el" href="a00418.html#a93998b074515d5609416e8a633e71333">Apache::Geode::Client::CacheableBuiltinKey&lt; native::CacheableFloat, Single, static_cast&lt; int8_t &gt;(DSCode::CacheableFloat)&gt;</a>, <a class="el" href="a00418.html#a93998b074515d5609416e8a633e71333">Apache::Geode::Client::CacheableBuiltinKey&lt; native::CacheableInt64, System::Int64, static_cast&lt; int8_t &gt;(DSCode::CacheableInt64)&gt;</a>, <a class="el" href="a00418.html#a93998b074515d5609416e8a633e71333">Apache::Geode::Client::CacheableBuiltinKey&lt; native::CacheableDouble, Double, static_cast&lt; int8_t &gt;(DSCode::CacheableDouble)&gt;</a>, <a class="el" href="a00418.html#a93998b074515d5609416e8a633e71333">Apache::Geode::Client::CacheableBuiltinKey&lt; native::CacheableByte, Byte, static_cast&lt; int8_t &gt;(DSCode::CacheableByte)&gt;</a>, <a class="el" href="a00418.html#a93998b074515d5609416e8a633e71333">Apache::Geode::Client::CacheableBuiltinKey&lt; native::CacheableBoolean, bool, static_cast&lt; int8_t &gt;(DSCode::CacheableBoolean)&gt;</a>, and <a class="el" href="a00466.html#a70b00e8aa0f34bbbbfb07aabf3c4b67a">Apache::Geode::Client::CacheableFileName</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">System:: UInt64 Apache::Geode::Client::ISerializable::ObjectSize</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>Get the size of this object in bytes. </p>
<p>This is only needed if you use the HeapLRU feature. </p>
<p>Note that you can simply return zero if you are not using the HeapLRU feature. </p>
<dl class="section return"><dt>Returns</dt><dd>the size of this object in bytes.</dd></dl>

</div>
</div>
</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>
