<!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::RegionService 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('a00839.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>  </div>
  <div class="headertitle">
<div class="title">apache::geode::client::RegionService Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>A <a class="el" href="a00839.html" title="A RegionService provides access to existing regions that exist in a Geode cache.">RegionService</a> provides access to existing <a class="el" href="a00815.html">regions</a> that exist in a <a class="el" href="a00743.html">Geode cache</a>.  
 <a href="a00839.html#details">More...</a></p>

<p>Inherited by <a class="el" href="a00279.html">apache::geode::client::AuthenticatedView</a>, and <a class="el" href="a00743.html">apache::geode::client::GeodeCache</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:ad491b3447896e480666fdae6d9c96ab9"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00839.html#ad491b3447896e480666fdae6d9c96ab9">close</a> ()=0</td></tr>
<tr class="memdesc:ad491b3447896e480666fdae6d9c96ab9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Terminates this object cache and releases all the local resources.  <a href="#ad491b3447896e480666fdae6d9c96ab9">More...</a><br /></td></tr>
<tr class="separator:ad491b3447896e480666fdae6d9c96ab9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0dcd1860f71f30172e4303f5d8439c4c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a00755.html">PdxInstanceFactory</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00839.html#a0dcd1860f71f30172e4303f5d8439c4c">createPdxInstanceFactory</a> (const std::string &amp;className) const =0</td></tr>
<tr class="memdesc:a0dcd1860f71f30172e4303f5d8439c4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a factory that can create a <a class="el" href="a00751.html">PdxInstance</a>.  <a href="#a0dcd1860f71f30172e4303f5d8439c4c">More...</a><br /></td></tr>
<tr class="separator:a0dcd1860f71f30172e4303f5d8439c4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a750c5523f7f9b2aab4b91993466164c9"><td class="memItemLeft" align="right" valign="top">virtual std::shared_ptr&lt; <a class="el" href="a00811.html">QueryService</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00839.html#a750c5523f7f9b2aab4b91993466164c9">getQueryService</a> ()=0</td></tr>
<tr class="memdesc:a750c5523f7f9b2aab4b91993466164c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the <a class="el" href="a00811.html" title="QueryService is the class obtained from a Cache.">QueryService</a> from which a new <a class="el" href="a00807.html" title="A Query is obtained from a QueryService which in turn is obtained from the Cache.">Query</a> can be obtained.  <a href="#a750c5523f7f9b2aab4b91993466164c9">More...</a><br /></td></tr>
<tr class="separator:a750c5523f7f9b2aab4b91993466164c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50370f5b4d144c8742baceb0eaa4cfe3"><td class="memItemLeft" align="right" valign="top">virtual std::shared_ptr&lt; <a class="el" href="a00815.html">Region</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00839.html#a50370f5b4d144c8742baceb0eaa4cfe3">getRegion</a> (const std::string &amp;name) const =0</td></tr>
<tr class="memdesc:a50370f5b4d144c8742baceb0eaa4cfe3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Look up a region with the name.  <a href="#a50370f5b4d144c8742baceb0eaa4cfe3">More...</a><br /></td></tr>
<tr class="separator:a50370f5b4d144c8742baceb0eaa4cfe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a9bb57c509648270a50abc5afea1dae"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00839.html#a0a9bb57c509648270a50abc5afea1dae">isClosed</a> () const =0</td></tr>
<tr class="memdesc:a0a9bb57c509648270a50abc5afea1dae"><td class="mdescLeft">&#160;</td><td class="mdescRight">public methods  <a href="#a0a9bb57c509648270a50abc5afea1dae">More...</a><br /></td></tr>
<tr class="separator:a0a9bb57c509648270a50abc5afea1dae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd245c4e15d2025a78c7fa7e8652529a"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; std::shared_ptr&lt; <a class="el" href="a00815.html">Region</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00839.html#acd245c4e15d2025a78c7fa7e8652529a">rootRegions</a> () const =0</td></tr>
<tr class="memdesc:acd245c4e15d2025a78c7fa7e8652529a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a set of root regions in the cache.  <a href="#acd245c4e15d2025a78c7fa7e8652529a">More...</a><br /></td></tr>
<tr class="separator:acd245c4e15d2025a78c7fa7e8652529a"><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 <a class="el" href="a00839.html" title="A RegionService provides access to existing regions that exist in a Geode cache.">RegionService</a> provides access to existing <a class="el" href="a00815.html">regions</a> that exist in a <a class="el" href="a00743.html">Geode cache</a>. </p>
<p>Regions can be obtained using <a class="el" href="a00839.html#a50370f5b4d144c8742baceb0eaa4cfe3">getRegion</a> and queried using <a class="el" href="a00839.html#a750c5523f7f9b2aab4b91993466164c9">getQueryService</a>. The service should be <a class="el" href="a00839.html#ad491b3447896e480666fdae6d9c96ab9">closed</a> to free up resources once it is no longer needed. Once it <a class="el" href="a00839.html#a0a9bb57c509648270a50abc5afea1dae">is closed</a> any attempt to use it or any {<a class="el" href="a00815.html">regions} obtained from it will cause a  CacheClosedException} to be thrown. </a> Instances of the interface are created using one of the following methods: </p><ul>
<li>
<a class="el" href="a00371.html#a3ee44932abdc64988aa065e4b390e0ff">CacheFactory#create()</a> creates a client instance of {<a class="el" href="a00287.html">}. </a> <a class="el" href="">Cache#createAuthenticatedView(Properties)</a> creates a client multiuser authenticated cache view. </li>
</ul>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ad491b3447896e480666fdae6d9c96ab9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad491b3447896e480666fdae6d9c96ab9">&#9670;&nbsp;</a></span>close()</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::RegionService::close </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Terminates this object cache and releases all the local resources. </p>
<p>After this cache is closed, any further method call on this cache or any region object will throw <code><a class="el" href="a00499.html" title="Thrown when an operation is attempted on a closed cache.">CacheClosedException</a></code>, unless otherwise noted. If <a class="el" href="a00839.html" title="A RegionService provides access to existing regions that exist in a Geode cache.">RegionService</a> is created from <a class="el" href="">Cache#createAuthenticatedView"</a>, then it clears user related security data. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">keepalive</td><td>whether to keep a durable CQ kept alive for this user. </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="a00499.html" title="Thrown when an operation is attempted on a closed cache.">CacheClosedException</a>,if</td><td>the cache is already closed. </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="a00287.html#a709c65fc2cd45f67ce3d6603df9bc7f1">apache::geode::client::Cache</a>, and <a class="el" href="a00279.html#adb3ba6b5cacf6acbc6ba2d4bbcbdfcb3">apache::geode::client::AuthenticatedView</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="a00755.html">PdxInstanceFactory</a> apache::geode::client::RegionService::createPdxInstanceFactory </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>className</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a factory that can create a <a class="el" href="a00751.html">PdxInstance</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">className</td><td>the fully qualified class name that the <a class="el" href="a00751.html" title="PdxInstance provides run time access to the fields of a PDX without deserializing the PDX.">PdxInstance</a> will become when it is fully deserialized. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the factory </dd></dl>

