<!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 C++ Reference: apache::geode::client::Properties 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 C++ 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('a00799.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>  </div>
  <div class="headertitle">
<div class="title">apache::geode::client::Properties Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Contains a set of (key, value) pair properties with key being the name of the property; value, the value of the property.  
 <a href="a00799.html#details">More...</a></p>

<p>Inherits DataSerializablePrimitive.</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:a16381f8466a3934e3ff933a6a953fb97"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00799.html#a16381f8466a3934e3ff933a6a953fb97">addAll</a> (const std::shared_ptr&lt; <a class="el" href="a00799.html">Properties</a> &gt; &amp;other)</td></tr>
<tr class="memdesc:a16381f8466a3934e3ff933a6a953fb97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add the contents of other to this instance, replacing any existing values with those from other.  <a href="#a16381f8466a3934e3ff933a6a953fb97">More...</a><br /></td></tr>
<tr class="separator:a16381f8466a3934e3ff933a6a953fb97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0691cc55045e8f31807c487531923f0"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="a00359.html">CacheableString</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00799.html#ae0691cc55045e8f31807c487531923f0">find</a> (const std::string &amp;key)</td></tr>
<tr class="memdesc:ae0691cc55045e8f31807c487531923f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the value for the given key, or nullptr if not found.  <a href="#ae0691cc55045e8f31807c487531923f0">More...</a><br /></td></tr>
<tr class="separator:ae0691cc55045e8f31807c487531923f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad84faa286f88c0493205a0ad43b3da1d"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="a00855.html">Cacheable</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00799.html#ad84faa286f88c0493205a0ad43b3da1d">find</a> (const std::shared_ptr&lt; <a class="el" href="a00339.html">CacheableKey</a> &gt; &amp;key)</td></tr>
<tr class="memdesc:ad84faa286f88c0493205a0ad43b3da1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the value for the given <code><a class="el" href="a00339.html" title="Represents a cacheable key.">CacheableKey</a></code>, or nullptr if not found.  <a href="#ad84faa286f88c0493205a0ad43b3da1d">More...</a><br /></td></tr>
<tr class="separator:ad84faa286f88c0493205a0ad43b3da1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9199d1a4b0d838ad092f75818cfe56c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00799.html#ac9199d1a4b0d838ad092f75818cfe56c">foreach</a> (Visitor &amp;visitor) const</td></tr>
<tr class="memdesc:ac9199d1a4b0d838ad092f75818cfe56c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the Visitor's <code>visit( const char* key, const char* value )</code> method for each entry in the collection.  <a href="#ac9199d1a4b0d838ad092f75818cfe56c">More...</a><br /></td></tr>
<tr class="separator:ac9199d1a4b0d838ad092f75818cfe56c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d4d569b61582859db3d21a7f6bd41c8"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00799.html#a2d4d569b61582859db3d21a7f6bd41c8">getSize</a> () const</td></tr>
<tr class="memdesc:a2d4d569b61582859db3d21a7f6bd41c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of entries in the collection.  <a href="#a2d4d569b61582859db3d21a7f6bd41c8">More...</a><br /></td></tr>
<tr class="separator:a2d4d569b61582859db3d21a7f6bd41c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a236cd79bd5ac2c51a3ef4107f1d8d668"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00799.html#a236cd79bd5ac2c51a3ef4107f1d8d668">insert</a> (std::string key, std::string value)</td></tr>
<tr class="memdesc:a236cd79bd5ac2c51a3ef4107f1d8d668"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add or update the string value for key.  <a href="#a236cd79bd5ac2c51a3ef4107f1d8d668">More...</a><br /></td></tr>
<tr class="separator:a236cd79bd5ac2c51a3ef4107f1d8d668"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb49ee01207c64a3d51f88221b3e80b1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00799.html#adb49ee01207c64a3d51f88221b3e80b1">insert</a> (std::string key, const int value)</td></tr>
<tr class="memdesc:adb49ee01207c64a3d51f88221b3e80b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add or update the int value for key.  <a href="#adb49ee01207c64a3d51f88221b3e80b1">More...</a><br /></td></tr>
<tr class="separator:adb49ee01207c64a3d51f88221b3e80b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf83e86989382a1ad014a2fd688e031a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00799.html#aaf83e86989382a1ad014a2fd688e031a">insert</a> (const std::shared_ptr&lt; <a class="el" href="a00339.html">CacheableKey</a> &gt; &amp;key, const std::shared_ptr&lt; <a class="el" href="a00855.html">Cacheable</a> &gt; &amp;value)</td></tr>
<tr class="memdesc:aaf83e86989382a1ad014a2fd688e031a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add or update Cacheable value for <a class="el" href="a00339.html" title="Represents a cacheable key.">CacheableKey</a>.  <a href="#aaf83e86989382a1ad014a2fd688e031a">More...</a><br /></td></tr>
<tr class="separator:aaf83e86989382a1ad014a2fd688e031a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ecc905e38151a951b29d046b3ddf672"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00799.html#a7ecc905e38151a951b29d046b3ddf672">load</a> (const std::string &amp;fileName)</td></tr>
<tr class="memdesc:a7ecc905e38151a951b29d046b3ddf672"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read property values from a file, overriding what is currently in the properties object.  <a href="#a7ecc905e38151a951b29d046b3ddf672">More...</a><br /></td></tr>
<tr class="separator:a7ecc905e38151a951b29d046b3ddf672"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25f70f7f60292a59e7d2e3d77d051a6e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00799.html#a25f70f7f60292a59e7d2e3d77d051a6e">remove</a> (const std::string &amp;key)</td></tr>
<tr class="memdesc:a25f70f7f60292a59e7d2e3d77d051a6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove the key from the collection.  <a href="#a25f70f7f60292a59e7d2e3d77d051a6e">More...</a><br /></td></tr>
<tr class="separator:a25f70f7f60292a59e7d2e3d77d051a6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad97b8efdbdecfdb5cde21bce435d3689"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00799.html#ad97b8efdbdecfdb5cde21bce435d3689">remove</a> (const std::shared_ptr&lt; <a class="el" href="a00339.html">CacheableKey</a> &gt; &amp;key)</td></tr>
<tr class="memdesc:ad97b8efdbdecfdb5cde21bce435d3689"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove the <code><a class="el" href="a00339.html" title="Represents a cacheable key.">CacheableKey</a></code> from the collection.  <a href="#ad97b8efdbdecfdb5cde21bce435d3689">More...</a><br /></td></tr>
<tr class="separator:ad97b8efdbdecfdb5cde21bce435d3689"><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:af12b14402c52a0aafcabbf9b1861806e"><td class="memItemLeft" align="right" valign="top">static std::shared_ptr&lt; <a class="el" href="a00799.html">Properties</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00799.html#af12b14402c52a0aafcabbf9b1861806e">create</a> ()</td></tr>
<tr class="memdesc:af12b14402c52a0aafcabbf9b1861806e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factory method, returns an empty collection.  <a href="#af12b14402c52a0aafcabbf9b1861806e">More...</a><br /></td></tr>
<tr class="separator:af12b14402c52a0aafcabbf9b1861806e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2aaeaa6463f69918e482212c913d244"><td class="memItemLeft" align="right" valign="top">static std::shared_ptr&lt; <a class="el" href="a00855.html">Serializable</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00799.html#ab2aaeaa6463f69918e482212c913d244">createDeserializable</a> ()</td></tr>
<tr class="memdesc:ab2aaeaa6463f69918e482212c913d244"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an empty instance for deserialization.  <a href="#ab2aaeaa6463f69918e482212c913d244">More...</a><br /></td></tr>
<tr class="separator:ab2aaeaa6463f69918e482212c913d244"><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>Contains a set of (key, value) pair properties with key being the name of the property; value, the value of the property. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a16381f8466a3934e3ff933a6a953fb97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16381f8466a3934e3ff933a6a953fb97">&#9670;&nbsp;</a></span>addAll()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void apache::geode::client::Properties::addAll </td>
          <td>(</td>
          <td class="paramtype">const std::shared_ptr&lt; <a class="el" href="a00799.html">Properties</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add the contents of other to this instance, replacing any existing values with those from other. </p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static std::shared_ptr&lt;<a class="el" href="a00799.html">Properties</a>&gt; apache::geode::client::Properties::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">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Factory method, returns an empty collection. </p>

</div>
</div>
<a id="ab2aaeaa6463f69918e482212c913d244"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab2aaeaa6463f69918e482212c913d244">&#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 std::shared_ptr&lt;<a class="el" href="a00855.html">Serializable</a>&gt; apache::geode::client::Properties::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">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return an empty instance for deserialization. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt;<a class="el" href="a00359.html">CacheableString</a>&gt; apache::geode::client::Properties::find </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return the value for the given key, or nullptr if not found. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="a00567.html" title="Thrown when a null argument is provided to a method where it is expected to be non-null.">NullPointerException</a></td><td>if the key is null </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt;<a class="el" href="a00855.html">Cacheable</a>&gt; apache::geode::client::Properties::find </td>
          <td>(</td>
          <td class="paramtype">const std::shared_ptr&lt; <a class="el" href="a00339.html">CacheableKey</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return the value for the given <code><a class="el" href="a00339.html" title="Represents a cacheable key.">CacheableKey</a></code>, or nullptr if not found. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="a00567.html" title="Thrown when a null argument is provided to a method where it is expected to be non-null.">NullPointerException</a></td><td>if the key is nullptr </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void apache::geode::client::Properties::foreach </td>
          <td>(</td>
          <td class="paramtype">Visitor &amp;&#160;</td>
          <td class="paramname"><em>visitor</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Execute the Visitor's <code>visit( const char* key, const char* value )</code> method for each entry in the collection. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t apache::geode::client::Properties::getSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return the number of entries in the collection. </p>

</div>
</div>
<a id="a236cd79bd5ac2c51a3ef4107f1d8d668"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a236cd79bd5ac2c51a3ef4107f1d8d668">&#9670;&nbsp;</a></span>insert() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void apache::geode::client::Properties::insert </td>
          <td>(</td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add or update the string value for key. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="a00567.html" title="Thrown when a null argument is provided to a method where it is expected to be non-null.">NullPointerException</a></td><td>if the key is null </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void apache::geode::client::Properties::insert </td>
          <td>(</td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add or update the int value for key. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="a00567.html" title="Thrown when a null argument is provided to a method where it is expected to be non-null.">NullPointerException</a></td><td>if the key is null </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void apache::geode::client::Properties::insert </td>
          <td>(</td>
          <td class="paramtype">const std::shared_ptr&lt; <a class="el" href="a00339.html">CacheableKey</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::shared_ptr&lt; <a class="el" href="a00855.html">Cacheable</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add or update Cacheable value for <a class="el" href="a00339.html" title="Represents a cacheable key.">CacheableKey</a>. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="a00567.html" title="Thrown when a null argument is provided to a method where it is expected to be non-null.">NullPointerException</a></td><td>if the key is nullptr </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void apache::geode::client::Properties::load </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>fileName</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read property values from a file, overriding what is currently in the properties object. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void apache::geode::client::Properties::remove </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remove the key from the collection. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="a00567.html" title="Thrown when a null argument is provided to a method where it is expected to be non-null.">NullPointerException</a></td><td>if the key is null </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void apache::geode::client::Properties::remove </td>
          <td>(</td>
          <td class="paramtype">const std::shared_ptr&lt; <a class="el" href="a00339.html">CacheableKey</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remove the <code><a class="el" href="a00339.html" title="Represents a cacheable key.">CacheableKey</a></code> from the collection. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="a00567.html" title="Thrown when a null argument is provided to a method where it is expected to be non-null.">NullPointerException</a></td><td>if the key is nullptr </td></tr>
  </table>
  </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 API Documentation</small></address>
