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

<p>A mutable <code><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></code> vector wrapper that can serve as a distributable object for caching.  
 <a href="a00414.html#details">More...</a></p>

<p>Inherits <a class="el" href="a00534.html">Apache::Geode::Client::CacheableVector</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:a60e02684ab426ec8e18c0d6aaf0b1517"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00414.html#a60e02684ab426ec8e18c0d6aaf0b1517">CacheableArrayList</a> (System::Collections::IList^ list)</td></tr>
<tr class="memdesc:a60e02684ab426ec8e18c0d6aaf0b1517"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new empty instance.  <a href="#a60e02684ab426ec8e18c0d6aaf0b1517">More...</a><br /></td></tr>
<tr class="separator:a60e02684ab426ec8e18c0d6aaf0b1517"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac55b1500e61fa094e846b66bfe12313e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00534.html#ac55b1500e61fa094e846b66bfe12313e">FromData</a> (<a class="el" href="a00602.html">DataInput</a>^ input)</td></tr>
<tr class="memdesc:ac55b1500e61fa094e846b66bfe12313e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deserialize this object, typical implementation should return the 'this' pointer.  <a href="#ac55b1500e61fa094e846b66bfe12313e">More...</a><br /></td></tr>
<tr class="separator:ac55b1500e61fa094e846b66bfe12313e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa160b4bf5fe65c679dda54f87a439e77"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00534.html#aa160b4bf5fe65c679dda54f87a439e77">ToData</a> (<a class="el" href="a00606.html">DataOutput</a>^ output)</td></tr>
<tr class="memdesc:aa160b4bf5fe65c679dda54f87a439e77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serializes this object.  <a href="#aa160b4bf5fe65c679dda54f87a439e77">More...</a><br /></td></tr>
<tr class="separator:aa160b4bf5fe65c679dda54f87a439e77"><td class="memSeparator" colspan="2">&#160;</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="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:aa94413d8a833ea1d479db6c459bebd7f"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00414.html">CacheableArrayList</a> ^&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00414.html#aa94413d8a833ea1d479db6c459bebd7f">Create</a> ()</td></tr>
<tr class="memdesc:aa94413d8a833ea1d479db6c459bebd7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static function to create a new empty instance.  <a href="#aa94413d8a833ea1d479db6c459bebd7f">More...</a><br /></td></tr>
<tr class="separator:aa94413d8a833ea1d479db6c459bebd7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51a0b4c59ef2b6baccd59ac7cc9c9dc1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00414.html">CacheableArrayList</a> ^&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00414.html#a51a0b4c59ef2b6baccd59ac7cc9c9dc1">Create</a> (System::Collections::IList^ list)</td></tr>
<tr class="memdesc:a51a0b4c59ef2b6baccd59ac7cc9c9dc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static function to create a new empty instance.  <a href="#a51a0b4c59ef2b6baccd59ac7cc9c9dc1">More...</a><br /></td></tr>
<tr class="separator:a51a0b4c59ef2b6baccd59ac7cc9c9dc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4748e174eb080beb079dfbe2bddc0201"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a01022.html">ISerializable</a> ^&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00414.html#a4748e174eb080beb079dfbe2bddc0201">CreateDeserializable</a> ()</td></tr>
<tr class="memdesc:a4748e174eb080beb079dfbe2bddc0201"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factory function to register this class.  <a href="#a4748e174eb080beb079dfbe2bddc0201">More...</a><br /></td></tr>
<tr class="separator:a4748e174eb080beb079dfbe2bddc0201"><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:a549844bb536ca55ee4c0839d7049ecb6"><td class="memItemLeft" align="right" valign="top">int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00414.html#a549844bb536ca55ee4c0839d7049ecb6">DsCode</a><code> [get]</code></td></tr>
<tr class="memdesc:a549844bb536ca55ee4c0839d7049ecb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the classId of the instance being serialized.  <a href="#a549844bb536ca55ee4c0839d7049ecb6">More...</a><br /></td></tr>
<tr class="separator:a549844bb536ca55ee4c0839d7049ecb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac492c569d5d3384269fe63562d729e4"><td class="memItemLeft" align="right" valign="top">virtual System::UInt64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00534.html#aac492c569d5d3384269fe63562d729e4">ObjectSize</a><code> [get]</code></td></tr>
<tr class="memdesc:aac492c569d5d3384269fe63562d729e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the size of this object in bytes  <a href="#aac492c569d5d3384269fe63562d729e4">More...</a><br /></td></tr>
<tr class="separator:aac492c569d5d3384269fe63562d729e4"><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>A mutable <code><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></code> vector wrapper that can serve as a distributable object for caching. </p>
<p>This class extends .NET generic <code>List</code> class. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a60e02684ab426ec8e18c0d6aaf0b1517"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a60e02684ab426ec8e18c0d6aaf0b1517">&#9670;&nbsp;</a></span>CacheableArrayList()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Apache::Geode::Client::CacheableArrayList::CacheableArrayList </td>
          <td>(</td>
          <td class="paramtype">System::Collections::IList^&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Allocates a new empty instance. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aa94413d8a833ea1d479db6c459bebd7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa94413d8a833ea1d479db6c459bebd7f">&#9670;&nbsp;</a></span>Create() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="a00414.html">CacheableArrayList</a> ^ Apache::Geode::Client::CacheableArrayList::Create </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Static function to create a new empty instance. </p>

</div>
</div>
<a id="a51a0b4c59ef2b6baccd59ac7cc9c9dc1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51a0b4c59ef2b6baccd59ac7cc9c9dc1">&#9670;&nbsp;</a></span>Create() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="a00414.html">CacheableArrayList</a> ^ Apache::Geode::Client::CacheableArrayList::Create </td>
          <td>(</td>
          <td class="paramtype">System::Collections::IList^&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Static function to create a new empty instance. </p>

</div>
</div>
<a id="a4748e174eb080beb079dfbe2bddc0201"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4748e174eb080beb079dfbe2bddc0201">&#9670;&nbsp;</a></span>CreateDeserializable()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="a01022.html">ISerializable</a> ^ Apache::Geode::Client::CacheableArrayList::CreateDeserializable </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Factory function to register this class. </p>

</div>
</div>
<a id="ac55b1500e61fa094e846b66bfe12313e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac55b1500e61fa094e846b66bfe12313e">&#9670;&nbsp;</a></span>FromData()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void Apache::Geode::Client::CacheableVector::FromData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00602.html">DataInput</a>^&#160;</td>
          <td class="paramname"><em>input</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Deserialize this object, typical implementation should return the 'this' pointer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">input</td><td>the <a class="el" href="a00602.html" title="Provides operations for reading primitive data values, byte arrays, strings, ISerializable objects fr...">DataInput</a> stream to use for reading the object data </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the deserialized object</dd></dl>

</div>
</div>
<a id="aa160b4bf5fe65c679dda54f87a439e77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa160b4bf5fe65c679dda54f87a439e77">&#9670;&nbsp;</a></span>ToData()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void Apache::Geode::Client::CacheableVector::ToData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00606.html">DataOutput</a>^&#160;</td>
          <td class="paramname"><em>output</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Serializes this object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">output</td><td>the <a class="el" href="a00606.html" title="Provides operations for writing primitive data values, and user-defined objects implementing ISeriali...">DataOutput</a> object to use for serializing the object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<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="mlabels">
  <tr>
  <td class="mlabels-left">
      <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>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </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="a549844bb536ca55ee4c0839d7049ecb6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a549844bb536ca55ee4c0839d7049ecb6">&#9670;&nbsp;</a></span>DsCode</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int8_t Apache::Geode::Client::CacheableArrayList::DsCode</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>Returns the classId of the instance being serialized. </p>
<p>This is used by deserialization to determine what instance type to create and deserialize into. </p>
<dl class="section return"><dt>Returns</dt><dd>the classId</dd></dl>

</div>
</div>
<a id="aac492c569d5d3384269fe63562d729e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac492c569d5d3384269fe63562d729e4">&#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::CacheableVector::ObjectSize</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span><span class="mlabel">inherited</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>
