<!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::Serializable 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">
/* @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('a01114.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::Serializable Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>This class wraps the native C++ <code>native::Serializable</code> objects as managed <a class="el" href="a01022.html" title="This interface class is the superclass of all user objects in the cache that can be serialized.">ISerializable</a> objects.  
 <a href="a01114.html#details">More...</a></p>

<p>Inherits <a class="el" href="a01022.html">Apache::Geode::Client::ISerializable</a>.</p>

<p>Inherited by <a class="el" href="a00498.html">Apache::Geode::Client::CacheableKey</a>, <a class="el" href="a00474.html">Apache::Geode::Client::Internal::CacheableHashSetType&lt; TYPEID, HSTYPE &gt;</a>, <a class="el" href="a01122.html">Apache::Geode::Client::Struct</a>, <a class="el" href="a00474.html">Apache::Geode::Client::Internal::CacheableHashSetType&lt; static_cast&lt; int8_t &gt;(native::private ::DSCode::CacheableHashSet), apache::geode::client::CacheableHashSet &gt;</a>, and <a class="el" href="a00474.html">Apache::Geode::Client::Internal::CacheableHashSetType&lt; static_cast&lt; int8_t &gt;(native::private ::DSCode::CacheableLinkedHashSet), apache::geode::client::CacheableLinkedHashSet &gt;</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:aab399122dadac5f60090908915eb174e"><td class="memItemLeft" align="right" valign="top">virtual String ^&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01114.html#aab399122dadac5f60090908915eb174e">ToString</a> () override</td></tr>
<tr class="memdesc:aab399122dadac5f60090908915eb174e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a string representation of the object.  <a href="#aab399122dadac5f60090908915eb174e">More...</a><br /></td></tr>
<tr class="separator:aab399122dadac5f60090908915eb174e"><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:af073822a47dac5d41afb64df6ad52fee"><td class="memItemLeft" align="right" valign="top">virtual System::UInt64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01114.html#af073822a47dac5d41afb64df6ad52fee">ObjectSize</a><code> [get]</code></td></tr>
<tr class="memdesc:af073822a47dac5d41afb64df6ad52fee"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the size of this object in bytes  <a href="#af073822a47dac5d41afb64df6ad52fee">More...</a><br /></td></tr>
<tr class="separator:af073822a47dac5d41afb64df6ad52fee"><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 class wraps the native C++ <code>native::Serializable</code> objects as managed <a class="el" href="a01022.html" title="This interface class is the superclass of all user objects in the cache that can be serialized.">ISerializable</a> objects. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="aab399122dadac5f60090908915eb174e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab399122dadac5f60090908915eb174e">&#9670;&nbsp;</a></span>ToString()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual String ^ Apache::Geode::Client::Serializable::ToString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return a string representation of the object. </p>
<p>It simply returns the string representation of the underlying native object by calling its <code>toString()</code> function. </p>

<p>Implements <a class="el" href="a01022.html#a335290fd15fd41d39bc73a7ca10d19bd">Apache::Geode::Client::ISerializable</a>.</p>

<p>Reimplemented in <a class="el" href="a00522.html#a5bbf6e7b40afcdb5f34d7c26fb14b5ca">Apache::Geode::Client::CacheableString</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>, and <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>.</p>

</div>
</div>
<h2 class="groupheader">Property Documentation</h2>
<a id="af073822a47dac5d41afb64df6ad52fee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af073822a47dac5d41afb64df6ad52fee">&#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">virtual System:: UInt64 Apache::Geode::Client::Serializable::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>return the size of this object in bytes </p>

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