From: Pawel Andruszkiewicz Date: Tue, 12 Jan 2016 13:24:37 +0000 (+0100) Subject: [Iotcon] Stubs of JS interface (Resource). X-Git-Tag: submit/tizen/20160128.083419^2~4^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=60074a849500b6a576874b21460feb5acf2ec394;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Iotcon] Stubs of JS interface (Resource). Change-Id: Ie32cc256cbd077eda411a1d0fcadfd6d926d4ce2 Signed-off-by: Pawel Andruszkiewicz Signed-off-by: Piotr Kosko --- diff --git a/src/iotcon/iotcon_api.js b/src/iotcon/iotcon_api.js index 80fadbd6..7dfd7f32 100644 --- a/src/iotcon/iotcon_api.js +++ b/src/iotcon/iotcon_api.js @@ -300,6 +300,169 @@ function Request(data) { decorateWithData(data, this); } +function Resource(data) { + Object.defineProperties(this, { + _id: { + value: data.id, + writable: false, + enumerable: false + }, + observerIds: { + get: function() { + var callArgs = {}; + callArgs.id = data.id; + var result = native.callSync('IotconResource_getObserverIds', callArgs); + return native.getResultObject(result); + }, + set: function() {}, + enumerable: true + } + }); + + delete data.id; + + var internal = new InternalData(data); + internal.decorate(this); +} + +Resource.prototype.notify = function() { + var args = validator.validateMethod(arguments, [{ + name: 'observerIds', + type: types.ARRAY, + values: types.LONG, + optional: true, + nullable: true + }]); + + var callArgs = {}; + callArgs.id = this._id; + callArgs.observerIds = args.observerIds; + + var result = native.call('IotconResource_notify', callArgs); + + if (native.isFailure(result)) { + throw native.getErrorObject(result); + } +}; + +Resource.prototype.addResourceTypes = function() { + var args = validator.validateMethod(arguments, [{ + name: 'types', + type: types.ARRAY, + values: types.STRING, + optional: false, + nullable: false + }]); + + var callArgs = {}; + callArgs.id = this._id; + callArgs.types = args.types; + + var result = native.call('IotconResource_addResourceTypes', callArgs); + + if (native.isFailure(result)) { + throw native.getErrorObject(result); + } +}; + +Resource.prototype.addResourceInterfaces = function() { + var args = validator.validateMethod(arguments, [{ + name: 'interfaces', + type: types.ARRAY, + values: ResourceInterface, + optional: false, + nullable: false + }]); + + var callArgs = {}; + callArgs.id = this._id; + callArgs.interfaces = args.interfaces; + + var result = native.call('IotconResource_addResourceInterfaces', callArgs); + + if (native.isFailure(result)) { + throw native.getErrorObject(result); + } +}; + +Resource.prototype.addChildResource = function() { + var args = validator.validateMethod(arguments, [{ + name: 'resource', + type: types_.PLATFORM_OBJECT, + values: Resource, + optional: false, + nullable: false + }]); + + var callArgs = {}; + callArgs.id = this._id; + callArgs.resource = args.resource; + + var result = native.call('IotconResource_addChildResource', callArgs); + + if (native.isFailure(result)) { + throw native.getErrorObject(result); + } +}; + +Resource.prototype.removeChildResource = function() { + var args = validator.validateMethod(arguments, [{ + name: 'resource', + type: types_.PLATFORM_OBJECT, + values: Resource, + optional: false, + nullable: false + }]); + + var callArgs = {}; + callArgs.id = this._id; + callArgs.resource = args.resource; + + var result = native.call('IotconResource_removeChildResource', callArgs); + + if (native.isFailure(result)) { + throw native.getErrorObject(result); + } +}; + +var resourceRequestListener = createListener('ResourceRequestListener'); + +Resource.prototype.setRequestListener = function() { + var args = validator.validateMethod(arguments, [{ + name: 'successCallback', + type: types.FUNCTION + }]); + + var callArgs = {}; + callArgs.id = this._id; + + var listener = function(result) { + native.callIfPossible(args.successCallback, native.getResultObject(result)); + }; + + var result = native.callSync('IotconResource_setRequestListener', callArgs); + + if (native.isFailure(result)) { + throw native.getErrorObject(result); + } else { + resourceRequestListener.addListener(this._id, listener); + } +}; + +Resource.prototype.unsetRequestListener = function() { + var callArgs = {}; + callArgs.id = this._id; + + var result = native.callSync('IotconRemoteResource_unsetRequestListener', callArgs); + + if (native.isFailure(result)) { + throw native.getErrorObject(result); + } else { + resourceRequestListener.removeListener(this._id); + } +}; + + function Response(request) { validator.isConstructorCall(this, tizen.Response); @@ -830,9 +993,6 @@ Client.prototype.getPlatformInfo = function() { } }; -function Resource() { -} - function Server() { } @@ -856,8 +1016,7 @@ Server.prototype.createResource = function() { if (native.isFailure(result)) { native.callIfPossible(args.errorCallback, native.getErrorObject(result)); } else { - // TODO: implement - args.successCallback(); + args.successCallback(new Resource(native.getResultObject(result))); } }; @@ -884,7 +1043,7 @@ Server.prototype.removeResource = function() { }]); var callArgs = {}; - callArgs.id = args.resource._id; // TODO: check if this is correct + callArgs.id = args.resource._id; var callback = function(result) { if (native.isFailure(result)) { @@ -917,7 +1076,7 @@ Server.prototype.updateResource = function() { }]); var callArgs = {}; - callArgs.id = args.resource._id; // TODO: check if this is correct + callArgs.id = args.resource._id; var callback = function(result) { if (native.isFailure(result)) {