[Iotcon] Stubs of JS interface (Iotcon and client).
authorPawel Andruszkiewicz <p.andruszkie@samsung.com>
Fri, 8 Jan 2016 15:00:27 +0000 (16:00 +0100)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Tue, 12 Jan 2016 07:41:29 +0000 (16:41 +0900)
Change-Id: Ic9cc25cbbfd0e03e4665f4b90f2658c35029726a
Signed-off-by: Pawel Andruszkiewicz <p.andruszkie@samsung.com>
src/iotcon/iotcon_api.js

index c0322eeb756ae15ab182978a2f5eeb9698a17925..013bd45b74a732cc1d5b056d9e5ae23444ae7897 100644 (file)
 var native = new xwalk.utils.NativeManager(extension);
 var validator = xwalk.utils.validator;
 var types = validator.Types;
+var T = xwalk.utils.type;
+
+var ResponseResult = {
+  SUCCESS: 'SUCCESS',
+  ERROR: 'ERROR',
+  RESOURCE_CREATED: 'RESOURCE_CREATED',
+  RESOURCE_DELETED: 'RESOURCE_DELETED',
+  SLOW: 'SLOW'
+};
+
+var PresenceResponseResultType = {
+  SUCCESS: 'SUCCESS',
+  STOPPED: 'STOPPED',
+  TIMEOUT: 'TIMEOUT'
+};
+
+var PresenceTriggerType = {
+  CREATED: 'CREATED',
+  UPDATED: 'UPDATED',
+  DESTROYED: 'DESTROYED'
+};
+
+var ConnectivityType = {
+  IPV4: 'IPV4',
+  IPV6: 'IPV6',
+  BT_EDR: 'BT_EDR',
+  BT_LE: 'BT_LE',
+  ALL: 'ALL'
+};
+
+var ResourceInterface = {
+  DEFAULT: 'DEFAULT',
+  LINK: 'LINK',
+  BATCH: 'BATCH',
+  GROUP: 'GROUP'
+};
+
+var ObservePolicy = {
+  IGNORE_OUT_OF_ORDER: 'IGNORE_OUT_OF_ORDER',
+  ACCEPT_OUT_OF_ORDER: 'ACCEPT_OUT_OF_ORDER'
+};
+
+var PresenceTriggerType = {
+  NO_TYPE: 'NO_TYPE',
+  REGISTER: 'REGISTER',
+  DEREGISTER: 'DEREGISTER'
+};
+
+function Client() {
+}
+
+Client.prototype.findResource = function() {
+  var args = validator.validateMethod(arguments, [{
+    name: 'hostAddress',
+    type: types.STRING,
+    nullable: true
+  }, {
+    name: 'resourceType',
+    type: types.STRING,
+    nullable: true
+  }, {
+    name: 'connectivityType',
+    type: types.ENUM,
+    values: T.getValues(ConnectivityType)
+  }, {
+    name: 'successCallback',
+    type: types.FUNCTION
+  }, {
+    name: 'errorCallback',
+    type: types.FUNCTION,
+    optional: true,
+    nullable: true
+  }]);
+
+  var callArgs = {};
+  callArgs.hostAddress = args.hostAddress;
+  callArgs.resourceType = args.resourceType;
+  callArgs.connectivityType = args.connectivityType;
+
+  var callback = function(result) {
+    if (native.isFailure(result)) {
+      native.callIfPossible(args.errorCallback, native.getErrorObject(result));
+    } else {
+      // TODO: implement
+      args.successCallback();
+    }
+  };
+
+  var result = native.call('IotconClient_findResource', callArgs, callback);
+
+  if (native.isFailure(result)) {
+    throw native.getErrorObject(result);
+  }
+};
+
+var presenceEventListener = (function() {
+  var listenerName = 'PresenceEventListener';
+  var listeners = {};
+  var jsListenerRegistered = false;
+
+  function callback(response) {
+    if (listeners[response.id]) {
+      // TODO: implement
+      listeners[response.id]();
+    }
+  }
+
+  function addListener(id, func) {
+    if (!jsListenerRegistered) {
+      native.addListener(listenerName, callback);
+      jsListenerRegistered = true;
+    }
+
+    listeners[id] = func;
+  }
+
+  function removeListener(id) {
+    if (listeners[id]) {
+      delete listeners[id];
+    }
+
+    if (jsListenerRegistered && T.isEmptyObject(listeners)) {
+      native.removeListener(listenerName, callback);
+      jsListenerRegistered = false;
+    }
+  }
+
+  return {
+    addListener: addListener,
+    removeListener: removeListener
+  };
+})();
+
+Client.prototype.addPresenceEventListener = function() {
+  var args = validator.validateMethod(arguments, [{
+    name: 'hostAddress',
+    type: types.STRING,
+    nullable: true
+  }, {
+    name: 'resourceType',
+    type: types.STRING
+  }, {
+    name: 'connectivityType',
+    type: types.ENUM,
+    values: T.getValues(ConnectivityType)
+  }, {
+    name: 'successCallback',
+    type: types.FUNCTION
+  }]);
+
+  var callArgs = {};
+  callArgs.hostAddress = args.hostAddress;
+  callArgs.resourceType = args.resourceType;
+  callArgs.connectivityType = args.connectivityType;
+
+  var result = native.callSync('IotconClient_addPresenceEventListener', callArgs);
+
+  if (native.isFailure(result)) {
+    throw native.getErrorObject(result);
+  } else {
+    var id = native.getResultObject(result);
+    presenceEventListener.addListener(id, args.successCallback);
+    return id;
+  }
+};
+
+Client.prototype.removePresenceEventListener = function() {
+  var args = validator.validateMethod(arguments, [{
+    name: 'watchId',
+    type: types.LONG
+  }]);
+
+  var callArgs = {};
+  callArgs.id = args.watchId;
+
+  var result = native.callSync('IotconClient_removePresenceEventListener', callArgs);
+
+  if (native.isFailure(result)) {
+    throw native.getErrorObject(result);
+  } else {
+    presenceEventListener.removeListener(args.watchId);
+  }
+};
+
+Client.prototype.getDeviceInfo = function() {
+  var args = validator.validateMethod(arguments, [{
+    name: 'hostAddress',
+    type: types.STRING
+  }, {
+    name: 'connectivityType',
+    type: types.ENUM,
+    values: T.getValues(ConnectivityType)
+  }, {
+    name: 'successCallback',
+    type: types.FUNCTION
+  }, {
+    name: 'errorCallback',
+    type: types.FUNCTION,
+    optional: true,
+    nullable: true
+  }]);
+
+  var callArgs = {};
+  callArgs.hostAddress = args.hostAddress;
+  callArgs.connectivityType = args.connectivityType;
+
+  var callback = function(result) {
+    if (native.isFailure(result)) {
+      native.callIfPossible(args.errorCallback, native.getErrorObject(result));
+    } else {
+      // TODO: implement
+      args.successCallback();
+    }
+  };
+
+  var result = native.call('IotconClient_getDeviceInfo', callArgs, callback);
+
+  if (native.isFailure(result)) {
+    throw native.getErrorObject(result);
+  }
+};
+
+Client.prototype.getPlatformInfo = function() {
+  var args = validator.validateMethod(arguments, [{
+    name: 'hostAddress',
+    type: types.STRING
+  }, {
+    name: 'connectivityType',
+    type: types.ENUM,
+    values: T.getValues(ConnectivityType)
+  }, {
+    name: 'successCallback',
+    type: types.FUNCTION
+  }, {
+    name: 'errorCallback',
+    type: types.FUNCTION,
+    optional: true,
+    nullable: true
+  }]);
+
+  var callArgs = {};
+  callArgs.hostAddress = args.hostAddress;
+  callArgs.connectivityType = args.connectivityType;
+
+  var callback = function(result) {
+    if (native.isFailure(result)) {
+      native.callIfPossible(args.errorCallback, native.getErrorObject(result));
+    } else {
+      // TODO: implement
+      args.successCallback();
+    }
+  };
+
+  var result = native.call('IotconClient_getPlatformInfo', callArgs, callback);
+
+  if (native.isFailure(result)) {
+    throw native.getErrorObject(result);
+  }
+};
+
+function Server() {
+}
+
+var client = new Client();
+var server = new Server();
 
 function Iotcon() {
 }
 
+Iotcon.prototype.getClient = function() {
+  return client;
+};
+
+Iotcon.prototype.getServer = function() {
+  return server;
+};
+
+Iotcon.prototype.getTimeout = function() {
+  var result = native.callSync('Iotcon_getTimeout', {});
+
+  if (native.isFailure(result)) {
+    throw native.getErrorObject(result);
+  } else {
+    return native.getResultObject(result);
+  }
+};
+
+Iotcon.prototype.setTimeout = function() {
+  var args = validator.validateMethod(arguments, [{
+    name: 'timeout',
+    type: types.LONG
+  }]);
+
+  var callArgs = {};
+  callArgs.timeout = args.timeout;
+
+  var result = native.callSync('Iotcon_setTimeout', callArgs);
+
+  if (native.isFailure(result)) {
+    throw native.getErrorObject(result);
+  }
+};
+
 // Exports
 exports = new Iotcon();