<p>Implemented in <a class="el" href="a00287.html#acdb522f5ea28fbff56544a004be7946c">apache::geode::client::Cache</a>, and <a class="el" href="a00279.html#a5474bd404826e32971288a2f098272d2">apache::geode::client::AuthenticatedView</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::shared_ptr&lt;<a class="el" href="a00811.html">QueryService</a>&gt; apache::geode::client::RegionService::getQueryService </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets the <a class="el" href="a00811.html" title="QueryService is the class obtained from a Cache.">QueryService</a> from which a new <a class="el" href="a00807.html" title="A Query is obtained from a QueryService which in turn is obtained from the Cache.">Query</a> can be obtained. </p>
<dl class="section return"><dt>Returns</dt><dd>A smart pointer to the <a class="el" href="a00811.html" title="QueryService is the class obtained from a Cache.">QueryService</a>. </dd></dl>

<p>Implemented in <a class="el" href="a00287.html#a2e58689fed2e5a2a2c99085e8b3034db">apache::geode::client::Cache</a>, and <a class="el" href="a00279.html#afdde5da469a3313a2ed2dc8a6f7f9e71">apache::geode::client::AuthenticatedView</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::shared_ptr&lt;<a class="el" href="a00815.html">Region</a>&gt; apache::geode::client::RegionService::getRegion </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Look up a region with the name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>the region's name, such as <code>root</code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>region, or nullptr if no such region exists. </dd></dl>

<p>Implemented in <a class="el" href="a00287.html#af80a5d73de38233b22e409fe55c51a00">apache::geode::client::Cache</a>, and <a class="el" href="a00279.html#a7620efbbc3004681ec6622a5fa3c926c">apache::geode::client::AuthenticatedView</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool apache::geode::client::RegionService::isClosed </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>public methods </p>
<p>Indicates if this cache has been closed. After a new cache object is created, this method returns false; After the close is called on this cache object, this method returns true.</p>
<dl class="section return"><dt>Returns</dt><dd>true, if this cache is closed; false, otherwise </dd></dl>

<p>Implemented in <a class="el" href="a00287.html#a989d7fce829d1d12e7da49052445898d">apache::geode::client::Cache</a>, and <a class="el" href="a00279.html#ae11f988865fe1074f84b9932f0e7c78d">apache::geode::client::AuthenticatedView</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::vector&lt;std::shared_ptr&lt;<a class="el" href="a00815.html">Region</a>&gt; &gt; apache::geode::client::RegionService::rootRegions </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a set of root regions in the cache. </p>
<p>This set is a snapshot and is not backed by the <a class="el" href="a00287.html" title="Caches are obtained from the create method on the CacheFactory#create class.">Cache</a>. The vector passed in is cleared and the regions are added to it.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">regions</td><td>the returned set of regions </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="a00287.html#a7a2a54c73beae53d3d3fd9809432ee3b">apache::geode::client::Cache</a>, and <a class="el" href="a00279.html#ae96bdb4d42e7c2072ed667236cd0b35b">apache::geode::client::AuthenticatedView</a>.</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 API Documentation</small></address>
