You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by iv...@apache.org on 2015/07/13 16:23:35 UTC
incubator-ignite git commit: #ignite-961-promise: add all methods to
cache-promise.
Repository: incubator-ignite
Updated Branches:
refs/heads/ignite-961-promise e97945747 -> 9ccabbaa4
#ignite-961-promise: add all methods to cache-promise.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/9ccabbaa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/9ccabbaa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/9ccabbaa
Branch: refs/heads/ignite-961-promise
Commit: 9ccabbaa47bdcbb76175363e7cac60a77fff86e4
Parents: e979457
Author: ivasilinets <iv...@gridgain.com>
Authored: Mon Jul 13 17:23:29 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Mon Jul 13 17:23:29 2015 +0300
----------------------------------------------------------------------
modules/nodejs/src/main/js/cache-promise.js | 267 ++++++++++++++++++++---
1 file changed, 235 insertions(+), 32 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9ccabbaa/modules/nodejs/src/main/js/cache-promise.js
----------------------------------------------------------------------
diff --git a/modules/nodejs/src/main/js/cache-promise.js b/modules/nodejs/src/main/js/cache-promise.js
index 8c4d329..1e34233 100644
--- a/modules/nodejs/src/main/js/cache-promise.js
+++ b/modules/nodejs/src/main/js/cache-promise.js
@@ -35,14 +35,24 @@ function CachePromise(server, cacheName) {
}
/**
+ * Get cache name.
+ *
+ * @this{Cache}
+ * @returns {string} Cache name.
+ */
+CachePromise.prototype.name = function() {
+ return this._cacheName;
+}
+
+/**
* Get cache value
*
* @this {Cache}
* @param {string} key Key
*/
CachePromise.prototype.get = function(key) {
- console.log("GET key=" + key);
- return this.__createPromise(this._createCommand("get").setPostData(JSON.stringify({"key": key})));
+ return this.__createPromise(this._createCommand("get").
+ setPostData(JSON.stringify({"key": key})));
};
/**
@@ -53,7 +63,202 @@ CachePromise.prototype.get = function(key) {
* @param {string} value Value
*/
CachePromise.prototype.put = function(key, value) {
- return this.__createPromise(this._createCommand("put").setPostData(JSON.stringify({"key": key, "val" : value})));
+ return this.__createPromise(this._createCommand("put").
+ setPostData(JSON.stringify({"key": key, "val" : value})));
+}
+
+/**
+ * Put if absent
+ *
+ * @this {Cache}
+ * @param {string} key Key
+ * @param {string} value Value
+ */
+CachePromise.prototype.putIfAbsent = function(key, value) {
+ return this.__createPromise(this._createCommand("putifabsent").
+ setPostData(JSON.stringify({"key": key, "val" : value})));
+}
+
+/**
+ * Remove cache key
+ *
+ * @this {Cache}
+ * @param key Key
+ */
+CachePromise.prototype.remove = function(key, callback) {
+ return this.__createPromise(this._createCommand("rmv").
+ setPostData(JSON.stringify({"key": key})));
+}
+
+/**
+ * Remove cache key
+ *
+ * @this {Cache}
+ * @param key Key
+ * @param value Value
+ */
+CachePromise.prototype.removeValue = function(key, value, callback) {
+ return this.__createPromise(this._createCommand("rmvvalue").
+ setPostData(JSON.stringify({"key": key, "val" : value})));
+}
+
+/**
+ * Get and remove cache key
+ *
+ * @this {Cache}
+ * @param {string} key Key
+ */
+CachePromise.prototype.getAndRemove = function(key, callback) {
+ return this.__createPromise(this._createCommand("getandrmv").
+ setPostData(JSON.stringify({"key": key})));
+}
+
+/**
+ * Remove cache keys
+ *
+ * @this {Cache}
+ * @param {string[]} keys Keys to remove
+ */
+CachePromise.prototype.removeAll = function(keys, callback) {
+ return this.__createPromise(this._createCommand("rmvall").
+ setPostData(JSON.stringify({"keys" : keys})));
+}
+
+/**
+ * Remove all cache keys
+ *
+ * @this {Cache}
+ */
+CachePromise.prototype.removeAllFromCache = function(callback) {
+ return this.__createPromise(this._createCommand("rmvall"));
+}
+
+/**
+ * Put keys to cache
+ *
+ * @this {Cache}
+ * @param {CacheEntry[]} List of entries to put in the cache
+ */
+CachePromise.prototype.putAll = function(entries) {
+ return this.__createPromise(this._createCommand("putall").setPostData(
+ JSON.stringify({"entries" : entries})));
+}
+
+/**
+ * Get keys from the cache
+ *
+ * @this {Cache}
+ * @param {Object[]} keys Keys
+ */
+CachePromise.prototype.getAll = function(keys, callback) {
+ var cmd = this._createCommand("getall").setPostData(JSON.stringify({"keys" : keys}));
+
+ return new Promise(function(resolve, reject) {
+ server.runCommand(cmd, function(err, res) {
+ if(err != null) {
+ reject(err);
+ }
+ else {
+ var result = [];
+
+ for (var key of res) {
+ result.push(new CacheEntry(key["key"], key["value"]));
+ }
+
+ resolve(result);
+ }
+ });
+ });
+}
+
+/**
+ * Determines if the cache contains an entry for the specified key.
+ *
+ * @this {Cache}
+ * @param {Object} key Key
+ */
+CachePromise.prototype.containsKey = function(key) {
+ return this.__createPromise(this._createCommand("containskey").
+ setPostData(JSON.stringify({"key" : key})));
+}
+
+/**
+ * Determines if the cache contains all keys.
+ *
+ * @this {Cache}
+ * @param {Object[]} keys Keys
+ */
+CachePromise.prototype.containsKeys = function(keys, callback) {
+ return this.__createPromise(this._createCommand("containskeys").
+ setPostData(JSON.stringify({"keys" : keys})));
+}
+
+/**
+ * Get and put cache value
+ *
+ * @this {Cache}
+ * @param {string} key Key
+ * @param {string} value Value
+ */
+CachePromise.prototype.getAndPut = function(key, val) {
+ return this.__createPromise(this._createCommand("getandput").
+ setPostData(JSON.stringify({"key" : key, "val" : val})));
+}
+
+/**
+ * replace cache value
+ *
+ * @this {Cache}
+ * @param key Key
+ * @param value Value
+ */
+CachePromise.prototype.replace = function(key, val, callback) {
+ return this.__createPromise(this._createCommand("rep").
+ setPostData(JSON.stringify({"key" : key, "val" : val})));
+}
+
+/**
+ * replace cache value
+ *
+ * @this {Cache}
+ * @param key Key
+ * @param value Value
+ * @param oldVal Old value
+ */
+CachePromise.prototype.replaceValue = function(key, val, oldVal) {
+ return this.__createPromise(this._createCommand("repVal").
+ setPostData(JSON.stringify({"key" : key, "val" : val, "oldVal" : oldVal})));
+}
+
+/**
+ * Get and put cache value
+ *
+ * @this {Cache}
+ * @param {string} key Key
+ * @param {string} value Value
+ */
+CachePromise.prototype.getAndReplace = function(key, val) {
+ return this.__createPromise(this._createCommand("getandreplace").
+ setPostData(JSON.stringify({"key" : key, "val" : val})));
+}
+
+/**
+ * Stores given key-value pair in cache only if cache had no previous mapping for it.
+ *
+ * @this {Cache}
+ * @param {string} key Key
+ * @param {string} value Value
+ */
+CachePromise.prototype.getAndPutIfAbsent = function(key, val) {
+ return this.__createPromise(this._createCommand("getandputifabsent").
+ setPostData(JSON.stringify({"key" : key, "val" : val})));
+}
+
+/**
+ * @this {Cache}
+ */
+CachePromise.prototype.size = function(callback) {
+ return this.__createPromise(this._createCommand("cachesize"));
}
/**
@@ -85,6 +290,33 @@ CachePromise.prototype.query = function(qry) {
});
}
+CachePromise.prototype.__createPromise = function(cmd) {
+ return new Promise(function(resolve, reject) {
+ server.runCommand(cmd, function(err, res) {
+ if(err != null) {
+ reject(err);
+ }
+ else {
+ resolve(res);
+ }
+ });
+ });
+}
+
+CachePromise.prototype._createCommand = function(name) {
+ var command = new Command(name);
+
+ return command.addParam("cacheName", this._cacheName);
+}
+
+CachePromise.prototype._createQueryCommand = function(name, qry) {
+ var command = this._createCommand(name);
+
+ command.addParam("qry", qry.query());
+
+ return command.addParam("psz", qry.pageSize());
+}
+
Cursor = function(qry, res) {
this._qry = qry;
this._res = res;
@@ -120,33 +352,4 @@ Cursor.prototype.isFinished = function() {
return this._res["last"];
}
-CachePromise.prototype.__createPromise = function(cmd) {
- return new Promise(function(resolve, reject) {
- server.runCommand(cmd, function(err, res) {
- if(err != null) {
- reject(err);
- }
- else {
- resolve(res);
- }
- });
- });
-}
-
-
-CachePromise.prototype._createCommand = function(name) {
- var command = new Command(name);
-
- return command.addParam("cacheName", this._cacheName);
-}
-
-
-CachePromise.prototype._createQueryCommand = function(name, qry) {
- var command = this._createCommand(name);
-
- command.addParam("qry", qry.query());
-
- return command.addParam("psz", qry.pageSize());
-}
-
exports.CachePromise = CachePromise
\ No newline at end of file