Rev 1372 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/*Copyright (c) 2004-2006, The Dojo FoundationAll Rights Reserved.Licensed under the Academic Free License version 2.1 or above OR themodified BSD license. For more information on Dojo licensing, see:http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.storage");dojo.require("dojo.lang.*");dojo.require("dojo.event.*");dojo.storage = new function () {};dojo.declare("dojo.storage", null, {SUCCESS:"success", FAILED:"failed", PENDING:"pending", SIZE_NOT_AVAILABLE:"Size not available", SIZE_NO_LIMIT:"No size limit", namespace:"default", onHideSettingsUI:null, initialize:function () {dojo.unimplemented("dojo.storage.initialize");}, isAvailable:function () {dojo.unimplemented("dojo.storage.isAvailable");}, put:function (key, value, resultsHandler) {dojo.unimplemented("dojo.storage.put");}, get:function (key) {dojo.unimplemented("dojo.storage.get");}, hasKey:function (key) {return (this.get(key) != null);}, getKeys:function () {dojo.unimplemented("dojo.storage.getKeys");}, clear:function () {dojo.unimplemented("dojo.storage.clear");}, remove:function (key) {dojo.unimplemented("dojo.storage.remove");}, isPermanent:function () {dojo.unimplemented("dojo.storage.isPermanent");}, getMaximumSize:function () {dojo.unimplemented("dojo.storage.getMaximumSize");}, hasSettingsUI:function () {return false;}, showSettingsUI:function () {dojo.unimplemented("dojo.storage.showSettingsUI");}, hideSettingsUI:function () {dojo.unimplemented("dojo.storage.hideSettingsUI");}, getType:function () {dojo.unimplemented("dojo.storage.getType");}, isValidKey:function (keyName) {if ((keyName == null) || (typeof keyName == "undefined")) {return false;}return /^[0-9A-Za-z_]*$/.test(keyName);}});dojo.storage.manager = new function () {this.currentProvider = null;this.available = false;this._initialized = false;this._providers = [];this.namespace = "default";this.initialize = function () {this.autodetect();};this.register = function (name, instance) {this._providers[this._providers.length] = instance;this._providers[name] = instance;};this.setProvider = function (storageClass) {};this.autodetect = function () {if (this._initialized == true) {return;}var providerToUse = null;for (var i = 0; i < this._providers.length; i++) {providerToUse = this._providers[i];if (dojo.lang.isUndefined(djConfig["forceStorageProvider"]) == false && providerToUse.getType() == djConfig["forceStorageProvider"]) {providerToUse.isAvailable();break;} else {if (dojo.lang.isUndefined(djConfig["forceStorageProvider"]) == true && providerToUse.isAvailable()) {break;}}}if (providerToUse == null) {this._initialized = true;this.available = false;this.currentProvider = null;dojo.raise("No storage provider found for this platform");}this.currentProvider = providerToUse;for (var i in providerToUse) {dojo.storage[i] = providerToUse[i];}dojo.storage.manager = this;dojo.storage.initialize();this._initialized = true;this.available = true;};this.isAvailable = function () {return this.available;};this.isInitialized = function () {if (this.currentProvider.getType() == "dojo.storage.browser.FlashStorageProvider" && dojo.flash.ready == false) {return false;} else {return this._initialized;}};this.supportsProvider = function (storageClass) {try {var provider = eval("new " + storageClass + "()");var results = provider.isAvailable();if (results == null || typeof results == "undefined") {return false;}return results;}catch (exception) {return false;}};this.getProvider = function () {return this.currentProvider;};this.loaded = function () {};};