-result
-_AppControlImpl::StartOsp(const IList* pDataList, IAppControlEventListener* pListener)
-{
- SysLog(NID_APP, "Enter");
- result r = E_SUCCESS;
-
- _AppArg* pArg = new (std::nothrow) _AppArg;
- SysTryReturnResult(NID_APP, pArg != null, E_OUT_OF_MEMORY, "Argument allocation failure.");
-
- pArg->Construct(*this, pDataList);
-
- _AppControlManager* pImpl = _AppControlManager::GetInstance();
- int req = _REQ_ID_INVALID;
-
- if (pListener)
- {
- _AppControlManager::_RequestGuard reqObj = _AppControlManager::_RequestGuard(*pImpl, pArg, AppControlCbLegacy, pListener, _property);
- req = reqObj.GetRequestNumber();
-
- _processId = pImpl->Launch(_path, pArg, req);
-
- if (_processId < 0)
- {
- reqObj.Invalidate();
- r = GetLastResult();
- SysLog(NID_APP, "[%s]Launching(%ls) is failed" , GetErrorMessage(r), _path.GetPointer());
- return r;
- }
- }
- else
- {
- _processId = pImpl->Launch(_path, pArg);
- delete pArg;
- SysTryReturnResult(NID_APP, _processId >= 0, GetLastResult(), "Launching(%ls) is failed", _path.GetPointer());
- }
- SysLog(NID_APP, "Exit");
-
- return r;
-}
-
-result
-_AppControlImpl::StartOsp(const String* pUriData, const String* pMimeType, const IMap* pDataList, IAppControlResponseListener* pListener)
-{
- SysLog(NID_APP, "Enter");
- result r = E_SUCCESS;
-
- _AppArg* pArg = new (std::nothrow) _AppArg;
- SysTryReturnResult(NID_APP, pArg != null, E_OUT_OF_MEMORY, "Argument allocation failure.");
-
- pArg->Construct(*this, pUriData, pMimeType, pDataList);
-
- _AppControlManager* pImpl = _AppControlManager::GetInstance();
- int req = _REQ_ID_INVALID;
-
- if (pListener)
- {
- _AppControlManager::_RequestGuard reqObj = _AppControlManager::_RequestGuard(*pImpl, pArg, AppControlCb, pListener, _property);
- req = reqObj.GetRequestNumber();
-
- if (_ThreadImpl::GetCurrentThreadImpl()->GetThreadType() == THREAD_TYPE_EVENT_DRIVEN)
- {
- _AppControlResponseEvent* pAppControlResponseEvent = new (std::nothrow) _AppControlResponseEvent();
- if (pAppControlResponseEvent != null)
- {
- r = pAppControlResponseEvent->Construct();
- SysTryLog(NID_APP, r == E_SUCCESS, "[%s]_AppControlResponseEvent::Construct() is failed", GetErrorMessage(r));
-
- r = pAppControlResponseEvent->AddListener(*this, true);
- SysTryLog(NID_APP, r == E_SUCCESS, "[%s]_AppControlResponseEvent::AddListener() is failed", GetErrorMessage(r));
-
- IMapT<int, _AppControlResponseEvent*>* pResponseEventContainer = pImpl->GetAppControlResponseEventContainer();
- if (pResponseEventContainer != null)
- {
- pResponseEventContainer->Add(req, pAppControlResponseEvent);
- __appControlResponseEventList.Add(req);
- SysLog(NID_APP, "pResponseEvent gets added. reqId(%d)", req);
- }
- }
- }
-
- _processId = pImpl->Launch(_path, pArg, req);
- if (_processId < 0)
- {
- reqObj.Invalidate();
- r = GetLastResult();
- SysLog(NID_APP, "[%s]Launching(%ls) is failed" , GetErrorMessage(r), _path.GetPointer());
- return r;
- }
- }
- else
- {
- _processId = pImpl->Launch(_path, pArg);
- delete pArg;
- SysTryReturnResult(NID_APP, _processId >= 0, GetLastResult(), "Launching(%ls) is failed", _path.GetPointer());
- }
- SysLog(NID_APP, "Exit");
-
- return r;
-}