Cleaned up git
[iotcloud.git] / version1 / src / js / iotjs / src / keyvalue.js
diff --git a/version1/src/js/iotjs/src/keyvalue.js b/version1/src/js/iotjs/src/keyvalue.js
new file mode 100644 (file)
index 0000000..a2c02d0
--- /dev/null
@@ -0,0 +1,99 @@
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var KeyValue = function (_Entry) {
+       _inherits(KeyValue, _Entry);
+
+       function KeyValue(slot, _key, _value) {
+               _classCallCheck(this, KeyValue);
+
+               if (!(slot instanceof Slot && _key instanceof IoTString && _value instanceof IoTString)) {
+                       throw new Error('Argument error ');
+               }
+
+               var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(KeyValue).call(this, slot));
+
+               _this.key = _key;
+               _this.value = _value;
+               return _this;
+       }
+
+       _createClass(KeyValue, [{
+               key: 'getKey',
+               value: function getKey() {
+                       return this.key;
+               }
+       }, {
+               key: 'getValue',
+               value: function getValue() {
+                       return this.value;
+               }
+       }, {
+               key: 'decode',
+               value: function decode(slot, bb) {
+                       if (!(slot instanceof Slot && bb instanceof ByteBuffer)) {
+                               throw new Error('Argument error');
+                       }
+                       var keylength = bb.getByte();
+                       var valuelength = bb.getByte();
+                       var key = new Uint8Array(keylength);
+                       var value = new Uint8Array(valuelength);
+                       var keystring = '';
+                       for (var i = 0; i < keylength; i++) {
+                               keystring += bb.readByte();
+                       }
+                       var valuestring = '';
+                       for (var j = 0; j < keylength; j++) {
+                               valuestring += bb.readByte();
+                       }
+                       for (var k = 0; k < keystring.length; k++) {
+                               key[k] = keystring.charCodeAt(k);
+                       }
+                       for (var l = 0; l < valuestring.length; l++) {
+                               value[l] = valuestring.charCodeAt(l);
+                       }
+                       return new KeyValue(slot, IoTString.shallow(key), IoTString.shallow(value));
+               }
+       }, {
+               key: 'encode',
+               value: function encode(bb) {
+                       if (!(bb instanceof ByteBuffer)) {
+                               throw new Error('argument error');
+                       }
+                       bb.writeByte(Entry.TypeKeyValue);
+                       bb.writeByte(this.key.length());
+                       bb.writeByte(this.value.length());
+                       bb.concat(this.key.internalBytes());
+                       bb.concat(this.value.internalBytes());
+               }
+       }, {
+               key: 'getSize',
+               value: function getSize() {
+                       return 2 * 4 + this.jey.length() + this.value.length() + 1;
+               }
+       }, {
+               key: 'getType',
+               value: function getType() {
+                       return Entry.TypeKeyValue;
+               }
+       }, {
+               key: 'toString',
+               value: function toString() {
+                       return this.value.toString();
+               }
+       }, {
+               key: 'getCopy',
+               value: function getCopy(s) {
+                       return new KeyValue(s, this.key, this.value);
+               }
+       }]);
+
+       return KeyValue;
+}(Entry);
\ No newline at end of file