Repository: incubator-ignite Updated Branches: refs/heads/ignite-961 fb197cd35 -> 576126890
#ignite-961: add putAll, getAll methods to node js cache. Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/57612689 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/57612689 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/57612689 Branch: refs/heads/ignite-961 Commit: 576126890abbe58a5dca427c03492cb37edc7b14 Parents: fb197cd Author: ivasilinets <[email protected]> Authored: Mon Jun 8 20:27:37 2015 +0300 Committer: ivasilinets <[email protected]> Committed: Mon Jun 8 20:27:37 2015 +0300 ---------------------------------------------------------------------- modules/nodejs/src/main/js/cache.js | 75 ++++++++++++++++++-- .../ignite/internal/NodeJsCacheApiSelfTest.java | 7 ++ modules/nodejs/src/test/js/test-cache-api.js | 34 +++++++++ 3 files changed, 111 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/57612689/modules/nodejs/src/main/js/cache.js ---------------------------------------------------------------------- diff --git a/modules/nodejs/src/main/js/cache.js b/modules/nodejs/src/main/js/cache.js index fe46406..48903fc 100644 --- a/modules/nodejs/src/main/js/cache.js +++ b/modules/nodejs/src/main/js/cache.js @@ -71,8 +71,9 @@ Cache.prototype.put = function(key, value, callback) { /** * Remove cache key * + * @this {Cache} * @param {string} key Key - * @param {noValue} callback Called on finish + * @param {Cache~noValue} callback Called on finish */ Cache.prototype.remove = function(key, callback) { this._server.runCommand("rmv", [this._cacheNameParam, Server.pair("key", key)], callback); @@ -81,17 +82,81 @@ Cache.prototype.remove = function(key, callback) { /** * Remove cache keys * + * @this {Cache} * @param {string[]} keys Keys to remove - * @param {noValue} callback Called on finish + * @param {Cache~noValue} callback Called on finish */ Cache.prototype.removeAll = function(keys, callback) { var params = [this._cacheNameParam]; - for (var i = 0; i < keys.length; ++i) { - params.push(Server.pair("k" + i, keys[i])); - } + params = params.concat(Cache.concatParams("k", keys)); this._server.runCommand("rmvall", params, callback); } +/** + * Put keys to cache + * + * @this {Cache} + * @param {string[]} keys Keys + * @param {string[]} values Values + * @param {Cache~noValue} callback Called on finish + */ +Cache.prototype.putAll = function(keys, values, callback) { + if (keys.length !== values.length) { + callback.call(null, "Number of keys is not equal to number of values." + + "keys size=" + keys.length + ", values size=" + values.length + "]."); + + return; + } + + var params = Cache.concatParams("k", keys); + params = params.concat(Cache.concatParams("v", values)); + + params.push(this._cacheNameParam); + + this._server.runCommand("putall", params, callback); +} + +/** + * Callback for cache get + * @callback Cache~onGetAll + * @param {string} error Error + * @param {string[]} results Result values + */ + +/** + * Get keys from the cache + * + * @this {Cache} + * @param {string[]} keys Keys + * @param {Cache~onGetAll} callback Called on finish + */ +Cache.prototype.getAll = function(keys, callback) { + var params = Cache.concatParams("k", keys); + + params.push(this._cacheNameParam); + + + console.log("PARAM GET ALL "+ params); + + this._server.runCommand("getall", params, callback); +} + +/** + * Concatenate all parameters + * + * @param {string} pref Prefix + * @param {string[]} keys Keys + * @returns List of parameters. + */ +Cache.concatParams = function(pref, keys) { + var temp = [] + + for (var i = 0; i < keys.length; ++i) { + temp.push(Server.pair(pref + i, keys[i])); + } + + return temp; +} exports.Cache = Cache \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/57612689/modules/nodejs/src/test/java/org/apache/ignite/internal/NodeJsCacheApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/nodejs/src/test/java/org/apache/ignite/internal/NodeJsCacheApiSelfTest.java b/modules/nodejs/src/test/java/org/apache/ignite/internal/NodeJsCacheApiSelfTest.java index 2f64219..909282f 100644 --- a/modules/nodejs/src/test/java/org/apache/ignite/internal/NodeJsCacheApiSelfTest.java +++ b/modules/nodejs/src/test/java/org/apache/ignite/internal/NodeJsCacheApiSelfTest.java @@ -77,4 +77,11 @@ public class NodeJsCacheApiSelfTest extends NodeJsAbstractTest { public void testRemoveAll() throws Exception { runJsScript("testRemoveAll"); } + + /** + * @throws Exception If failed. + */ + public void testPutAllGetAll() throws Exception { + runJsScript("testPutAllGetAll"); + } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/57612689/modules/nodejs/src/test/js/test-cache-api.js ---------------------------------------------------------------------- diff --git a/modules/nodejs/src/test/js/test-cache-api.js b/modules/nodejs/src/test/js/test-cache-api.js index c5fe1da..ec4cab5 100644 --- a/modules/nodejs/src/test/js/test-cache-api.js +++ b/modules/nodejs/src/test/js/test-cache-api.js @@ -43,6 +43,40 @@ testRemoveAll = function() { TestUtils.startIgniteNode(onStart.bind(null, onPutRemoveAll, "mycache")); } +testPutAllGetAll = function() { + TestUtils.startIgniteNode(onStartGetAll.bind(null, "mycache")); +} + +function onStartGetAll(cacheName, error, ignite) { + var cache = ignite.cache(cacheName); + + var keys = ["key1", "key2"]; + + var values = ["val1", "val2"]; + + cache.putAll(keys, values, onPutAll.bind(null, cache, keys, values)); +} + +function onPutAll(cache, keys, values, error) { + assert(error == null); + + cache.getAll(keys, onGetAll.bind(null, cache, keys, values)); +} + +function onGetAll(cache, keys, expected, error, values) { + console.log("error get all: " + error) + assert(error == null, error); + + console.log("values=" + values); + + for (var i = 0; i < expected.length; ++i) { + console.log("valuei=" + values[i]); + //assert(value.properties[i].value == expected[i]); + } + + TestUtils.testDone(); +} + function onStart(onPut1, cacheName, error, ignite) { var cache = ignite.cache(cacheName);
