#include "NFCListenerManager.h"
#include "NFCFactory.h"
#include "EventTargetAction.h"
-#include "plugin_config.h"
+#include "plugin_config_impl.h"
#include <Logger.h>
JSClassRef JSNFCTarget::m_jsClassRef = JSClassCreate(JSNFCTarget::getClassInfo());
-JSObjectRef JSNFCTarget::createJSObject(JSContextRef context, void *tagHandle) {
+JSObjectRef JSNFCTarget::createJSObject(JSContextRef context, void *tagHandle, EventNFCChangedPrivateDataPtr eventNFCChangedPriv) {
LoggerD("entered");
INFCTargetPtr nfcTarget = NFCFactory::getInstance().createNFCTargetObject(tagHandle);
ThrowMsg(NullPointerException, "Can not new a NFCTarget object");
}
+ priv->copyAceCheckAccessFunction(eventNFCChangedPriv.Get());
return JSObjectMake(context, getClassRef(), priv);
}
{
LoggerD("Entered ");
- AceSecurityStatus status = NFC_CHECK_ACCESS(NFC_FUNCTION_API_P2P_FUNCS);
- TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
-
- JSContextRef global_context = GlobalContextManager::getInstance()->getGlobalContext(context);
-
NFCTargetPrivObject* privateObject = static_cast<NFCTargetPrivObject*>(JSObjectGetPrivate(thisObject));
if (NULL == privateObject) {
LoggerE("private object is null");
return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Type Mismatch");
}
-
- INFCTargetPtr nfcTarget(privateObject->getObject());
+
+ TIZEN_CHECK_ACCESS(context, exception, privateObject,
+ NFC_FUNCTION_API_P2P_FUNCS);
Try {
ArgumentValidator validator(context, argumentCount, arguments);
if (validator.toFunction(0))
onSuccessForCbm = arguments[0];
+ JSContextRef global_context = GlobalContextManager::getInstance()->getGlobalContext(context);
JSCallbackManagerPtr callbackManager = JSCallbackManager::createObject(global_context, onSuccessForCbm, NULL, true, true);
EventTargetActionReceiveEmitterPtr emitter(new EventTargetActionReceiveEmitter);
emitter->setListener(&NFCResponseDispatcher::getInstance());
emitter->setEventPrivateData(DPL::StaticPointerCast<EventTargetActionReceive::PrivateDataType>(callbackManager));
+ INFCTargetPtr nfcTarget(privateObject->getObject());
nfcTarget->setReceiveNDEFListener(emitter);
NFCListenerCancellerPtr canceller = NFCListenerCancellerPtr(new NFCListenerCanceller(global_context, thisObject, static_cast<long>(ID_NFCPEER_RECEIVENDEF_LISTENER)));
{
LoggerD("Entered ");
Try {
- AceSecurityStatus status = NFC_CHECK_ACCESS(NFC_FUNCTION_API_P2P_FUNCS);
- TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
-
- JSContextRef global_context = GlobalContextManager::getInstance()->getGlobalContext(context);
-
NFCTargetPrivObject* privateObject = static_cast<NFCTargetPrivObject*>(JSObjectGetPrivate(thisObject));
if (NULL == 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);
+
INFCTargetPtr nfcTarget(privateObject->getObject());
nfcTarget->unsetReceiveNDEFListener();
+ JSContextRef global_context = GlobalContextManager::getInstance()->getGlobalContext(context);
NFCListenerCancellerPtr canceller = NFCListenerCancellerPtr(new NFCListenerCanceller(global_context, thisObject, static_cast<long>(ID_NFCPEER_RECEIVENDEF_LISTENER)));
IListenerItemPtr listenerItem = DPL::StaticPointerCast<IListenerItem>(canceller);
NFCListenerManagerSingleton::Instance().unregisterListener(listenerItem);
{
LoggerD("Entered ");
- AceSecurityStatus status = NFC_CHECK_ACCESS(NFC_FUNCTION_API_P2P_FUNCS);
- TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
-
- JSContextRef global_context = GlobalContextManager::getInstance()->getGlobalContext(context);
-
- NFCConverter convert(context);
-
NFCTargetPrivObject* privateObject = static_cast<NFCTargetPrivObject*>(JSObjectGetPrivate(thisObject));
if (NULL == privateObject) {
LoggerE("private object is null");
return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Type Mismatch");
}
- INFCTargetPtr nfcTarget(privateObject->getObject());
+ TIZEN_CHECK_ACCESS(context, exception, privateObject,
+ NFC_FUNCTION_API_P2P_FUNCS);
+
+ JSContextRef global_context = GlobalContextManager::getInstance()->getGlobalContext(context);
+
JSCallbackManagerPtr callbackManager = JSCallbackManager::createObject(global_context, NULL, NULL, true, true);
Try {
ArgumentValidator validator(context, argumentCount, arguments);
if (validator.toFunction(2, true))
callbackManager->setOnError(arguments[2]);
- JSContextRef global_context = GlobalContextManager::getInstance()->getGlobalContext(context);
- NFCConverter convert(global_context);
void *messageHandle = NULL;
try {
NdefMessagePrivObject* ndefMessagePrivateObj = static_cast<NdefMessagePrivObject*>(JSObjectGetPrivate(ndefMessageObj));
}
INdefMessagePtr ndefMessage(ndefMessagePrivateObj->getObject());
JSValueRef recordsValue = (ndefMessage->mLocalProperty).getProperty(global_context, TIZEN_NDEFMESSAGE_RECORDS);
+ NFCConverter convert(global_context);
std::vector<void *> records = convert.toVectorOfRecordHandles(recordsValue);
messageHandle = ndefMessage->makeNdefMessageHandle(records);
} catch (WrtDeviceApis::Commons::Exception& err) {
EventTargetActionSendPtr event(new EventTargetActionSend(messageHandle));
callbackManager->setObject(thisObject);
- event->setPrivateData( DPL::StaticPointerCast<IEventPrivateData>(callbackManager));
+ event->setPrivateData(DPL::StaticPointerCast<IEventPrivateData>(callbackManager));
event->setForAsynchronousCall(&NFCResponseDispatcher::getInstance());
+ INFCTargetPtr nfcTarget(privateObject->getObject());
nfcTarget->sendNDEF(event);
NFCAsyncCallbackManagerSingleton::Instance().registerCallbackManager(callbackManager, global_context);
return JSValueMakeUndefined(context);