#include "NFCListenerManager.h"
#include "NFCFactory.h"
#include "EventNFCChanged.h"
-#include "plugin_config.h"
+#include "plugin_config_impl.h"
#include <Logger.h>
using namespace std;
JSObjectSetPrivate(object, NULL);
}
-JSObjectRef JSNFCAdapter::createJSObject(JSContextRef context) {
+JSObjectRef JSNFCAdapter::createJSObject(JSContextRef context, NFCManagerPrivObject *nfcManagerPriv) {
LoggerD("entered");
INFCAdapterPtr nfcAdapter(NFCFactory::getInstance().createNFCAdapterObject());
ThrowMsg(NullPointerException, "Can not new a NFCTag object");
}
+ priv->copyAceCheckAccessFunction(nfcManagerPriv);
return JSObjectMake(context, getClassRef(), priv);
}
JSValueRef* exception) {
LoggerD("JSNFCAdapter::setTagListener Enter");
- AceSecurityStatus status = NFC_CHECK_ACCESS(NFC_FUNCTION_API_TAG_FUNCS);
- TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
- JSContextRef global_context = GlobalContextManager::getInstance()->getGlobalContext(context);
+ NFCAdapterPrivObject* privateObject = static_cast<NFCAdapterPrivObject*>(JSObjectGetPrivate(thisObject));
+ if (!privateObject) {
+ LoggerE("private object is null");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Type Mismatch");
+ }
+
+ TIZEN_CHECK_ACCESS(context, exception, privateObject,
+ NFC_FUNCTION_API_TAG_FUNCS);
+
Try {
ArgumentValidator validator(context, argumentCount, arguments);
NFCChangedCallback callbacks;
callbacks = nfcConverter.toNFCChangedCallback(arguments[0]);
std::vector<std::string> filterValue = validator.toStringVector(1, true);
-
+
+ JSContextRef global_context = GlobalContextManager::getInstance()->getGlobalContext(context);
JSCallbackManagerPtr callbackManager = JSCallbackManager::createObject(global_context, callbacks.onattach, NULL, true, true);
JSCallbackManagerPtr detachedCallbackManager = JSCallbackManager::createObject(global_context, callbacks.ondetach, NULL);
TagFilterPtr tagFilter(new TagFilter());
LoggerD("tag_types.at(i): " << filterValue.at(i));
}
- NFCAdapterPrivObject* privateObject = static_cast<NFCAdapterPrivObject*>(JSObjectGetPrivate(thisObject));
- if (!privateObject) {
- LoggerE("private object is null");
- return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Type Mismatch");
- }
-
INFCAdapterPtr nfcAdapter(privateObject->getObject());
EventNFCChangedPrivateDataPtr privateData(
new EventNFCChangedPrivateData(callbackManager,
detachedCallbackManager)
);
+ privateData->copyAceCheckAccessFunction(privateObject);
+
EventNFCChangedEmitterPtr emitter(new EventNFCChangedEmitter);
emitter->setListener(&NFCStaticController::getInstance());
emitter->setEventPrivateData(DPL::StaticPointerCast<EventNFCChanged::PrivateDataType>(privateData));
JSValueRef* exception) {
LoggerD("JSNFCAdapter::setPeerListener Enter");
- AceSecurityStatus status = NFC_CHECK_ACCESS(NFC_FUNCTION_API_P2P_FUNCS);
- TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
+ NFCAdapterPrivObject* privateObject = static_cast<NFCAdapterPrivObject*>(JSObjectGetPrivate(thisObject));
+ if (!privateObject) {
+ LoggerE("private object is null");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Type Mismatch");
+ }
- JSContextRef global_context = GlobalContextManager::getInstance()->getGlobalContext(context);
+ TIZEN_CHECK_ACCESS(context, exception, privateObject,
+ NFC_FUNCTION_API_P2P_FUNCS);
Try {
ArgumentValidator validator(context, argumentCount, arguments);
if (validator.toObject(0))
callbacks = nfcConverter.toNFCChangedCallback(arguments[0]);
-
+
+ JSContextRef global_context = GlobalContextManager::getInstance()->getGlobalContext(context);
JSCallbackManagerPtr callbackManager = JSCallbackManager::createObject(global_context, callbacks.onattach, NULL, true, true);
JSCallbackManagerPtr detachedCallbackManager = JSCallbackManager::createObject(global_context, callbacks.ondetach, NULL);
- NFCAdapterPrivObject* privateObject = static_cast<NFCAdapterPrivObject*>(JSObjectGetPrivate(thisObject));
- if (!privateObject) {
- LoggerE("private object is null");
- return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Type Mismatch");
- }
-
INFCAdapterPtr nfcAdapter(privateObject->getObject());
EventNFCChangedPrivateDataPtr privateData(
detachedCallbackManager)
);
+ privateData->copyAceCheckAccessFunction(privateObject);
EventNFCChangedEmitterPtr emitter(new EventNFCChangedEmitter);
emitter->setListener(&NFCStaticController::getInstance());
emitter->setEventPrivateData(DPL::StaticPointerCast<EventNFCChanged::PrivateDataType>(privateData));
size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) {
LoggerD("JSNFCAdapter::unsetNFCTagListener Enter");
- AceSecurityStatus status = NFC_CHECK_ACCESS(NFC_FUNCTION_API_TAG_FUNCS);
- TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
-
NFCAdapterPrivObject* privateObject = static_cast<NFCAdapterPrivObject*>(JSObjectGetPrivate(thisObject));
if (!privateObject) {
LoggerE("private object is null");
return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Type Mismatch");
}
+ TIZEN_CHECK_ACCESS(context, exception, privateObject,
+ NFC_FUNCTION_API_TAG_FUNCS);
+
Try {
INFCAdapterPtr nfcAdapter(privateObject->getObject());
size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) {
LoggerD("JSNFCAdapter::unsetPeerListener Enter");
- AceSecurityStatus status = NFC_CHECK_ACCESS(NFC_FUNCTION_API_P2P_FUNCS);
- TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
-
NFCAdapterPrivObject* privateObject = static_cast<NFCAdapterPrivObject*>(JSObjectGetPrivate(thisObject));
if (!privateObject) {
LoggerE("private object is null");
return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Type Mismatch");
}
+ TIZEN_CHECK_ACCESS(context, exception, privateObject,
+ NFC_FUNCTION_API_P2P_FUNCS);
Try {
- INFCAdapterPtr nfcAdapter( privateObject->getObject() );
+ INFCAdapterPtr nfcAdapter( privateObject->getObject());
nfcAdapter->unsetPeerListener();
JSValueRef* exception) {
LoggerD("JSNFCAdapter::getCachedMessage Enter");
- AceSecurityStatus status = NFC_CHECK_ACCESS(NFC_FUNCTION_API_COMMON_FUNCS);
- TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
-
NFCAdapterPrivObject* privateObject = static_cast<NFCAdapterPrivObject*>(JSObjectGetPrivate(thisObject));
if (!privateObject) {
LoggerE("private object is null");
return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Type Mismatch");
}
- JSContextRef global_context = GlobalContextManager::getInstance()->getGlobalContext(context);
+ TIZEN_CHECK_ACCESS(context, exception, privateObject,
+ NFC_FUNCTION_API_COMMON_FUNCS);
+
Try {
INFCAdapterPtr nfcAdapter(privateObject->getObject());
void *cachedMessage = nfcAdapter->getCachedMessage();
- if (cachedMessage != NULL)
+ if (cachedMessage != NULL) {
+ JSContextRef global_context = GlobalContextManager::getInstance()->getGlobalContext(context);
return JSNdefMessage::createJSObject(global_context, cachedMessage);
+ }
return JSValueMakeNull(context);
} Catch (WrtDeviceApis::Commons::UnknownException) {
LoggerE("Exception: " << _rethrown_exception.GetMessage());
JSValueRef* exception) {
LoggerD("Enter");
- AceSecurityStatus status = NFC_CHECK_ACCESS(NFC_FUNCTION_API_ADMIN_FUNCS);
- TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
-
- JSContextRef global_context = GlobalContextManager::getInstance()->getGlobalContext(context);
-
NFCAdapterPrivObject* privateObject = static_cast<NFCAdapterPrivObject*>(JSObjectGetPrivate(thisObject));
if (!privateObject) {
LoggerE("private object is null");
return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Type Mismatch");
}
- INFCAdapterPtr nfcAdapter(privateObject->getObject());
+ TIZEN_CHECK_ACCESS(context, exception, privateObject,
+ NFC_FUNCTION_API_ADMIN_FUNCS);
+
+ JSContextRef global_context = GlobalContextManager::getInstance()->getGlobalContext(context);
JSCallbackManagerPtr callbackManager = JSCallbackManager::createObject(global_context, NULL, NULL, true, true);
Try {
if (validator.toFunction(2, true))
callbackManager->setOnError(arguments[2]);
- NFCConverter nfcConverter(context);
-
EventNFCChangedSetPoweredPtr event(new EventNFCChangedSetPowered(state));
- event->setPrivateData( DPL::StaticPointerCast<IEventPrivateData>(callbackManager) );
+ event->setPrivateData(DPL::StaticPointerCast<IEventPrivateData>(callbackManager) );
event->setForAsynchronousCall(&NFCStaticController::getInstance());
callbackManager->setObject(thisObject);
+ INFCAdapterPtr nfcAdapter(privateObject->getObject());
nfcAdapter->setPowered(event);
NFCAsyncCallbackManagerSingleton::Instance().registerCallbackManager(callbackManager, global_context);
return JSValueMakeUndefined(context);