#include <PropertyBag.h>
#include <bluetooth.h>
-#include "plugin_config.h"
+#include "plugin_config_impl.h"
#include "JSBluetoothManager.h"
#include "JSBluetoothClassDeviceMajor.h"
#include "JSBluetoothClassDeviceMinor.h"
void JSBluetoothManager::initialize(JSContextRef context, JSObjectRef object)
{
+ LoggerD("initialize");
+
if (!JSObjectGetPrivate(object)) {
- PropertyBag *priv = new PropertyBag();
- if(priv) {
- // deviceMajor
- priv->setProperty(context, BLUETOOTH_MANAGER_DEVICE_MAJOR,
- JSBluetoothClassDeviceMajor::createJSObject(context));
-
- // deviceMinor
- priv->setProperty(context, BLUETOOTH_MANAGER_DEVICE_MINOR,
- JSBluetoothClassDeviceMinor::createJSObject(context));
-
- // deviceService
- priv->setProperty(context, BLUETOOTH_MANAGER_DEVICE_SERVICE,
- JSBluetoothClassDeviceService::createJSObject(context));
-
- if (!JSObjectSetPrivate(object, static_cast<void*>(priv))) {
- LoggerW("Failed to set private data");
- delete priv;
- }
- }
- else {
- LoggerW("Failed to create private data");
- }
- }
- else {
- LoggerW("Private data already exists");
- }
+ JSBluetoothManagerPriv* priv = new JSBluetoothManagerPriv();
+
+ if(priv) {
+ // deviceMajor
+ priv->setProperty(context, BLUETOOTH_MANAGER_DEVICE_MAJOR,
+ JSBluetoothClassDeviceMajor::createJSObject(context));
+
+ // deviceMinor
+ priv->setProperty(context, BLUETOOTH_MANAGER_DEVICE_MINOR,
+ JSBluetoothClassDeviceMinor::createJSObject(context));
+
+ // deviceService
+ priv->setProperty(context, BLUETOOTH_MANAGER_DEVICE_SERVICE,
+ JSBluetoothClassDeviceService::createJSObject(context));
+
+ if (!JSObjectSetPrivate(object, static_cast<void*>(priv))) {
+ LoggerW("Failed to set private data");
+ delete priv;
+ }
+ LoggerD("Private creation ok");
+ }
+ else {
+ LoggerW("Failed to create private data");
+ }
+ }
+ else {
+ LoggerW("already has private data");
+ }
}
void JSBluetoothManager::finalize(JSObjectRef object)
{
- PropertyBag *priv = static_cast<PropertyBag*>(JSObjectGetPrivate(object));
+ JSBluetoothManagerPriv *priv = static_cast<JSBluetoothManagerPriv*>(JSObjectGetPrivate(object));
if (priv) {
JSObjectSetPrivate(object, NULL);
delete priv;
}
JSValueRef JSBluetoothManager::getReadOnlyProperty(JSContextRef context, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception) {
- PropertyBag *priv = static_cast<PropertyBag*>(JSObjectGetPrivate(object));
+ JSBluetoothManagerPriv *priv = static_cast<JSBluetoothManagerPriv*>(JSObjectGetPrivate(object));
if(!priv) {
LoggerW("There is no private data");
return NULL;
const JSValueRef arguments[],
JSValueRef* exception)
{
+ JSBluetoothManagerPriv *priv = static_cast<JSBluetoothManagerPriv*>(JSObjectGetPrivate(thisObject));
+
+ if (!priv)
+ {
+ DeviceAPI::Common::TypeMismatchException err("Private Object is null");
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ }
+
TIME_TRACER_ITEM_BEGIN("getDefaultAdapter", 1);
-
- // Access Check
- TIME_TRACER_ITEM_BEGIN("getDefaultAdapter::ACE", 1);
- AceSecurityStatus status = BLUETOOTH_CHECK_ACCESS(BLUETOOTH_MANAGER_API_GET_DEFAULT_ADAPTER);
+ TIZEN_CHECK_ACCESS(context, exception, priv, BLUETOOTH_MANAGER_API_GET_DEFAULT_ADAPTER);
TIME_TRACER_ITEM_END("getDefaultAdapter::ACE", 1);
- TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
+
try {
- JSObjectRef adapter = JSBluetoothAdapter::createJSObject(context);
-
+
if(bt_initialize() != BT_ERROR_NONE) {
LoggerE("bt_initialize() failed");
}
+
+ BluetoothAdapter::getInstance()->copyAceCheckAccessFunction(priv);
+ JSObjectRef adapter = JSBluetoothAdapter::createJSObject(context);
TIME_TRACER_ITEM_END("getDefaultAdapter", 1);
return adapter;