diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/storage/expiringstorage.js')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/storage/expiringstorage.js | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/storage/expiringstorage.js b/contexts/data/lib/closure-library/closure/goog/storage/expiringstorage.js deleted file mode 100644 index 8f8012f..0000000 --- a/contexts/data/lib/closure-library/closure/goog/storage/expiringstorage.js +++ /dev/null @@ -1,142 +0,0 @@ -// Copyright 2011 The Closure Library Authors. All Rights Reserved. -// -// Licensed 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. - -/** - * @fileoverview Provides a convenient API for data persistence with expiration. - * - */ - -goog.provide('goog.storage.ExpiringStorage'); - -goog.require('goog.storage.RichStorage'); -goog.require('goog.storage.RichStorage.Wrapper'); -goog.require('goog.storage.mechanism.Mechanism'); - - - -/** - * Provides a storage with expirning keys. - * - * @param {!goog.storage.mechanism.Mechanism} mechanism The underlying - * storage mechanism. - * @constructor - * @extends {goog.storage.RichStorage} - */ -goog.storage.ExpiringStorage = function(mechanism) { - goog.base(this, mechanism); -}; -goog.inherits(goog.storage.ExpiringStorage, goog.storage.RichStorage); - - -/** - * Metadata key under which the expiration time is stored. - * - * @type {string} - * @protected - */ -goog.storage.ExpiringStorage.EXPIRATION_TIME_KEY = 'expiration'; - - -/** - * Metadata key under which the creation time is stored. - * - * @type {string} - * @protected - */ -goog.storage.ExpiringStorage.CREATION_TIME_KEY = 'creation'; - - -/** - * Returns the wrapper creation time. - * - * @param {!Object} wrapper The wrapper. - * @return {number|undefined} Wrapper creation time. - */ -goog.storage.ExpiringStorage.getCreationTime = function(wrapper) { - return wrapper[goog.storage.ExpiringStorage.CREATION_TIME_KEY]; -}; - - -/** - * Returns the wrapper expiration time. - * - * @param {!Object} wrapper The wrapper. - * @return {number|undefined} Wrapper expiration time. - */ -goog.storage.ExpiringStorage.getExpirationTime = function(wrapper) { - return wrapper[goog.storage.ExpiringStorage.EXPIRATION_TIME_KEY]; -}; - - -/** - * Checks if the data item has expired. - * - * @param {!Object} wrapper The wrapper. - * @return {boolean} True if the item has expired. - */ -goog.storage.ExpiringStorage.isExpired = function(wrapper) { - var creation = goog.storage.ExpiringStorage.getCreationTime(wrapper); - var expiration = goog.storage.ExpiringStorage.getExpirationTime(wrapper); - return !!expiration && expiration < goog.now() || - !!creation && creation > goog.now(); -}; - - -/** - * Set an item in the storage. - * - * @param {string} key The key to set. - * @param {*} value The value to serialize to a string and save. - * @param {number=} opt_expiration The number of miliseconds since epoch - * (as in goog.now()) when the value is to expire. If the expiration - * time is not provided, the value will persist as long as possible. - * @override - */ -goog.storage.ExpiringStorage.prototype.set = function( - key, value, opt_expiration) { - var wrapper = goog.storage.RichStorage.Wrapper.wrapIfNecessary(value); - if (wrapper) { - if (opt_expiration) { - if (opt_expiration < goog.now()) { - goog.storage.ExpiringStorage.prototype.remove.call(this, key); - return; - } - wrapper[goog.storage.ExpiringStorage.EXPIRATION_TIME_KEY] = - opt_expiration; - } - wrapper[goog.storage.ExpiringStorage.CREATION_TIME_KEY] = goog.now(); - } - goog.base(this, 'set', key, wrapper); -}; - - -/** - * Get an item wrapper (the item and its metadata) from the storage. - * - * @param {string} key The key to get. - * @param {boolean=} opt_expired If true, return expired wrappers as well. - * @return {(!Object|undefined)} The wrapper, or undefined if not found. - * @override - */ -goog.storage.ExpiringStorage.prototype.getWrapper = function(key, opt_expired) { - var wrapper = goog.base(this, 'getWrapper', key); - if (!wrapper) { - return undefined; - } - if (!opt_expired && goog.storage.ExpiringStorage.isExpired(wrapper)) { - goog.storage.ExpiringStorage.prototype.remove.call(this, key); - return undefined; - } - return wrapper; -}; |