[BluetoothLE] Added public constructor for BluetoothLEServiceData and BluetoothLEManu...
authorPiotr Kosko <p.kosko@samsung.com>
Thu, 16 Jul 2015 09:05:00 +0000 (11:05 +0200)
committerHyunJin Park <hj.na.park@samsung.com>
Tue, 21 Jul 2015 09:36:49 +0000 (18:36 +0900)
[Verification] TCT passrate didn't change.

Change-Id: I27f3224d98d61ef8b2d372272495e8bf66b01c7a
Signed-off-by: Piotr Kosko <p.kosko@samsung.com>
src/bluetooth/bluetooth_api.js
src/bluetooth/bluetooth_extension.cc

index 455bd6e32f76eb0596215060cbf008b4fa642a6b..0e963bfb15a8213b0bd525a98172571f6167691a 100755 (executable)
@@ -142,8 +142,9 @@ var BluetoothClassDeviceService = function() {
     });
 };
 
-//class BluetoothLEServiceData ////////////////////////////////////////////////////
-var BluetoothLEServiceData = function(d) {
+//class tizen.BluetoothLEServiceData ////////////////////////////////////////////////////
+tizen.BluetoothLEServiceData = function(d) {
+  AV.isConstructorCall(this, tizen.BluetoothLEServiceData);
   var uuid_ = '';
   var data_ = '';
 
@@ -168,9 +169,15 @@ var BluetoothLEServiceData = function(d) {
     }
   });
 
-  if (d) {
+  if (arguments.length >= 2) {  // public constructor
+    this.serviceuuid = arguments[0];
+    this.data = arguments[1];
+  } else if (d && T.isObject(d)) {  // internal constructor
     this.serviceuuid = d.serviceuuid;
     this.data = d.data;
+  } else {
+    uuid_ = undefined;
+    data_ = undefined;
   }
 };
 
@@ -259,7 +266,7 @@ tizen.BluetoothLEAdvertiseData = function(dict) {
           serviceData_ = v;
         } else if (T.isArray(v)) {
           for (var i = 0; i < v.length; ++i) {
-            if (!(v[i] instanceof BluetoothLEServiceData)) {
+            if (!(v[i] instanceof tizen.BluetoothLEServiceData)) {
               return;
             }
           }
@@ -273,7 +280,7 @@ tizen.BluetoothLEAdvertiseData = function(dict) {
         return manufacturerData_;
       },
       set: function(v) {
-        if (T.isNull(v) || (v instanceof BluetoothLEManufacturerData)) {
+        if (T.isNull(v) || (v instanceof tizen.BluetoothLEManufacturerData)) {
           manufacturerData_ = v;
         }
       }
@@ -337,7 +344,7 @@ tizen.BluetoothLEAdvertiseData = function(dict) {
       o.serviceData = dict.serviceData;
     } else if (T.isArray(dict.serviceData)) {
       for (var i = 0; i < dict.serviceData.length; ++i) {
-        if (!(dict.serviceData[i] instanceof BluetoothLEServiceData)) {
+        if (!(dict.serviceData[i] instanceof tizen.BluetoothLEServiceData)) {
           return;
         }
       }
@@ -348,7 +355,7 @@ tizen.BluetoothLEAdvertiseData = function(dict) {
 
     // manufacturerData
     if (T.isNull(dict.manufacturerData) ||
-        (dict.manufacturerData instanceof BluetoothLEManufacturerData)) {
+        (dict.manufacturerData instanceof tizen.BluetoothLEManufacturerData)) {
       o.manufacturerData = dict.manufacturerData;
     } else if (!T.isUndefined(dict.manufacturerData)) {
       return;
@@ -362,8 +369,9 @@ tizen.BluetoothLEAdvertiseData = function(dict) {
   }
 };
 
-//class BluetoothLEManufacturerData ////////////////////////////////////////////////////
-var BluetoothLEManufacturerData = function(d) {
+//class tizen.BluetoothLEManufacturerData ////////////////////////////////////////////////////
+tizen.BluetoothLEManufacturerData = function(d) {
+  AV.isConstructorCall(this, tizen.BluetoothLEManufacturerData);
   var id_ = '';
   var data_ = '';
 
@@ -388,9 +396,15 @@ var BluetoothLEManufacturerData = function(d) {
     }
   });
 
-  if (d) {
+  if (arguments.length >= 2) {  // public constructor
+    this.id = arguments[0];
+    this.data = arguments[1];
+  } else if (d && T.isObject(d)) {  // internal constructor
     this.id = d.id;
     this.data = d.data;
+  } else {
+    id_ = undefined;
+    data_ = undefined;
   }
 };
 
@@ -569,9 +583,9 @@ var BluetoothLEDevice = function(data) {
         uuids = data.uuids;
         solicitationuuids = data.solicitationuuids;
         data.serviceData.forEach(function(d) {
-            serviceData.push(new BluetoothLEServiceData(d));
+            serviceData.push(new tizen.BluetoothLEServiceData(d));
         });
-        manufacturerData = new BluetoothLEManufacturerData(data.manufacturerData);
+        manufacturerData = new tizen.BluetoothLEManufacturerData(data.manufacturerData);
     }
 
     Object.defineProperties(this, {
index 5f21b96a5c4d5e1fef8ab9935f5c4fce3f8da08c..d9efdd1fcde46e8473c2cf564bc03e5734a9fcfb 100755 (executable)
@@ -20,6 +20,8 @@
 namespace {
 const char* kBluetooth = "tizen.bluetooth";
 const char* kBluetoothLEAdvertiseData = "tizen.BluetoothLEAdvertiseData";
+const char* kBluetoothLEServiceData = "tizen.BluetoothLEServiceData";
+const char* kBluetoothLEManufacturerData = "tizen.BluetoothLEManufacturerData";
 }
 // This will be generated from bluetooth_api.js.
 extern const char kSource_bluetooth_api[];
@@ -33,6 +35,8 @@ BluetoothExtension::BluetoothExtension() {
   SetJavaScriptAPI(kSource_bluetooth_api);
   const char* entry_points[] = {
       kBluetoothLEAdvertiseData,
+      kBluetoothLEServiceData,
+      kBluetoothLEManufacturerData,
       NULL
   };
   SetExtraJSEntryPoints(entry_points);