blob: 10dd8770c9914f2364682a4ea223becfdbb28e58 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.13) on Tue Feb 08 12:40:05 CST 2022 -->
<title>GCloudSessionDataStore (Eclipse Jetty API Doc - v10.0.8)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2022-02-08">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GCloudSessionDataStore (Eclipse Jetty API Doc - v10.0.8)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/GCloudSessionDataStore.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.jetty.gcloud.session</a></div>
<h2 title="Class GCloudSessionDataStore" class="title">Class GCloudSessionDataStore</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">org.eclipse.jetty.util.component.AbstractLifeCycle</a></li>
<li>
<ul class="inheritance">
<li><a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">org.eclipse.jetty.util.component.ContainerLifeCycle</a></li>
<li>
<ul class="inheritance">
<li><a href="../../server/session/AbstractSessionDataStore.html" title="class in org.eclipse.jetty.server.session">org.eclipse.jetty.server.session.AbstractSessionDataStore</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.jetty.gcloud.session.GCloudSessionDataStore</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../../server/session/SessionDataMap.html" title="interface in org.eclipse.jetty.server.session">SessionDataMap</a></code>, <code><a href="../../server/session/SessionDataStore.html" title="interface in org.eclipse.jetty.server.session">SessionDataStore</a></code>, <code><a href="../../util/component/Container.html" title="interface in org.eclipse.jetty.util.component">Container</a></code>, <code><a href="../../util/component/Destroyable.html" title="interface in org.eclipse.jetty.util.component">Destroyable</a></code>, <code><a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></code>, <code><a href="../../util/component/Dumpable.DumpableContainer.html" title="interface in org.eclipse.jetty.util.component">Dumpable.DumpableContainer</a></code>, <code><a href="../../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></code></dd>
</dl>
<hr>
<pre><a href="../../util/annotation/ManagedObject.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedObject</a>
public class <span class="typeNameLabel">GCloudSessionDataStore</span>
extends <a href="../../server/session/AbstractSessionDataStore.html" title="class in org.eclipse.jetty.server.session">AbstractSessionDataStore</a></pre>
<div class="block">GCloudSessionDataStore</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="GCloudSessionDataStore.EntityDataModel.html" title="class in org.eclipse.jetty.gcloud.session">GCloudSessionDataStore.EntityDataModel</a></span></code></th>
<td class="colLast">
<div class="block">EntityDataModel
Names of type of Entity and Entity properties for sessions.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="GCloudSessionDataStore.ExpiryInfo.html" title="class in org.eclipse.jetty.gcloud.session">GCloudSessionDataStore.ExpiryInfo</a></span></code></th>
<td class="colLast">
<div class="block">ExpiryInfo
Information related to session expiry</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.AbstractLifeCycle">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../../util/component/AbstractLifeCycle.AbstractLifeCycleListener.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle.AbstractLifeCycleListener</a>, <a href="../../util/component/AbstractLifeCycle.StopException.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle.StopException</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.Container">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Container.html" title="interface in org.eclipse.jetty.util.component">Container</a></h3>
<code><a href="../../util/component/Container.InheritedListener.html" title="interface in org.eclipse.jetty.util.component">Container.InheritedListener</a>, <a href="../../util/component/Container.Listener.html" title="interface in org.eclipse.jetty.util.component">Container.Listener</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.Dumpable">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></h3>
<code><a href="../../util/component/Dumpable.DumpableContainer.html" title="interface in org.eclipse.jetty.util.component">Dumpable.DumpableContainer</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.LifeCycle">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></h3>
<code><a href="../../util/component/LifeCycle.Listener.html" title="interface in org.eclipse.jetty.util.component">LifeCycle.Listener</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_backoff">_backoff</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected com.google.cloud.datastore.Datastore</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_datastore">_datastore</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_dsProvided">_dsProvided</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_indexesPresent">_indexesPresent</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected com.google.cloud.datastore.KeyFactory</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_keyFactory">_keyFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_maxResults">_maxResults</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_maxRetries">_maxRetries</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="GCloudSessionDataStore.EntityDataModel.html" title="class in org.eclipse.jetty.gcloud.session">GCloudSessionDataStore.EntityDataModel</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_model">_model</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#_modelProvided">_modelProvided</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_BACKOFF_MS">DEFAULT_BACKOFF_MS</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_MAX_QUERY_RESULTS">DEFAULT_MAX_QUERY_RESULTS</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_MAX_RETRIES">DEFAULT_MAX_RETRIES</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_NAMESPACE">DEFAULT_NAMESPACE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.eclipse.jetty.server.session.AbstractSessionDataStore">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.eclipse.jetty.server.session.<a href="../../server/session/AbstractSessionDataStore.html" title="class in org.eclipse.jetty.server.session">AbstractSessionDataStore</a></h3>
<code><a href="../../server/session/AbstractSessionDataStore.html#_context">_context</a>, <a href="../../server/session/AbstractSessionDataStore.html#_gracePeriodSec">_gracePeriodSec</a>, <a href="../../server/session/AbstractSessionDataStore.html#_lastExpiryCheckTime">_lastExpiryCheckTime</a>, <a href="../../server/session/AbstractSessionDataStore.html#_lastOrphanSweepTime">_lastOrphanSweepTime</a>, <a href="../../server/session/AbstractSessionDataStore.html#_savePeriodSec">_savePeriodSec</a>, <a href="../../server/session/AbstractSessionDataStore.html#DEFAULT_GRACE_PERIOD_SEC">DEFAULT_GRACE_PERIOD_SEC</a>, <a href="../../server/session/AbstractSessionDataStore.html#DEFAULT_SAVE_PERIOD_SEC">DEFAULT_SAVE_PERIOD_SEC</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.eclipse.jetty.util.component.AbstractLifeCycle">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../../util/component/AbstractLifeCycle.html#FAILED">FAILED</a>, <a href="../../util/component/AbstractLifeCycle.html#STARTED">STARTED</a>, <a href="../../util/component/AbstractLifeCycle.html#STARTING">STARTING</a>, <a href="../../util/component/AbstractLifeCycle.html#STOPPED">STOPPED</a>, <a href="../../util/component/AbstractLifeCycle.html#STOPPING">STOPPING</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.eclipse.jetty.util.component.Dumpable">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></h3>
<code><a href="../../util/component/Dumpable.html#KEY">KEY</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">GCloudSessionDataStore</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkIndexes()">checkIndexes</a></span>()</code></th>
<td class="colLast">
<div class="block">Check to see if indexes are available, in which case
we can do more performant queries.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(java.lang.String)">delete</a></span>&#8203;(java.lang.String&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Delete session data</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.util.Set&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doCheckExpired(java.util.Set,long)">doCheckExpired</a></span>&#8203;(java.util.Set&lt;java.lang.String&gt;&nbsp;candidates,
long&nbsp;time)</code></th>
<td class="colLast">
<div class="block">Implemented by subclasses to resolve which sessions in this context
that are being managed by this node that should be expired.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doCleanOrphans(long)">doCleanOrphans</a></span>&#8203;(long&nbsp;timeLimit)</code></th>
<td class="colLast">
<div class="block">Implemented by subclasses to delete sessions for other contexts that
expired at or before the timeLimit.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doExists(java.lang.String)">doExists</a></span>&#8203;(java.lang.String&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Check if a session for the given id exists.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.util.Set&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doGetExpired(long)">doGetExpired</a></span>&#8203;(long&nbsp;time)</code></th>
<td class="colLast">
<div class="block">Implemented by subclasses to find sessions for this context in the store
that expired at or before the time limit and thus not being actively
managed by any node.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../server/session/SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doLoad(java.lang.String)">doLoad</a></span>&#8203;(java.lang.String&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Load the session from persistent store.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doStart()">doStart</a></span>()</code></th>
<td class="colLast">
<div class="block">Starts the managed lifecycle beans in the order they were added.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doStop()">doStop</a></span>()</code></th>
<td class="colLast">
<div class="block">Stops the managed lifecycle beans in the reverse order they were added.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doStore(java.lang.String,org.eclipse.jetty.server.session.SessionData,long)">doStore</a></span>&#8203;(java.lang.String&nbsp;id,
<a href="../../server/session/SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a>&nbsp;data,
long&nbsp;lastSaveTime)</code></th>
<td class="colLast">
<div class="block">Store the session data persistently.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected com.google.cloud.datastore.Entity</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entityFromSession(org.eclipse.jetty.server.session.SessionData,com.google.cloud.datastore.Key)">entityFromSession</a></span>&#8203;(<a href="../../server/session/SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a>&nbsp;session,
com.google.cloud.datastore.Key&nbsp;key)</code></th>
<td class="colLast">
<div class="block">Generate a gcloud datastore Entity from SessionData</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBackoffMs()">getBackoffMs</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="GCloudSessionDataStore.EntityDataModel.html" title="class in org.eclipse.jetty.gcloud.session">GCloudSessionDataStore.EntityDataModel</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityDataModel()">getEntityDataModel</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHost()">getHost</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxResults()">getMaxResults</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxRetries()">getMaxRetries</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNamespace()">getNamespace</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProjectId()">getProjectId</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isExpired(long)">isExpired</a></span>&#8203;(long&nbsp;timestamp)</code></th>
<td class="colLast">
<div class="block">Check to see if the given time is in the past.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isPassivating()">isPassivating</a></span>()</code></th>
<td class="colLast">
<div class="block">True if this type of datastore will passivate session objects</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>protected com.google.cloud.datastore.Key</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#makeKey(java.lang.String,java.lang.String,java.lang.String)">makeKey</a></span>&#8203;(java.lang.String&nbsp;id,
java.lang.String&nbsp;canonicalContextPath,
java.lang.String&nbsp;canonicalVHost)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>protected com.google.cloud.datastore.Key</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#makeKey(java.lang.String,org.eclipse.jetty.server.session.SessionContext)">makeKey</a></span>&#8203;(java.lang.String&nbsp;id,
<a href="../../server/session/SessionContext.html" title="class in org.eclipse.jetty.server.session">SessionContext</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Make a unique key for this session.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>protected java.util.Set&lt;<a href="GCloudSessionDataStore.ExpiryInfo.html" title="class in org.eclipse.jetty.gcloud.session">GCloudSessionDataStore.ExpiryInfo</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#queryExpiryByEntity()">queryExpiryByEntity</a></span>()</code></th>
<td class="colLast">
<div class="block">A less efficient query to find sessions whose expiry time has passed:
retrieves the whole Entity.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>protected java.util.Set&lt;<a href="GCloudSessionDataStore.ExpiryInfo.html" title="class in org.eclipse.jetty.gcloud.session">GCloudSessionDataStore.ExpiryInfo</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#queryExpiryByEntity(long)">queryExpiryByEntity</a></span>&#8203;(long&nbsp;timeLimit)</code></th>
<td class="colLast">
<div class="block">A less efficient query to find sessions whose expiry time is before the
given timeLimit.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>protected java.util.Set&lt;<a href="GCloudSessionDataStore.ExpiryInfo.html" title="class in org.eclipse.jetty.gcloud.session">GCloudSessionDataStore.ExpiryInfo</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#queryExpiryByIndex()">queryExpiryByIndex</a></span>()</code></th>
<td class="colLast">
<div class="block">An efficient query to find sessions whose expiry time has passed:
uses a projection query, which requires indexes to be uploaded.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>protected java.util.Set&lt;<a href="GCloudSessionDataStore.ExpiryInfo.html" title="class in org.eclipse.jetty.gcloud.session">GCloudSessionDataStore.ExpiryInfo</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#queryExpiryByIndex(long)">queryExpiryByIndex</a></span>&#8203;(long&nbsp;timeLimit)</code></th>
<td class="colLast">
<div class="block">An efficient query to find sessions whose expiry time is before the given timeLimit:
uses a projection query, which requires indexes to be uploaded.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>protected <a href="../../server/session/SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sessionFromEntity(com.google.cloud.datastore.Entity)">sessionFromEntity</a></span>&#8203;(com.google.cloud.datastore.Entity&nbsp;entity)</code></th>
<td class="colLast">
<div class="block">Generate SessionData from an Entity retrieved from gcloud datastore.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setBackoffMs(int)">setBackoffMs</a></span>&#8203;(int&nbsp;ms)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDatastore(com.google.cloud.datastore.Datastore)">setDatastore</a></span>&#8203;(com.google.cloud.datastore.Datastore&nbsp;datastore)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntityDataModel(org.eclipse.jetty.gcloud.session.GCloudSessionDataStore.EntityDataModel)">setEntityDataModel</a></span>&#8203;(<a href="GCloudSessionDataStore.EntityDataModel.html" title="class in org.eclipse.jetty.gcloud.session">GCloudSessionDataStore.EntityDataModel</a>&nbsp;model)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setHost(java.lang.String)">setHost</a></span>&#8203;(java.lang.String&nbsp;host)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxResults(int)">setMaxResults</a></span>&#8203;(int&nbsp;maxResults)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxRetries(int)">setMaxRetries</a></span>&#8203;(int&nbsp;retries)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setNamespace(java.lang.String)">setNamespace</a></span>&#8203;(java.lang.String&nbsp;namespace)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setProjectId(java.lang.String)">setProjectId</a></span>&#8203;(java.lang.String&nbsp;projectId)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.server.session.AbstractSessionDataStore">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.server.session.<a href="../../server/session/AbstractSessionDataStore.html" title="class in org.eclipse.jetty.server.session">AbstractSessionDataStore</a></h3>
<code><a href="../../server/session/AbstractSessionDataStore.html#checkStarted()">checkStarted</a>, <a href="../../server/session/AbstractSessionDataStore.html#cleanOrphans(long)">cleanOrphans</a>, <a href="../../server/session/AbstractSessionDataStore.html#exists(java.lang.String)">exists</a>, <a href="../../server/session/AbstractSessionDataStore.html#getExpired(java.util.Set)">getExpired</a>, <a href="../../server/session/AbstractSessionDataStore.html#getGracePeriodSec()">getGracePeriodSec</a>, <a href="../../server/session/AbstractSessionDataStore.html#getSavePeriodSec()">getSavePeriodSec</a>, <a href="../../server/session/AbstractSessionDataStore.html#initialize(org.eclipse.jetty.server.session.SessionContext)">initialize</a>, <a href="../../server/session/AbstractSessionDataStore.html#load(java.lang.String)">load</a>, <a href="../../server/session/AbstractSessionDataStore.html#newSessionData(java.lang.String,long,long,long,long)">newSessionData</a>, <a href="../../server/session/AbstractSessionDataStore.html#setGracePeriodSec(int)">setGracePeriodSec</a>, <a href="../../server/session/AbstractSessionDataStore.html#setSavePeriodSec(int)">setSavePeriodSec</a>, <a href="../../server/session/AbstractSessionDataStore.html#store(java.lang.String,org.eclipse.jetty.server.session.SessionData)">store</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.ContainerLifeCycle">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">ContainerLifeCycle</a></h3>
<code><a href="../../util/component/ContainerLifeCycle.html#addBean(java.lang.Object)">addBean</a>, <a href="../../util/component/ContainerLifeCycle.html#addBean(java.lang.Object,boolean)">addBean</a>, <a href="../../util/component/ContainerLifeCycle.html#addEventListener(java.util.EventListener)">addEventListener</a>, <a href="../../util/component/ContainerLifeCycle.html#addManaged(org.eclipse.jetty.util.component.LifeCycle)">addManaged</a>, <a href="../../util/component/ContainerLifeCycle.html#contains(java.lang.Object)">contains</a>, <a href="../../util/component/ContainerLifeCycle.html#destroy()">destroy</a>, <a href="../../util/component/ContainerLifeCycle.html#dump()">dump</a>, <a href="../../util/component/ContainerLifeCycle.html#dump(java.lang.Appendable)">dump</a>, <a href="../../util/component/ContainerLifeCycle.html#dump(java.lang.Appendable,java.lang.String)">dump</a>, <a href="../../util/component/ContainerLifeCycle.html#dumpObjects(java.lang.Appendable,java.lang.String,java.lang.Object...)">dumpObjects</a>, <a href="../../util/component/ContainerLifeCycle.html#dumpStdErr()">dumpStdErr</a>, <a href="../../util/component/ContainerLifeCycle.html#getBean(java.lang.Class)">getBean</a>, <a href="../../util/component/ContainerLifeCycle.html#getBeans()">getBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#getBeans(java.lang.Class)">getBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#getContainedBeans(java.lang.Class)">getContainedBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#getContainedBeans(java.lang.Class,java.util.Collection)">getContainedBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#isAuto(java.lang.Object)">isAuto</a>, <a href="../../util/component/ContainerLifeCycle.html#isManaged(java.lang.Object)">isManaged</a>, <a href="../../util/component/ContainerLifeCycle.html#isUnmanaged(java.lang.Object)">isUnmanaged</a>, <a href="../../util/component/ContainerLifeCycle.html#manage(java.lang.Object)">manage</a>, <a href="../../util/component/ContainerLifeCycle.html#removeBean(java.lang.Object)">removeBean</a>, <a href="../../util/component/ContainerLifeCycle.html#removeBeans()">removeBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#removeEventListener(java.util.EventListener)">removeEventListener</a>, <a href="../../util/component/ContainerLifeCycle.html#setBeans(java.util.Collection)">setBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#start(org.eclipse.jetty.util.component.LifeCycle)">start</a>, <a href="../../util/component/ContainerLifeCycle.html#stop(org.eclipse.jetty.util.component.LifeCycle)">stop</a>, <a href="../../util/component/ContainerLifeCycle.html#unmanage(java.lang.Object)">unmanage</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBean(java.lang.Object,java.lang.Object)">updateBean</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBean(java.lang.Object,java.lang.Object,boolean)">updateBean</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBeans(java.lang.Object%5B%5D,java.lang.Object%5B%5D)">updateBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBeans(java.util.Collection,java.util.Collection)">updateBeans</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.AbstractLifeCycle">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../../util/component/AbstractLifeCycle.html#getEventListeners()">getEventListeners</a>, <a href="../../util/component/AbstractLifeCycle.html#getState()">getState</a>, <a href="../../util/component/AbstractLifeCycle.html#getState(org.eclipse.jetty.util.component.LifeCycle)">getState</a>, <a href="../../util/component/AbstractLifeCycle.html#isFailed()">isFailed</a>, <a href="../../util/component/AbstractLifeCycle.html#isRunning()">isRunning</a>, <a href="../../util/component/AbstractLifeCycle.html#isStarted()">isStarted</a>, <a href="../../util/component/AbstractLifeCycle.html#isStarting()">isStarting</a>, <a href="../../util/component/AbstractLifeCycle.html#isStopped()">isStopped</a>, <a href="../../util/component/AbstractLifeCycle.html#isStopping()">isStopping</a>, <a href="../../util/component/AbstractLifeCycle.html#setEventListeners(java.util.Collection)">setEventListeners</a>, <a href="../../util/component/AbstractLifeCycle.html#start()">start</a>, <a href="../../util/component/AbstractLifeCycle.html#stop()">stop</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.Container">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Container.html" title="interface in org.eclipse.jetty.util.component">Container</a></h3>
<code><a href="../../util/component/Container.html#getCachedBeans(java.lang.Class)">getCachedBeans</a>, <a href="../../util/component/Container.html#getEventListeners()">getEventListeners</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.Dumpable">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></h3>
<code><a href="../../util/component/Dumpable.html#dumpSelf()">dumpSelf</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.Dumpable.DumpableContainer">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.DumpableContainer.html" title="interface in org.eclipse.jetty.util.component">Dumpable.DumpableContainer</a></h3>
<code><a href="../../util/component/Dumpable.DumpableContainer.html#isDumpable(java.lang.Object)">isDumpable</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.LifeCycle">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></h3>
<code><a href="../../util/component/LifeCycle.html#addEventListener(java.util.EventListener)">addEventListener</a>, <a href="../../util/component/LifeCycle.html#isFailed()">isFailed</a>, <a href="../../util/component/LifeCycle.html#isRunning()">isRunning</a>, <a href="../../util/component/LifeCycle.html#isStarted()">isStarted</a>, <a href="../../util/component/LifeCycle.html#isStarting()">isStarting</a>, <a href="../../util/component/LifeCycle.html#isStopped()">isStopped</a>, <a href="../../util/component/LifeCycle.html#isStopping()">isStopping</a>, <a href="../../util/component/LifeCycle.html#removeEventListener(java.util.EventListener)">removeEventListener</a>, <a href="../../util/component/LifeCycle.html#start()">start</a>, <a href="../../util/component/LifeCycle.html#stop()">stop</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="DEFAULT_MAX_QUERY_RESULTS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_MAX_QUERY_RESULTS</h4>
<pre>public static final&nbsp;int DEFAULT_MAX_QUERY_RESULTS</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.eclipse.jetty.gcloud.session.GCloudSessionDataStore.DEFAULT_MAX_QUERY_RESULTS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="DEFAULT_MAX_RETRIES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_MAX_RETRIES</h4>
<pre>public static final&nbsp;int DEFAULT_MAX_RETRIES</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.eclipse.jetty.gcloud.session.GCloudSessionDataStore.DEFAULT_MAX_RETRIES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="DEFAULT_BACKOFF_MS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_BACKOFF_MS</h4>
<pre>public static final&nbsp;int DEFAULT_BACKOFF_MS</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.eclipse.jetty.gcloud.session.GCloudSessionDataStore.DEFAULT_BACKOFF_MS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="DEFAULT_NAMESPACE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_NAMESPACE</h4>
<pre>public static final&nbsp;java.lang.String DEFAULT_NAMESPACE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.eclipse.jetty.gcloud.session.GCloudSessionDataStore.DEFAULT_NAMESPACE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="_datastore">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_datastore</h4>
<pre>protected&nbsp;com.google.cloud.datastore.Datastore _datastore</pre>
</li>
</ul>
<a id="_keyFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_keyFactory</h4>
<pre>protected&nbsp;com.google.cloud.datastore.KeyFactory _keyFactory</pre>
</li>
</ul>
<a id="_maxResults">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_maxResults</h4>
<pre>protected&nbsp;int _maxResults</pre>
</li>
</ul>
<a id="_maxRetries">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_maxRetries</h4>
<pre>protected&nbsp;int _maxRetries</pre>
</li>
</ul>
<a id="_backoff">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_backoff</h4>
<pre>protected&nbsp;int _backoff</pre>
</li>
</ul>
<a id="_dsProvided">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_dsProvided</h4>
<pre>protected&nbsp;boolean _dsProvided</pre>
</li>
</ul>
<a id="_indexesPresent">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_indexesPresent</h4>
<pre>protected&nbsp;boolean _indexesPresent</pre>
</li>
</ul>
<a id="_model">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>_model</h4>
<pre>protected&nbsp;<a href="GCloudSessionDataStore.EntityDataModel.html" title="class in org.eclipse.jetty.gcloud.session">GCloudSessionDataStore.EntityDataModel</a> _model</pre>
</li>
</ul>
<a id="_modelProvided">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>_modelProvided</h4>
<pre>protected&nbsp;boolean _modelProvided</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>GCloudSessionDataStore</h4>
<pre>public&nbsp;GCloudSessionDataStore()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="setEntityDataModel(org.eclipse.jetty.gcloud.session.GCloudSessionDataStore.EntityDataModel)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEntityDataModel</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setEntityDataModel&#8203;(<a href="GCloudSessionDataStore.EntityDataModel.html" title="class in org.eclipse.jetty.gcloud.session">GCloudSessionDataStore.EntityDataModel</a>&nbsp;model)</pre>
</li>
</ul>
<a id="getEntityDataModel()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEntityDataModel</h4>
<pre class="methodSignature">public&nbsp;<a href="GCloudSessionDataStore.EntityDataModel.html" title="class in org.eclipse.jetty.gcloud.session">GCloudSessionDataStore.EntityDataModel</a>&nbsp;getEntityDataModel()</pre>
</li>
</ul>
<a id="setBackoffMs(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBackoffMs</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setBackoffMs&#8203;(int&nbsp;ms)</pre>
</li>
</ul>
<a id="setNamespace(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setNamespace</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setNamespace&#8203;(java.lang.String&nbsp;namespace)</pre>
</li>
</ul>
<a id="getNamespace()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNamespace</h4>
<pre class="methodSignature"><a href="../../util/annotation/ManagedAttribute.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedAttribute</a>(<a href="../../util/annotation/ManagedAttribute.html#value()">value</a>="gcloud namespace",
<a href="../../util/annotation/ManagedAttribute.html#readonly()">readonly</a>=true)
public&nbsp;java.lang.String&nbsp;getNamespace()</pre>
</li>
</ul>
<a id="getBackoffMs()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBackoffMs</h4>
<pre class="methodSignature"><a href="../../util/annotation/ManagedAttribute.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedAttribute</a>("unit in ms of exponential backoff")
public&nbsp;int&nbsp;getBackoffMs()</pre>
</li>
</ul>
<a id="setMaxRetries(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMaxRetries</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setMaxRetries&#8203;(int&nbsp;retries)</pre>
</li>
</ul>
<a id="getMaxRetries()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxRetries</h4>
<pre class="methodSignature"><a href="../../util/annotation/ManagedAttribute.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedAttribute</a>("max number of retries for failed writes")
public&nbsp;int&nbsp;getMaxRetries()</pre>
</li>
</ul>
<a id="setHost(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setHost</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setHost&#8203;(java.lang.String&nbsp;host)</pre>
</li>
</ul>
<a id="getHost()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHost</h4>
<pre class="methodSignature"><a href="../../util/annotation/ManagedAttribute.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedAttribute</a>(<a href="../../util/annotation/ManagedAttribute.html#value()">value</a>="gcloud host",
<a href="../../util/annotation/ManagedAttribute.html#readonly()">readonly</a>=true)
public&nbsp;java.lang.String&nbsp;getHost()</pre>
</li>
</ul>
<a id="setProjectId(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setProjectId</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setProjectId&#8203;(java.lang.String&nbsp;projectId)</pre>
</li>
</ul>
<a id="getProjectId()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProjectId</h4>
<pre class="methodSignature"><a href="../../util/annotation/ManagedAttribute.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedAttribute</a>(<a href="../../util/annotation/ManagedAttribute.html#value()">value</a>="gcloud project Id",
<a href="../../util/annotation/ManagedAttribute.html#readonly()">readonly</a>=true)
public&nbsp;java.lang.String&nbsp;getProjectId()</pre>
</li>
</ul>
<a id="doStart()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doStart</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;doStart()
throws java.lang.Exception</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../util/component/ContainerLifeCycle.html#doStart()">ContainerLifeCycle</a></code></span></div>
<div class="block">Starts the managed lifecycle beans in the order they were added.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../server/session/AbstractSessionDataStore.html#doStart()">doStart</a></code>&nbsp;in class&nbsp;<code><a href="../../server/session/AbstractSessionDataStore.html" title="class in org.eclipse.jetty.server.session">AbstractSessionDataStore</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../util/component/AbstractLifeCycle.StopException.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle.StopException</a></code> - If thrown, the lifecycle will immediately be stopped.</dd>
<dd><code>java.lang.Exception</code> - If there was a problem starting. Will cause a transition to FAILED state</dd>
</dl>
</li>
</ul>
<a id="doStop()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doStop</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;doStop()
throws java.lang.Exception</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../util/component/ContainerLifeCycle.html#doStop()">ContainerLifeCycle</a></code></span></div>
<div class="block">Stops the managed lifecycle beans in the reverse order they were added.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../util/component/ContainerLifeCycle.html#doStop()">doStop</a></code>&nbsp;in class&nbsp;<code><a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">ContainerLifeCycle</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - If there was a problem stopping. Will cause a transition to FAILED state</dd>
</dl>
</li>
</ul>
<a id="setDatastore(com.google.cloud.datastore.Datastore)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDatastore</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setDatastore&#8203;(com.google.cloud.datastore.Datastore&nbsp;datastore)</pre>
</li>
</ul>
<a id="getMaxResults()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxResults</h4>
<pre class="methodSignature"><a href="../../util/annotation/ManagedAttribute.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedAttribute</a>("max number of results to return from gcloud searches")
public&nbsp;int&nbsp;getMaxResults()</pre>
</li>
</ul>
<a id="setMaxResults(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMaxResults</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setMaxResults&#8203;(int&nbsp;maxResults)</pre>
</li>
</ul>
<a id="doLoad(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doLoad</h4>
<pre class="methodSignature">public&nbsp;<a href="../../server/session/SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a>&nbsp;doLoad&#8203;(java.lang.String&nbsp;id)
throws java.lang.Exception</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../server/session/AbstractSessionDataStore.html#doLoad(java.lang.String)">AbstractSessionDataStore</a></code></span></div>
<div class="block">Load the session from persistent store.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../server/session/AbstractSessionDataStore.html#doLoad(java.lang.String)">doLoad</a></code>&nbsp;in class&nbsp;<code><a href="../../server/session/AbstractSessionDataStore.html" title="class in org.eclipse.jetty.server.session">AbstractSessionDataStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the id of the session to load</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the re-inflated session</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if unable to load the session</dd>
</dl>
</li>
</ul>
<a id="delete(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>delete</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;delete&#8203;(java.lang.String&nbsp;id)
throws java.lang.Exception</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../server/session/SessionDataMap.html#delete(java.lang.String)">SessionDataMap</a></code></span></div>
<div class="block">Delete session data</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - identity of session to delete</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the session was deleted</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if unable to delete session data</dd>
</dl>
</li>
</ul>
<a id="doCheckExpired(java.util.Set,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doCheckExpired</h4>
<pre class="methodSignature">public&nbsp;java.util.Set&lt;java.lang.String&gt;&nbsp;doCheckExpired&#8203;(java.util.Set&lt;java.lang.String&gt;&nbsp;candidates,
long&nbsp;time)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../server/session/AbstractSessionDataStore.html#doCheckExpired(java.util.Set,long)">AbstractSessionDataStore</a></code></span></div>
<div class="block">Implemented by subclasses to resolve which sessions in this context
that are being managed by this node that should be expired.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../server/session/AbstractSessionDataStore.html#doCheckExpired(java.util.Set,long)">doCheckExpired</a></code>&nbsp;in class&nbsp;<code><a href="../../server/session/AbstractSessionDataStore.html" title="class in org.eclipse.jetty.server.session">AbstractSessionDataStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>candidates</code> - the ids of sessions the SessionCache thinks has expired</dd>
<dd><code>time</code> - the time at which to check for expiry</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the reconciled set of session ids that have been checked in the store</dd>
</dl>
</li>
</ul>
<a id="doGetExpired(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doGetExpired</h4>
<pre class="methodSignature">public&nbsp;java.util.Set&lt;java.lang.String&gt;&nbsp;doGetExpired&#8203;(long&nbsp;time)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../server/session/AbstractSessionDataStore.html#doGetExpired(long)">AbstractSessionDataStore</a></code></span></div>
<div class="block">Implemented by subclasses to find sessions for this context in the store
that expired at or before the time limit and thus not being actively
managed by any node. This method is only called periodically (the period
is configurable) to avoid putting too much load on the store.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../server/session/AbstractSessionDataStore.html#doGetExpired(long)">doGetExpired</a></code>&nbsp;in class&nbsp;<code><a href="../../server/session/AbstractSessionDataStore.html" title="class in org.eclipse.jetty.server.session">AbstractSessionDataStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>time</code> - the upper limit of expiry times to check. Sessions expired
at or before this timestamp will match.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the empty set if there are no sessions expired as at the time, or
otherwise a set of session ids.</dd>
</dl>
</li>
</ul>
<a id="doCleanOrphans(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doCleanOrphans</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;doCleanOrphans&#8203;(long&nbsp;timeLimit)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../server/session/AbstractSessionDataStore.html#doCleanOrphans(long)">AbstractSessionDataStore</a></code></span></div>
<div class="block">Implemented by subclasses to delete sessions for other contexts that
expired at or before the timeLimit. These are 'orphaned' sessions that
are no longer being actively managed by any node. These are explicitly
sessions that do NOT belong to this context (other mechanisms such as
doGetExpired take care of those). As they don't belong to this context,
they cannot be loaded by us.
This is called only periodically to avoid placing excessive load on the
store.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../server/session/AbstractSessionDataStore.html#doCleanOrphans(long)">doCleanOrphans</a></code>&nbsp;in class&nbsp;<code><a href="../../server/session/AbstractSessionDataStore.html" title="class in org.eclipse.jetty.server.session">AbstractSessionDataStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeLimit</code> - the upper limit of the expiry time to check in msec</dd>
</dl>
</li>
</ul>
<a id="queryExpiryByEntity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>queryExpiryByEntity</h4>
<pre class="methodSignature">protected&nbsp;java.util.Set&lt;<a href="GCloudSessionDataStore.ExpiryInfo.html" title="class in org.eclipse.jetty.gcloud.session">GCloudSessionDataStore.ExpiryInfo</a>&gt;&nbsp;queryExpiryByEntity()
throws java.lang.Exception</pre>
<div class="block">A less efficient query to find sessions whose expiry time has passed:
retrieves the whole Entity.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>set of ExpiryInfo representing the id, lastNode and expiry time of
sessions that are expired</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if datastore experiences a problem</dd>
</dl>
</li>
</ul>
<a id="queryExpiryByEntity(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>queryExpiryByEntity</h4>
<pre class="methodSignature">protected&nbsp;java.util.Set&lt;<a href="GCloudSessionDataStore.ExpiryInfo.html" title="class in org.eclipse.jetty.gcloud.session">GCloudSessionDataStore.ExpiryInfo</a>&gt;&nbsp;queryExpiryByEntity&#8203;(long&nbsp;timeLimit)
throws java.lang.Exception</pre>
<div class="block">A less efficient query to find sessions whose expiry time is before the
given timeLimit.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeLimit</code> - time since the epoch</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>set of ExpiryInfo representing the id,lastNode and expiry time</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a id="queryExpiryByIndex()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>queryExpiryByIndex</h4>
<pre class="methodSignature">protected&nbsp;java.util.Set&lt;<a href="GCloudSessionDataStore.ExpiryInfo.html" title="class in org.eclipse.jetty.gcloud.session">GCloudSessionDataStore.ExpiryInfo</a>&gt;&nbsp;queryExpiryByIndex()
throws java.lang.Exception</pre>
<div class="block">An efficient query to find sessions whose expiry time has passed:
uses a projection query, which requires indexes to be uploaded.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>id, lastnode and expiry time of sessions that have expired</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if datastore experiences a problem</dd>
</dl>
</li>
</ul>
<a id="queryExpiryByIndex(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>queryExpiryByIndex</h4>
<pre class="methodSignature">protected&nbsp;java.util.Set&lt;<a href="GCloudSessionDataStore.ExpiryInfo.html" title="class in org.eclipse.jetty.gcloud.session">GCloudSessionDataStore.ExpiryInfo</a>&gt;&nbsp;queryExpiryByIndex&#8203;(long&nbsp;timeLimit)
throws java.lang.Exception</pre>
<div class="block">An efficient query to find sessions whose expiry time is before the given timeLimit:
uses a projection query, which requires indexes to be uploaded.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeLimit</code> - the upper limit of expiry time to check</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>id,lastnode and expiry time of sessions that have expired</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a id="doExists(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doExists</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;doExists&#8203;(java.lang.String&nbsp;id)
throws java.lang.Exception</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../server/session/AbstractSessionDataStore.html#doExists(java.lang.String)">AbstractSessionDataStore</a></code></span></div>
<div class="block">Check if a session for the given id exists.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../server/session/AbstractSessionDataStore.html#doExists(java.lang.String)">doExists</a></code>&nbsp;in class&nbsp;<code><a href="../../server/session/AbstractSessionDataStore.html" title="class in org.eclipse.jetty.server.session">AbstractSessionDataStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the session id to check</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the session exists in the persistent store, false otherwise</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a id="isExpired(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isExpired</h4>
<pre class="methodSignature">protected&nbsp;boolean&nbsp;isExpired&#8203;(long&nbsp;timestamp)</pre>
<div class="block">Check to see if the given time is in the past.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timestamp</code> - the time to check</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>false if the timestamp is 0 or less, true if it is in the past</dd>
</dl>
</li>
</ul>
<a id="doStore(java.lang.String,org.eclipse.jetty.server.session.SessionData,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doStore</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;doStore&#8203;(java.lang.String&nbsp;id,
<a href="../../server/session/SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a>&nbsp;data,
long&nbsp;lastSaveTime)
throws java.lang.Exception</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../server/session/AbstractSessionDataStore.html#doStore(java.lang.String,org.eclipse.jetty.server.session.SessionData,long)">AbstractSessionDataStore</a></code></span></div>
<div class="block">Store the session data persistently.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../server/session/AbstractSessionDataStore.html#doStore(java.lang.String,org.eclipse.jetty.server.session.SessionData,long)">doStore</a></code>&nbsp;in class&nbsp;<code><a href="../../server/session/AbstractSessionDataStore.html" title="class in org.eclipse.jetty.server.session">AbstractSessionDataStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - identity of session to store</dd>
<dd><code>data</code> - info of the session</dd>
<dd><code>lastSaveTime</code> - time of previous save or 0 if never saved</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if unable to store data</dd>
</dl>
</li>
</ul>
<a id="makeKey(java.lang.String,org.eclipse.jetty.server.session.SessionContext)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>makeKey</h4>
<pre class="methodSignature">protected&nbsp;com.google.cloud.datastore.Key&nbsp;makeKey&#8203;(java.lang.String&nbsp;id,
<a href="../../server/session/SessionContext.html" title="class in org.eclipse.jetty.server.session">SessionContext</a>&nbsp;context)</pre>
<div class="block">Make a unique key for this session.
As the same session id can be used across multiple contexts, to
make it unique, the key must be composed of:
<ol>
<li>the id</li>
<li>the context path</li>
<li>the virtual hosts</li>
</ol></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the id</dd>
<dd><code>context</code> - the session context</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the key</dd>
</dl>
</li>
</ul>
<a id="makeKey(java.lang.String,java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>makeKey</h4>
<pre class="methodSignature">protected&nbsp;com.google.cloud.datastore.Key&nbsp;makeKey&#8203;(java.lang.String&nbsp;id,
java.lang.String&nbsp;canonicalContextPath,
java.lang.String&nbsp;canonicalVHost)</pre>
</li>
</ul>
<a id="checkIndexes()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkIndexes</h4>
<pre class="methodSignature">protected&nbsp;boolean&nbsp;checkIndexes()</pre>
<div class="block">Check to see if indexes are available, in which case
we can do more performant queries.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if indexes are available</dd>
</dl>
</li>
</ul>
<a id="entityFromSession(org.eclipse.jetty.server.session.SessionData,com.google.cloud.datastore.Key)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>entityFromSession</h4>
<pre class="methodSignature">protected&nbsp;com.google.cloud.datastore.Entity&nbsp;entityFromSession&#8203;(<a href="../../server/session/SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a>&nbsp;session,
com.google.cloud.datastore.Key&nbsp;key)
throws java.lang.Exception</pre>
<div class="block">Generate a gcloud datastore Entity from SessionData</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - the session data</dd>
<dd><code>key</code> - the key</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the entity</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if there is a deserialization error</dd>
</dl>
</li>
</ul>
<a id="sessionFromEntity(com.google.cloud.datastore.Entity)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sessionFromEntity</h4>
<pre class="methodSignature">protected&nbsp;<a href="../../server/session/SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a>&nbsp;sessionFromEntity&#8203;(com.google.cloud.datastore.Entity&nbsp;entity)
throws java.lang.Exception</pre>
<div class="block">Generate SessionData from an Entity retrieved from gcloud datastore.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>entity</code> - the entity</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the session data</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if unable to get the entity</dd>
</dl>
</li>
</ul>
<a id="isPassivating()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPassivating</h4>
<pre class="methodSignature"><a href="../../util/annotation/ManagedAttribute.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedAttribute</a>(<a href="../../util/annotation/ManagedAttribute.html#value()">value</a>="does gcloud serialize session data",
<a href="../../util/annotation/ManagedAttribute.html#readonly()">readonly</a>=true)
public&nbsp;boolean&nbsp;isPassivating()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../server/session/SessionDataStore.html#isPassivating()">SessionDataStore</a></code></span></div>
<div class="block">True if this type of datastore will passivate session objects</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this store can passivate sessions, false otherwise</dd>
</dl>
</li>
</ul>
<a id="toString()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../server/session/AbstractSessionDataStore.html#toString()">toString</a></code>&nbsp;in class&nbsp;<code><a href="../../server/session/AbstractSessionDataStore.html" title="class in org.eclipse.jetty.server.session">AbstractSessionDataStore</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/GCloudSessionDataStore.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 1995&#x2013;2022 <a href="https://webtide.com">Webtide</a>. All rights reserved.</small></p>
</footer>
</body>
</html>