From 108ceae6e690627e5e68b84c9c1b90ee06e2f639 Mon Sep 17 00:00:00 2001 From: Hyunbin Lee Date: Tue, 9 Apr 2013 18:12:17 +0900 Subject: [PATCH] Refactor DataControl request list (2nd) Change-Id: If46950d3e2b8a56608a1e6c1a5015b9cdc1b91c9 Signed-off-by: Hyunbin Lee --- src/app/FApp_AppImpl.cpp | 197 ++++++++++++------------ src/app/FApp_DataControlManager.cpp | 77 +++++++-- src/app/FApp_DataControlManager.h | 40 ++++- src/app/FApp_DataControlProviderManagerImpl.cpp | 50 +++--- src/app/FApp_MapDataControlImpl.cpp | 110 +++++++------ src/app/FApp_SqlDataControlImpl.cpp | 147 ++++++++++-------- 6 files changed, 368 insertions(+), 253 deletions(-) diff --git a/src/app/FApp_AppImpl.cpp b/src/app/FApp_AppImpl.cpp index d942872..0d2e32f 100644 --- a/src/app/FApp_AppImpl.cpp +++ b/src/app/FApp_AppImpl.cpp @@ -80,16 +80,19 @@ namespace Tizen { namespace App _AppImpl* _AppImpl::__pAppImpl = null; bool _AppImpl::__isTerminationRequested = false; +#if 0 static const int _DATACONTROL_PACKET_INDEX_APPID = 0; static const int _DATACONTROL_PACKET_INDEX_REQUESTTYPE = 1; static const int _DATACONTROL_PACKET_INDEX_REQID = 2; static const int _DATACONTROL_PACKET_INDEX_PROVIDERID = 3; -static const int _DATACONTROL_PACKET_INDEX_DATAID = 4; -static const int _DATACONTROL_PACKET_INDEX_COLUMNCOUNT = 5; -static const int _DATACONTROL_PACKET_INDEX_DELETEWHERE = 5; -static const int _DATACONTROL_PACKET_INDEX_COLUMNLIST = 6; -static const int _DATACONTROL_PACKET_INDEX_INSERTMAP = 6; -static const int _DATACONTROL_PACKET_INDEX_UPDATEMAP = 6; +#endif +static const int _DATACONTROL_PACKET_INDEX_DATAID = 0; +static const int _DATACONTROL_PACKET_INDEX_COLUMNCOUNT = 1; +static const int _DATACONTROL_PACKET_INDEX_DELETEWHERE = 1; +static const int _DATACONTROL_PACKET_INDEX_MAPKEY = 1; +static const int _DATACONTROL_PACKET_INDEX_COLUMNLIST = 2; +static const int _DATACONTROL_PACKET_INDEX_INSERTMAP = 2; +static const int _DATACONTROL_PACKET_INDEX_UPDATEMAP = 2; struct charDeleter { @@ -746,11 +749,11 @@ _AppImpl::OnDataControlRequestReceived(const _AppArg& arg, RequestId reqId) ArrayList* pColumnList = null; HashMap* pInsertMap = null; HashMap* pUpdateMap = null; - String* pAppId = null; - String* pRequestType = null; - String* pProviderId = null; + String appId; + String reqType; + String providerId; String* pDataId = null; - String* pReqId = null; + String callerReqId; String* pColumnCount = null; String* pColumn = null; String* pValue = null; @@ -760,13 +763,6 @@ _AppImpl::OnDataControlRequestReceived(const _AppArg& arg, RequestId reqId) String* pNo = null; String* pCount = null; String empty(L"NULL"); -#if 0 - _DataControlResultSetImpl* pResultSetImpl = null; - String* pResult = null; - String* pObject = null; - String* pTempObject = null; - String* pTempFilePath = null; -#endif _AppArg resultArg; int type = 0; _DataControlRequestType requestType = _DATACONTROL_REQUEST_TYPE_UNDEFINED; @@ -775,41 +771,31 @@ _AppImpl::OnDataControlRequestReceived(const _AppArg& arg, RequestId reqId) int countPerPage = 0; int i = 0; int index = 0; - //ArrayList* pResultArgList = null; result r = E_SUCCESS; result res = E_SUCCESS; ArrayList* pList = null; String* pKey = null; String* pNewValue = null; String* pOldValue = null; -#if 0 - String* pResultCount = null; - String* pResultValue = null; -#endif - - SysLog(NID_APP, "[DC_PROVIDER] Data control request is received."); - //arg.Print(); - pList = arg.GetArgListN(0); - SysTryCatch(NID_APP, pList, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); + SysLog(NID_APP, "[DC_PROV_RECV] Data control request is received."); + //arg.Print(); // request info - // key-based - pAppId = dynamic_cast< String* >(pList->GetAt(_DATACONTROL_PACKET_INDEX_APPID)); // key(0) - SysTryCatch(NID_APP, pAppId, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); + // key-based request + appId = arg.GetCallerAppId(); - pRequestType = dynamic_cast< String* >(pList->GetAt(_DATACONTROL_PACKET_INDEX_REQUESTTYPE)); // key(1) - SysTryCatch(NID_APP, pRequestType, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); - Integer::Parse(*pRequestType, type); + reqType = arg.GetValue(OSP_K_DATACONTROL_REQUEST_TYPE); + Integer::Parse(reqType, type); requestType = static_cast< _DataControlRequestType >(type); - pReqId = dynamic_cast< String* >(pList->GetAt(_DATACONTROL_PACKET_INDEX_REQID)); // key(2) - SysTryCatch(NID_APP, pReqId, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); + callerReqId = arg.GetValue(OSP_K_REQUEST_ID); + providerId = arg.GetValue(OSP_K_DATACONTROL_PROVIDER); - pProviderId = dynamic_cast< String* >(pList->GetAt(_DATACONTROL_PACKET_INDEX_PROVIDERID)); // key(3) - SysTryCatch(NID_APP, pProviderId, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); + // list-based request + pList = _AppArg::GetListN(arg.GetBundle(), OSP_K_ARG); + SysTryCatch(NID_APP, pList, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid result object"); - // list-based - pDataId = dynamic_cast< String* >(pList->GetAt(_DATACONTROL_PACKET_INDEX_DATAID));// list(0): data ID + pDataId = dynamic_cast< String* >(pList->GetAt(_DATACONTROL_PACKET_INDEX_DATAID));// request list[0]: data ID SysTryCatch(NID_APP, pDataId, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); if (requestType >= _DATACONTROL_REQUEST_TYPE_SQL_QUERY && requestType <= _DATACONTROL_REQUEST_TYPE_SQL_DELETE) @@ -819,7 +805,7 @@ _AppImpl::OnDataControlRequestReceived(const _AppArg& arg, RequestId reqId) } else if (requestType >= _DATACONTROL_REQUEST_TYPE_MAP_QUERY && requestType <= _DATACONTROL_REQUEST_TYPE_MAP_DELETE) { - pKey = dynamic_cast< String* >(pList->GetAt(5)); // list[1] + pKey = dynamic_cast< String* >(pList->GetAt(_DATACONTROL_PACKET_INDEX_MAPKEY)); // request list[1] SysTryCatch(NID_APP, pKey, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); pMapListener = __pMapDataControlProviderEventListener; @@ -834,9 +820,9 @@ _AppImpl::OnDataControlRequestReceived(const _AppArg& arg, RequestId reqId) switch (requestType) { case _DATACONTROL_REQUEST_TYPE_SQL_QUERY: - SysLog(NID_APP, "[DC_PROVIDER] SqlDataControl SELECT"); + SysLog(NID_APP, "[DC_PROV_RECV] SqlDataControl SELECT"); - // list(1): selected column count + // request list[1]: selected column count pColumnCount = dynamic_cast< String* >(pList->GetAt(_DATACONTROL_PACKET_INDEX_COLUMNCOUNT)); SysTryCatch(NID_APP, pColumnCount, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); @@ -850,22 +836,22 @@ _AppImpl::OnDataControlRequestReceived(const _AppArg& arg, RequestId reqId) pColumnList = new (std::nothrow) ArrayList(); SysTryReturnVoidResult(NID_APP, pColumnList, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Insufficient memory."); pColumnList->Construct(); - SysLog(NID_APP, "[DC_PROVIDER] selected column count: %d", columnCount); + SysLog(NID_APP, "[DC_PROV_RECV] selected column count: %d", columnCount); i = 0; - while (i < columnCount) // list(2): column list + while (i < columnCount) // request list[2]: column list { pColumn = dynamic_cast< String* >(pList->GetAt(_DATACONTROL_PACKET_INDEX_COLUMNLIST + i)); SysTryCatch(NID_APP, pColumn != null, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); pColumnList->Add(*(new String(*pColumn))); - SysLog(NID_APP, "[DC_PROVIDER] column[%d]: %ls", i, pColumn->GetPointer()); + SysLog(NID_APP, "[DC_PROV_RECV] column[%d]: %ls", i, pColumn->GetPointer()); i++; } } i += _DATACONTROL_PACKET_INDEX_COLUMNLIST; - pWhere = dynamic_cast< String* >(pList->GetAt(i)); // list(3): where clause + pWhere = dynamic_cast< String* >(pList->GetAt(i)); // request list: where clause SysTryCatch(NID_APP, pWhere, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); if (pWhere->Equals(empty) == true) @@ -874,11 +860,11 @@ _AppImpl::OnDataControlRequestReceived(const _AppArg& arg, RequestId reqId) } else { - SysLog(NID_APP, "[DC_PROVIDER] pWhere: %ls", pWhere->GetPointer()); + SysLog(NID_APP, "[DC_PROV_RECV] pWhere: %ls", pWhere->GetPointer()); } i++; - pOrder = dynamic_cast< String* >(pList->GetAt(i)); // list(4): order clause + pOrder = dynamic_cast< String* >(pList->GetAt(i)); // request list: order clause SysTryCatch(NID_APP, pOrder, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); if (pOrder->Equals(empty) == true) @@ -887,35 +873,35 @@ _AppImpl::OnDataControlRequestReceived(const _AppArg& arg, RequestId reqId) } else { - SysLog(NID_APP, "[DC_PROVIDER] pOrder: %ls", pOrder->GetPointer()); + SysLog(NID_APP, "[DC_PROV_RECV] pOrder: %ls", pOrder->GetPointer()); } i++; - pNo = dynamic_cast (pList->GetAt(i)); // list(5): page number + pNo = dynamic_cast (pList->GetAt(i)); // request list: page number SysTryCatch(NID_APP, pNo, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); Integer::Parse(*pNo, pageNo); i++; - pCount = dynamic_cast (pList->GetAt(i)); // list(6): count per page + pCount = dynamic_cast (pList->GetAt(i)); // request list: count per page SysTryCatch(NID_APP, pCount, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); Integer::Parse(*pCount, countPerPage); - pSqlListener->OnSqlDataControlSelectRequestReceived(reqId, *pProviderId, *pDataId, pColumnList, + pSqlListener->OnSqlDataControlSelectRequestReceived(reqId, providerId, *pDataId, pColumnList, pWhere, pOrder); - SysLog(NID_APP, "[DC_PROVIDER] caller appId: %ls, requestType: %d, reqId: %ls, providerId: %ls, dataId: %ls, pColumnList: 0x%0x, pWhere: 0x%x, pOrder: 0x%x, pageNo: %d, countPerPage: %d", - pAppId->GetPointer(), requestType, pReqId->GetPointer(), pProviderId->GetPointer(), + SysLog(NID_APP, "[DC_PROV_RECV] caller appId: %ls, requestType: %d, caller reqId: %ls, providerId: %ls, dataId: %ls, pColumnList: 0x%0x, pWhere: 0x%x, pOrder: 0x%x, pageNo: %d, countPerPage: %d", + appId.GetPointer(), requestType, callerReqId.GetPointer(), providerId.GetPointer(), pDataId->GetPointer(), pColumnList, pWhere, pOrder, pageNo, countPerPage); break; case _DATACONTROL_REQUEST_TYPE_SQL_INSERT: - SysLog(NID_APP, "[DC_PROVIDER] SqlDataControl INSERT"); + SysLog(NID_APP, "[DC_PROV_RECV] SqlDataControl INSERT"); - // list(1): insert column count + // request list[1]: insert column count pColumnCount = dynamic_cast< String* >(pList->GetAt(_DATACONTROL_PACKET_INDEX_COLUMNCOUNT)); SysTryCatch(NID_APP, pColumnCount, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); Integer::Parse(*pColumnCount, columnCount); - SysLog(NID_APP, "[DC_PROVIDER] inserted column count: %d", columnCount); + SysLog(NID_APP, "[DC_PROV_RECV] inserted column count: %d", columnCount); pInsertMap = new (std::nothrow) HashMap(); SysTryReturnVoidResult(NID_APP, pInsertMap, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Insufficient memory."); @@ -923,35 +909,35 @@ _AppImpl::OnDataControlRequestReceived(const _AppArg& arg, RequestId reqId) i = 0; index = 0; - while (i < columnCount * 2) // list(2): column-value pairs + while (i < columnCount * 2) // request list[2]: column-value pairs { pColumn = dynamic_cast< String* >(pList->GetAt(_DATACONTROL_PACKET_INDEX_INSERTMAP + i++)); SysTryCatch(NID_APP, pColumn != null, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); - SysLog(NID_APP, "[DC_PROVIDER] column[%d]: %ls", index, pColumn->GetPointer()); + SysLog(NID_APP, "[DC_PROV_RECV] column[%d]: %ls", index, pColumn->GetPointer()); pValue = dynamic_cast< String* >(pList->GetAt(_DATACONTROL_PACKET_INDEX_INSERTMAP + i++)); SysTryCatch(NID_APP, pValue != null, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); - SysLog(NID_APP, "[DC_PROVIDER] value[%d]: %ls", index, pValue->GetPointer()); + SysLog(NID_APP, "[DC_PROV_RECV] value[%d]: %ls", index, pValue->GetPointer()); pInsertMap->Add(*(new String(*pColumn)), *(new String(*pValue))); index++; } - pSqlListener->OnSqlDataControlInsertRequestReceived(reqId, *pProviderId, *pDataId, *pInsertMap); + pSqlListener->OnSqlDataControlInsertRequestReceived(reqId, providerId, *pDataId, *pInsertMap); - SysLog(NID_APP, "[DC_PROVIDER] caller appId: %ls, requestType: %d, reqId: %ls, providerId: %ls, dataId: %ls, pInsertMap: 0x%x", - pAppId->GetPointer(), requestType, pReqId->GetPointer(), pProviderId->GetPointer(), + SysLog(NID_APP, "[DC_PROV_RECV] caller appId: %ls, requestType: %d, caller reqId: %ls, providerId: %ls, dataId: %ls, pInsertMap: 0x%x", + appId.GetPointer(), requestType, callerReqId.GetPointer(), providerId.GetPointer(), pDataId->GetPointer(), pInsertMap); break; case _DATACONTROL_REQUEST_TYPE_SQL_UPDATE: - SysLog(NID_APP, "[DC_PROVIDER] SqlDataControl UPDATE"); + SysLog(NID_APP, "[DC_PROV_RECV] SqlDataControl UPDATE"); - // list(1): updated column count + // request list[1]: updated column count pColumnCount = dynamic_cast< String* >(pList->GetAt(_DATACONTROL_PACKET_INDEX_COLUMNCOUNT)); SysTryCatch(NID_APP, pColumnCount, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); Integer::Parse(*pColumnCount, columnCount); - SysLog(NID_APP, "[DC_PROVIDER] updated column count: %d", columnCount); + SysLog(NID_APP, "[DC_PROV_RECV] updated column count: %d", columnCount); pUpdateMap = new (std::nothrow) HashMap(); SysTryReturnVoidResult(NID_APP, pUpdateMap, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Insufficient memory."); @@ -959,21 +945,21 @@ _AppImpl::OnDataControlRequestReceived(const _AppArg& arg, RequestId reqId) i = 0; index = 0; - while (i < columnCount * 2) // list(2): column-value pairs + while (i < columnCount * 2) // request list[2]: column-value pairs { pColumn = dynamic_cast< String* >(pList->GetAt(_DATACONTROL_PACKET_INDEX_UPDATEMAP + i++)); SysTryCatch(NID_APP, pColumn != null, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); - SysLog(NID_APP, "[DC_PROVIDER] column[%d]: %ls", index, pColumn->GetPointer()); + SysLog(NID_APP, "[DC_PROV_RECV] column[%d]: %ls", index, pColumn->GetPointer()); pValue = dynamic_cast< String* >(pList->GetAt(_DATACONTROL_PACKET_INDEX_UPDATEMAP + i++)); SysTryCatch(NID_APP, pValue != null, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); - SysLog(NID_APP, "[DC_PROVIDER] value[%d]: %ls", index, pValue->GetPointer()); + SysLog(NID_APP, "[DC_PROV_RECV] value[%d]: %ls", index, pValue->GetPointer()); pUpdateMap->Add(*(new String(*pColumn)), *(new String(*pValue))); index++; } - // list(3): where clause + // request list: where clause pWhere = dynamic_cast< String* >(pList->GetAt(_DATACONTROL_PACKET_INDEX_UPDATEMAP + i)); SysTryCatch(NID_APP, pWhere, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); @@ -983,19 +969,19 @@ _AppImpl::OnDataControlRequestReceived(const _AppArg& arg, RequestId reqId) } else { - SysLog(NID_APP, "[DC_PROVIDER] pWhere: %ls", pWhere->GetPointer()); + SysLog(NID_APP, "[DC_PROV_RECV] pWhere: %ls", pWhere->GetPointer()); } - pSqlListener->OnSqlDataControlUpdateRequestReceived(reqId, *pProviderId, *pDataId, *pUpdateMap, pWhere); + pSqlListener->OnSqlDataControlUpdateRequestReceived(reqId, providerId, *pDataId, *pUpdateMap, pWhere); - SysLog(NID_APP, "[DC_PROVIDER] caller appId: %ls, requestType: %d, reqId: %ls, providerId: %ls, dataId: %ls, pUpdateMap: 0x%x, pWhere: 0x%x", - pAppId->GetPointer(), requestType, pReqId->GetPointer(), pProviderId->GetPointer(), + SysLog(NID_APP, "[DC_PROV_RECV] caller appId: %ls, requestType: %d, caller reqId: %ls, providerId: %ls, dataId: %ls, pUpdateMap: 0x%x, pWhere: 0x%x", + appId.GetPointer(), requestType, callerReqId.GetPointer(), providerId.GetPointer(), pDataId->GetPointer(), pUpdateMap, pWhere); break; case _DATACONTROL_REQUEST_TYPE_SQL_DELETE: - SysLog(NID_APP, "[DC_PROVIDER] SqlDataControl DELETE"); + SysLog(NID_APP, "[DC_PROV_RECV] SqlDataControl DELETE"); - // list(1): where clause + // request list[1]: where clause pWhere = dynamic_cast< String* >(pList->GetAt(_DATACONTROL_PACKET_INDEX_DELETEWHERE)); SysTryCatch(NID_APP, pWhere, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); @@ -1005,59 +991,76 @@ _AppImpl::OnDataControlRequestReceived(const _AppArg& arg, RequestId reqId) } else { - SysLog(NID_APP, "[DC_PROVIDER] pWhere: %ls", pWhere->GetPointer()); + SysLog(NID_APP, "[DC_PROV_RECV] pWhere: %ls", pWhere->GetPointer()); } - pSqlListener->OnSqlDataControlDeleteRequestReceived(reqId, *pProviderId, *pDataId, pWhere); + pSqlListener->OnSqlDataControlDeleteRequestReceived(reqId, providerId, *pDataId, pWhere); - SysLog(NID_APP, "[DC_PROVIDER] caller appId: %ls, requestType: %d, reqId: %ls, providerId: %ls, dataId: %ls, pWhere: 0x%x", - pAppId->GetPointer(), requestType, pReqId->GetPointer(), pProviderId->GetPointer(), + SysLog(NID_APP, "[DC_PROV_RECV] caller appId: %ls, requestType: %d, caller reqId: %ls, providerId: %ls, dataId: %ls, pWhere: 0x%x", + appId.GetPointer(), requestType, callerReqId.GetPointer(), providerId.GetPointer(), pDataId->GetPointer(), pWhere); break; case _DATACONTROL_REQUEST_TYPE_MAP_QUERY: - pNo = dynamic_cast (pList->GetAt(6)); // list[2] + SysLog(NID_APP, "[DC_PROV_RECV] MapDataControl GetValue"); + + pNo = dynamic_cast (pList->GetAt(2)); // request list[2] SysTryCatch(NID_APP, pNo, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); Integer::Parse(*pNo, pageNo); - pCount = dynamic_cast (pList->GetAt(7)); //list[3] + pCount = dynamic_cast (pList->GetAt(3)); // request list[3] SysTryCatch(NID_APP, pCount, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); Integer::Parse(*pCount, countPerPage); - pMapListener->OnMapDataControlGetValueRequestReceived(reqId, *pProviderId, *pDataId, *pKey); + pMapListener->OnMapDataControlGetValueRequestReceived(reqId, providerId, *pDataId, *pKey); + + SysLog(NID_APP, "[DC_PROV_RECV] caller appId: %ls, requestType: %d, caller reqId: %ls, providerId: %ls, dataId: %ls, key: %ls, pageNo: %d, countPerPage: %d", + appId.GetPointer(), requestType, callerReqId.GetPointer(), providerId.GetPointer(), + pDataId->GetPointer(), pKey->GetPointer(), pageNo, countPerPage); break; case _DATACONTROL_REQUEST_TYPE_MAP_INSERT: - pValue = dynamic_cast (pList->GetAt(6)); // list[2] + SysLog(NID_APP, "[DC_PROV_RECV] MapDataControl AddValue"); + + pValue = dynamic_cast (pList->GetAt(2)); // request list[2] SysTryCatch(NID_APP, pValue, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); - pMapListener->OnMapDataControlAddValueRequestReceived(reqId, *pProviderId, *pDataId, *pKey, *pValue); + pMapListener->OnMapDataControlAddValueRequestReceived(reqId, providerId, *pDataId, *pKey, *pValue); + + SysLog(NID_APP, "[DC_PROV_RECV] caller appId: %ls, requestType: %d, caller reqId: %ls, providerId: %ls, dataId: %ls, key: %ls, value: %ls", + appId.GetPointer(), requestType, callerReqId.GetPointer(), providerId.GetPointer(), + pDataId->GetPointer(), pKey->GetPointer(), pValue->GetPointer()); break; case _DATACONTROL_REQUEST_TYPE_MAP_UPDATE: - pOldValue = dynamic_cast (pList->GetAt(6)); // list[2] + SysLog(NID_APP, "[DC_PROV_RECV] MapDataControl SetValue"); + + pOldValue = dynamic_cast (pList->GetAt(2)); // request list[2] SysTryCatch(NID_APP, pOldValue, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); - pNewValue = dynamic_cast (pList->GetAt(7)); // list[3] + pNewValue = dynamic_cast (pList->GetAt(3)); // request list[3] SysTryCatch(NID_APP, pNewValue, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); - pMapListener->OnMapDataControlSetValueRequestReceived(reqId, *pProviderId, *pDataId, *pKey, *pOldValue, *pNewValue); + pMapListener->OnMapDataControlSetValueRequestReceived(reqId, providerId, *pDataId, *pKey, *pOldValue, *pNewValue); + + SysLog(NID_APP, "[DC_PROV_RECV] caller appId: %ls, requestType: %d, caller reqId: %ls, providerId: %ls, dataId: %ls, key: %ls, oldValue: %ls, newValue: %ls", + appId.GetPointer(), requestType, callerReqId.GetPointer(), providerId.GetPointer(), + pDataId->GetPointer(), pKey->GetPointer(), pOldValue->GetPointer(), pNewValue->GetPointer()); break; case _DATACONTROL_REQUEST_TYPE_MAP_DELETE: - pValue = dynamic_cast (pList->GetAt(6)); // list[2] + SysLog(NID_APP, "[DC_PROV_RECV] MapDataControl RemoveValue"); + + pValue = dynamic_cast (pList->GetAt(2)); // request list[2] SysTryCatch(NID_APP, pValue, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); - pMapListener->OnMapDataControlRemoveValueRequestReceived(reqId, *pProviderId, *pDataId, *pKey, *pValue); + pMapListener->OnMapDataControlRemoveValueRequestReceived(reqId, providerId, *pDataId, *pKey, *pValue); + + SysLog(NID_APP, "[DC_PROV_RECV] caller appId: %ls, requestType: %d, caller reqId: %ls, providerId: %ls, dataId: %ls, key: %ls, value: %ls", + appId.GetPointer(), requestType, callerReqId.GetPointer(), providerId.GetPointer(), + pDataId->GetPointer(), pKey->GetPointer(), pValue->GetPointer()); break; default: SysTryCatch(NID_APP, false, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid request"); break; } - if (requestType >= _DATACONTROL_REQUEST_TYPE_MAP_QUERY && requestType <= _DATACONTROL_REQUEST_TYPE_MAP_DELETE) - { - SysLog(NID_APP, "caller appId: %ls, requestType: %d, reqId: %ls, providerId: %ls, dataId: %ls, key: %ls", - pAppId->GetPointer(), requestType, pReqId->GetPointer(), pProviderId->GetPointer(), - pDataId->GetPointer(), pKey->GetPointer()); - } - if (pColumnList) { pColumnList->RemoveAll(true); diff --git a/src/app/FApp_DataControlManager.cpp b/src/app/FApp_DataControlManager.cpp index 3a8a6fa..b485314 100644 --- a/src/app/FApp_DataControlManager.cpp +++ b/src/app/FApp_DataControlManager.cpp @@ -21,8 +21,13 @@ */ #include +#include +#include +#include #include +#include + #include "FApp_DataControlManager.h" using namespace Tizen::Base; @@ -31,33 +36,85 @@ using namespace Tizen::Base::Collection; namespace Tizen { namespace App { +_DataControlManager* _DataControlManager::__pDataControlManagerInstance = null; + _DataControlManager::_DataControlManager(void) + : __pDataControlRequestList(null) { - __pDataControlRequestList.Construct(); + __pDataControlRequestList = new (std::nothrow) HashMap(SingleObjectDeleter); + SysTryReturnVoidResult(NID_APP, __pDataControlRequestList != null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient."); + + __pDataControlRequestList->Construct(); } _DataControlManager::~_DataControlManager(void) { + delete __pDataControlRequestList; +} + +void +_DataControlManager::InitSingleton(void) +{ + _DataControlManager* pInst = new (std::nothrow) _DataControlManager(); + SysTryReturnVoidResult(NID_APP, pInst != null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient."); + + __pDataControlManagerInstance = pInst; + + std::atexit(DestroySingleton); + return; +} + +void +_DataControlManager::DestroySingleton(void) +{ + delete __pDataControlManagerInstance; } _DataControlManager* _DataControlManager::GetInstance(void) { - static _DataControlManager inst; - return &inst; + static pthread_once_t onceBlock = PTHREAD_ONCE_INIT; + + if (__pDataControlManagerInstance == null) + { + ClearLastResult(); + pthread_once(&onceBlock, InitSingleton); + result r = GetLastResult(); + if (IsFailed(r)) + { + onceBlock = PTHREAD_ONCE_INIT; + SysPropagate(NID_APP, r); + } + } + + return __pDataControlManagerInstance; } -void -_DataControlManager::AddEvent(int reqId, Object* pObj) +result +_DataControlManager::AddRequestInfo(Integer* pReqId, _DataControlRequestInfo* pReqInfo) +{ + //SysLog(NID_APP, "DataControl request list count: %d", __pDataControlRequestList->GetCount()); + return __pDataControlRequestList->Add(pReqId, pReqInfo); +} + +_DataControlRequestInfo* +_DataControlManager::GetRequestInfo(Integer& reqId) { - __pDataControlRequestList.Add(new (std::nothrow) Integer(reqId), pObj); + result r = E_SUCCESS; + + Object* pObj = __pDataControlRequestList->GetValue(reqId); + SysTryReturn(NID_APP, pObj != null, null, GetLastResult(), "[%s] Propagating to caller...", GetErrorMessage(GetLastResult())); + + _DataControlRequestInfo* pReqInfo = dynamic_cast< _DataControlRequestInfo* >(pObj); + SysTryReturn(NID_APP, pReqInfo != null, null, r, "[E_SYSTEM] invalid request info"); + + return pReqInfo; } -Object* -_DataControlManager::GetEvent(int reqId) +void +_DataControlManager::RemoveRequestInfo(Integer& reqId) { - Integer key(reqId); - return __pDataControlRequestList.GetValue(key); + __pDataControlRequestList->Remove(reqId); } }} // Tizen::App diff --git a/src/app/FApp_DataControlManager.h b/src/app/FApp_DataControlManager.h index 6dd8349..9d1e232 100644 --- a/src/app/FApp_DataControlManager.h +++ b/src/app/FApp_DataControlManager.h @@ -25,27 +25,61 @@ #include #include +#include namespace Tizen { namespace App { +class _DataControlRequestInfo + : public Tizen::Base::Object +{ +public: + _DataControlRequestInfo(Tizen::Base::Runtime::Event* pEvent) + { + __pEvent = pEvent; + } + + virtual ~_DataControlRequestInfo(void) + { + } + + Tizen::Base::Runtime::Event* GetEvent(void) + { + return __pEvent; + } +private: + _DataControlRequestInfo(void) + : __pEvent(null) + { + } +private: + Tizen::Base::Runtime::Event* __pEvent; +}; + class _DataControlManager : public Tizen::Base::Object { public: static _DataControlManager* GetInstance(void); - void AddEvent(int reqId, Tizen::Base::Object* pObj); + result AddRequestInfo(Tizen::Base::Integer* pReqId, _DataControlRequestInfo* pReqInfo); + + _DataControlRequestInfo* GetRequestInfo(Tizen::Base::Integer& reqId); - Tizen::Base::Object* GetEvent(int reqId); + void RemoveRequestInfo(Tizen::Base::Integer& reqId); private: _DataControlManager(void); virtual ~_DataControlManager(void); + static void InitSingleton(void); + + static void DestroySingleton(void); + private: - Tizen::Base::Collection::HashMap __pDataControlRequestList; + static _DataControlManager* __pDataControlManagerInstance; + Tizen::Base::Collection::HashMap* __pDataControlRequestList; }; // _DataControlManager diff --git a/src/app/FApp_DataControlProviderManagerImpl.cpp b/src/app/FApp_DataControlProviderManagerImpl.cpp index 738b385..d890672 100644 --- a/src/app/FApp_DataControlProviderManagerImpl.cpp +++ b/src/app/FApp_DataControlProviderManagerImpl.cpp @@ -80,13 +80,12 @@ _DataControlProviderManagerImpl::SendDataControlResult(RequestId reqId, _DataCon IDbEnumerator* pDbEnum, IList* pResultValueList, long long insertRowId, bool providerResult, const String* pErrorMsg) { ArrayList* pList = null; - String* pAppId = null; + String appId; String reqType; int type = 0; _DataControlRequestType requestType = _DATACONTROL_REQUEST_TYPE_UNDEFINED; - String* pProviderId = null; - String* pCallerReqId = null; - int callerReqId = -1; + String providerId; + String callerReqId; ArrayList* pResultArgList = null; String* pResult = null; String* pErrorMessage = null; @@ -104,23 +103,16 @@ _DataControlProviderManagerImpl::SendDataControlResult(RequestId reqId, _DataCon _AppControlManager* pAppMgr = _AppControlManager::GetInstance(); SysTryReturnResult(NID_APP, pAppMgr, E_SYSTEM, "Failed to get instance."); - _ResultInfo* pResultInfo = pAppMgr->__resultManager.FindItem(static_cast< int >(reqId)); + _ResultInfo* pResultInfo = pAppMgr->__resultManager.FindItem(static_cast< int >(reqId)); // provider reqId SysTryReturnResult(NID_APP, pResultInfo, E_OBJ_NOT_FOUND, "The data control request specified with the reqId (%ld) did not exist.", reqId); - const _AppArg& arg = pResultInfo->arg; - - pList = arg.GetArgListN(0); - SysTryCatch(NID_APP, pList, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid result object"); + const _AppArg& arg = pResultInfo->arg; // request info // key-based request - pAppId = dynamic_cast< String* >(pList->GetAt(0)); // request key[0] - SysTryCatch(NID_APP, pAppId, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid result object"); - reqType = arg.GetValue(OSP_K_DATACONTROL_REQUEST_TYPE); Integer::Parse(reqType, type); requestType = static_cast< _DataControlRequestType >(type); - if (providerResult == true && apiType != requestType) { if ((apiType == _DATACONTROL_REQUEST_TYPE_SQL_UPDATE /*UpdateDelete*/ && requestType == _DATACONTROL_REQUEST_TYPE_SQL_DELETE) || @@ -136,17 +128,20 @@ _DataControlProviderManagerImpl::SendDataControlResult(RequestId reqId, _DataCon } } - pCallerReqId = dynamic_cast< String* >(pList->GetAt(2)); // request key[2] - SysTryCatch(NID_APP, pCallerReqId, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid result object"); - Integer::Parse(*pCallerReqId, callerReqId); + appId = arg.GetCallerAppId(); + callerReqId = arg.GetValue(OSP_K_REQUEST_ID); + providerId = arg.GetValue(OSP_K_DATACONTROL_PROVIDER); - pProviderId = dynamic_cast< String* >(pList->GetAt(3)); // request key[3] - SysTryCatch(NID_APP, pProviderId, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid result object"); - - pDataId = dynamic_cast< String* >(pList->GetAt(4)); // list[0] + // list-based request + pList = _AppArg::GetListN(arg.GetBundle(), OSP_K_ARG); + SysTryCatch(NID_APP, pList, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid result object"); + pDataId = dynamic_cast< String* >(pList->GetAt(0)); // request list[0] SysTryCatch(NID_APP, pDataId, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid result object"); - // Serializes the result + SysLog(NID_APP, "[DC_PROV_SEND] > appId: %ls, requestType: %d, callerReqId: %ls, providerId: %ls, dataId: %ls", + appId.GetPointer(), requestType, callerReqId.GetPointer(), providerId.GetPointer(), pDataId->GetPointer()); + + // Serializes result pResultArgList = new (std::nothrow) ArrayList(); SysTryCatch(NID_APP, pResultArgList, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory was insufficient."); @@ -187,8 +182,8 @@ _DataControlProviderManagerImpl::SendDataControlResult(RequestId reqId, _DataCon "[E_SYSTEM] The method cannot proceed due to a severe system error."); String tempFilePath(_DATACONTROL_RESULTSET_DIR); - tempFilePath.Append(*pAppId); - tempFilePath.Append(*pCallerReqId); + tempFilePath.Append(appId); + tempFilePath.Append(callerReqId); pTempFilePath = new (std::nothrow) String(tempFilePath); } else @@ -218,13 +213,14 @@ _DataControlProviderManagerImpl::SendDataControlResult(RequestId reqId, _DataCon if (pResultValueList) { // list-based request - pNo = dynamic_cast< String* >(pList->GetAt(6)); // request list[2] + pNo = dynamic_cast< String* >(pList->GetAt(2)); // request list[2] SysTryCatch(NID_APP, pNo, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid result object"); Integer::Parse(*pNo, pageNo); - pCount = dynamic_cast< String* >(pList->GetAt(7)); // request list[3] + pCount = dynamic_cast< String* >(pList->GetAt(3)); // request list[3] SysTryCatch(NID_APP, pCount, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid result object"); Integer::Parse(*pCount, countPerPage); + SysLog(NID_APP, "[DC_PROV_SEND] pageNo: %d, countPerPage: %d", pageNo, countPerPage); String resultCount; int num = pResultValueList->GetCount(); @@ -274,9 +270,9 @@ _DataControlProviderManagerImpl::SendDataControlResult(RequestId reqId, _DataCon r = resultArg.ConstructResult(arg, pResultArgList); SysTryCatch(NID_APP, !IsFailed(r), r = E_SYSTEM, r, "[%s] Propagating.", GetErrorMessage(r)); - resultArg.UpdateRequestId(callerReqId); + resultArg.UpdateKeyValue(OSP_K_REQUEST_ID, callerReqId); resultArg.UpdateKeyValue(OSP_K_DATACONTROL_REQUEST_TYPE, reqType); - resultArg.UpdateKeyValue(OSP_K_DATACONTROL_PROVIDER, *pProviderId); + resultArg.UpdateKeyValue(OSP_K_DATACONTROL_PROVIDER, providerId); resultArg.UpdateKeyValue(OSP_K_DATACONTROL_DATA, *pDataId); //resultArg.Print(); diff --git a/src/app/FApp_MapDataControlImpl.cpp b/src/app/FApp_MapDataControlImpl.cpp index 5d48ef9..9ac9ab2 100644 --- a/src/app/FApp_MapDataControlImpl.cpp +++ b/src/app/FApp_MapDataControlImpl.cpp @@ -158,6 +158,8 @@ _MapDataControlImpl::GetInstance(const MapDataControl& dc) result _MapDataControlImpl::StartMapDataControl(int type, const IList* pDataList, int* pReq) { + Integer* pReqId = null; + _DataControlRequestInfo* pReqInfo = null; result r = E_SUCCESS; int req = -1; @@ -177,13 +179,34 @@ _MapDataControlImpl::StartMapDataControl(int type, const IList* pDataList, int* if (__pMapDataControlEvent) { // reqId is system-wide id because the bundle is system-wide. - +#if 0 + _AppControlManager::_RequestGuard reqObj = _AppControlManager::_RequestGuard(*pAppManagerImpl, pArg, MapDataControlCallback, __pMapDataControlEvent, -1); + req = reqObj.GetRequestNumber(); +#else _DataControlManager* pDcMgr = _DataControlManager::GetInstance(); _AppControlManager::_RequestGuard reqObj = _AppControlManager::_RequestGuard(*pAppManagerImpl, pArg, MapDataControlCallback, pDcMgr, -1); req = reqObj.GetRequestNumber(); - pDcMgr->AddEvent(req, __pMapDataControlEvent); +#endif + pReqId = new (std::nothrow) Integer(req); + SysTryCatch(NID_APP, pReqId != null, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, + "[E_OUT_OF_MEMORY] The memory is insufficient"); + + pReqInfo = new (std::nothrow) _DataControlRequestInfo(__pMapDataControlEvent); + SysTryCatch(NID_APP, pReqId != null, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, + "[E_OUT_OF_MEMORY] The memory is insufficient"); + + r = pDcMgr->AddRequestInfo(pReqId, pReqInfo); + SysTryCatch(NID_APP, !IsFailed(r), r = E_SYSTEM, E_SYSTEM, "[%s] Failed to add request info", GetErrorMessage(r)); + r = pAppManagerImpl->LaunchApp(__appId, pArg, req); - SysTryCatch(NID_APP, r == E_SUCCESS, reqObj.Invalidate(), r, "[%s] Propgated.", GetErrorMessage(r)); + if (IsFailed(r)) + { + SysPropagate(NID_APP, r); + reqObj.Invalidate(); + pDcMgr->RemoveRequestInfo(*pReqId); + delete pArg; + return r; + } if (pReq) { @@ -193,10 +216,16 @@ _MapDataControlImpl::StartMapDataControl(int type, const IList* pDataList, int* else { r = pAppManagerImpl->LaunchApp(__appId, pArg); + SysTryCatch(NID_APP, !IsFailed(r), , r, "[%s] Propagating to caller...", GetErrorMessage(r)); delete pArg; } + return E_SUCCESS; + CATCH: + delete pArg; + delete pReqId; + delete pReqInfo; return r; } @@ -237,7 +266,7 @@ _MapDataControlImpl::GetValue(const String& dataId, const String& key, reqId = static_cast< RequestId >(id); - SysLog(NID_APP, "dataId: %ls, key: %ls, reqId: %d, pageNo: %d, countPerPage: %d", + SysLog(NID_APP, "[DC_CALLER_SEND] dataId: %ls, key: %ls, reqId: %d, pageNo: %d, countPerPage: %d", dataId.GetPointer(), key.GetPointer(), reqId, pageNo, countPerPage); // fall through @@ -252,10 +281,7 @@ result _MapDataControlImpl::MapDataControlCallback(void* data, _AppArg* pArg, _AppArg* pResArg, service_result_e res, int prop) { ArrayList* pResultList = null; - ArrayList* pOrigList = null; - String* pRequestType = null; String* pResult = null; - String* pReqId = null; String* pProviderId = null; String* pDataId = null; String* pErrorMessage = null; @@ -265,10 +291,10 @@ _MapDataControlImpl::MapDataControlCallback(void* data, _AppArg* pArg, _AppArg* ArrayList* pResultValueList = null; int resultCount = 0; int requestType = 0; - int callerReqId = -1; + int reqId = 0; int providerRes = 0; bool providerResult = true; - bundle* origBundle = null; + //bundle* origBundle = null; bundle* resBundle = null; _MapDataControlEventArg* pEventArg = null; result r = E_SUCCESS; @@ -279,40 +305,46 @@ _MapDataControlImpl::MapDataControlCallback(void* data, _AppArg* pArg, _AppArg* resBundle = pResArg->GetBundle(); if (resBundle) { - const char* pCallerReqId = appsvc_get_data(resBundle, OSP_K_REQUEST_ID); - callerReqId = atoi(pCallerReqId); + const char* p = appsvc_get_data(resBundle, OSP_K_REQUEST_ID); + SysTryCatch(NID_APP, p, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid bundle"); + reqId = atoi(p); + Integer key(reqId); + _DataControlManager* pDcMgr = static_cast< _DataControlManager* >(data); - _MapDataControlEvent* pMapDataControlEvent = dynamic_cast< _MapDataControlEvent* >(pDcMgr->GetEvent(callerReqId)); + _DataControlRequestInfo* pReqInfo = pDcMgr->GetRequestInfo(key); + SysTryCatch(NID_APP, pReqInfo != null, r = E_SYSTEM, E_SYSTEM, + "[E_SYSTEM] Failed to get request info"); + + _MapDataControlEvent* pMapDataControlEvent = dynamic_cast< _MapDataControlEvent* >(pReqInfo->GetEvent()); + SysTryCatch(NID_APP, pMapDataControlEvent != null, r = E_SYSTEM, E_SYSTEM, + "[E_SYSTEM] invalid request info"); + + pDcMgr->RemoveRequestInfo(key); if (pMapDataControlEvent != null && typeid(pMapDataControlEvent) == typeid(_MapDataControlEvent*)) { - const char* p = null; // result list pResultList = _AppArg::GetListN(resBundle, OSP_K_ARG); SysTryCatch(NID_APP, pResultList, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid result"); - pResult = dynamic_cast (pResultList->GetAt(0)); + pResult = dynamic_cast (pResultList->GetAt(0)); // result list[0] SysTryCatch(NID_APP, pResult, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid result"); Integer::Parse(*pResult, providerRes); providerResult = static_cast< bool >(providerRes); - pErrorMessage = dynamic_cast< String* >(pResultList->GetAt(1)); + pErrorMessage = dynamic_cast< String* >(pResultList->GetAt(1)); // result list[1] SysTryCatch(NID_APP, pErrorMessage, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid result"); pErrorMsg = new (std::nothrow) String(*pErrorMessage); SysTryCatch(NID_APP, pErrorMsg, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient."); // request info - origBundle = pArg->GetBundle(); + //origBundle = pArg->GetBundle(); p = appsvc_get_data(resBundle, OSP_K_DATACONTROL_REQUEST_TYPE); SysTryCatch(NID_APP, p, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid bundle"); - pRequestType = new (std::nothrow) String(p); - SysTryCatch(NID_APP, pRequestType, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, - "[E_OUT_OF_MEMORY] The memory is insufficient."); - Integer::Parse(*pRequestType, requestType); - + requestType = atoi(p); p = appsvc_get_data(resBundle, OSP_K_DATACONTROL_PROVIDER); SysTryCatch(NID_APP, p, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid bundle"); @@ -326,13 +358,8 @@ _MapDataControlImpl::MapDataControlCallback(void* data, _AppArg* pArg, _AppArg* SysTryCatch(NID_APP, pDataId, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient."); -#if 0 - SysLog(NID_APP, "result: %ld, requestType: %d, reqId: %d, providerId: %ls, dataId: %ls, errorMsg: %ls ", + SysLog(NID_APP, "[DC_CALLER_RECV] provider result: %ld, requestType: %d, reqId: %d, providerId: %ls, dataId: %ls, errorMsg: %ls ", providerRes, requestType, reqId, pProviderId->GetPointer(), pDataId->GetPointer(), pErrorMsg->GetPointer()); -#else - SysLog(NID_APP, "result: %ld, requestType: %d, reqId: %d, providerId: %ls, dataId: %ls, errorMsg: %ls ", - providerRes, requestType, callerReqId, pProviderId->GetPointer(), pDataId->GetPointer(), pErrorMsg->GetPointer()); -#endif switch (static_cast< _DataControlRequestType >(requestType)) { @@ -344,7 +371,7 @@ _MapDataControlImpl::MapDataControlCallback(void* data, _AppArg* pArg, _AppArg* if (providerResult == true) { - pResultCount = dynamic_cast< String* >(pResultList->GetAt(2)); + pResultCount = dynamic_cast< String* >(pResultList->GetAt(2)); // result list[2] if (pResultCount == null) { SysLogException(NID_APP, E_SYSTEM, "[E_SYSTEM] invalid result"); @@ -372,7 +399,7 @@ _MapDataControlImpl::MapDataControlCallback(void* data, _AppArg* pArg, _AppArg* } } - pEventArg = new (std::nothrow) _MapDataControlEventArg(_DATACONTROL_REQUEST_TYPE_MAP_QUERY, static_cast (callerReqId), + pEventArg = new (std::nothrow) _MapDataControlEventArg(_DATACONTROL_REQUEST_TYPE_MAP_QUERY, static_cast (reqId), *pProviderId, *pDataId, pResultValueList, providerResult, pErrorMsg); SysTryCatch(NID_APP, pEventArg != null, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient."); pMapDataControlEvent->Fire(*pEventArg); @@ -381,7 +408,7 @@ _MapDataControlImpl::MapDataControlCallback(void* data, _AppArg* pArg, _AppArg* } case _DATACONTROL_REQUEST_TYPE_MAP_INSERT: { - pEventArg = new (std::nothrow) _MapDataControlEventArg(_DATACONTROL_REQUEST_TYPE_MAP_INSERT, static_cast (callerReqId), + pEventArg = new (std::nothrow) _MapDataControlEventArg(_DATACONTROL_REQUEST_TYPE_MAP_INSERT, static_cast (reqId), *pProviderId, *pDataId, null, providerResult, pErrorMsg); SysTryCatch(NID_APP, pEventArg != null, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient."); pMapDataControlEvent->Fire(*pEventArg); @@ -389,7 +416,7 @@ _MapDataControlImpl::MapDataControlCallback(void* data, _AppArg* pArg, _AppArg* } case _DATACONTROL_REQUEST_TYPE_MAP_UPDATE: { - pEventArg = new (std::nothrow) _MapDataControlEventArg(_DATACONTROL_REQUEST_TYPE_MAP_UPDATE, static_cast (callerReqId), + pEventArg = new (std::nothrow) _MapDataControlEventArg(_DATACONTROL_REQUEST_TYPE_MAP_UPDATE, static_cast (reqId), *pProviderId, *pDataId, null, providerResult, pErrorMsg); SysTryCatch(NID_APP, pEventArg != null, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient."); pMapDataControlEvent->Fire(*pEventArg); @@ -397,7 +424,7 @@ _MapDataControlImpl::MapDataControlCallback(void* data, _AppArg* pArg, _AppArg* } case _DATACONTROL_REQUEST_TYPE_MAP_DELETE: { - pEventArg = new (std::nothrow) _MapDataControlEventArg(_DATACONTROL_REQUEST_TYPE_MAP_DELETE, static_cast (callerReqId), + pEventArg = new (std::nothrow) _MapDataControlEventArg(_DATACONTROL_REQUEST_TYPE_MAP_DELETE, static_cast (reqId), *pProviderId, *pDataId, null, providerResult, pErrorMsg); SysTryCatch(NID_APP, pEventArg != null, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient."); pMapDataControlEvent->Fire(*pEventArg); @@ -409,22 +436,13 @@ _MapDataControlImpl::MapDataControlCallback(void* data, _AppArg* pArg, _AppArg* pResultList->RemoveAll(true); delete pResultList; - - - delete pRequestType; - delete pReqId; delete pProviderId; } } // Remove the request count -#if 0 SysLog(NID_APP, "Remove a launch request: reqId: %d", reqId); _AppControlManager::GetInstance()->RemoveLaunchRequest(reqId); -#else - SysLog(NID_APP, "Remove a launch request: reqId: %d", callerReqId); - _AppControlManager::GetInstance()->RemoveLaunchRequest(callerReqId); -#endif return E_SUCCESS; @@ -434,10 +452,6 @@ CATCH: pResultList->RemoveAll(true); delete pResultList; } - - - delete pRequestType; - delete pReqId; delete pProviderId; return r; @@ -471,7 +485,7 @@ _MapDataControlImpl::AddValue(const String& dataId, const String& key, reqId = static_cast< RequestId >(id); - SysLog(NID_APP, "dataId: %ls, key: %ls, value: %ls, reqId: %d", + SysLog(NID_APP, "[DC_CALLER_SEND] dataId: %ls, key: %ls, value: %ls, reqId: %d", dataId.GetPointer(), key.GetPointer(), value.GetPointer(), reqId); // fall through @@ -512,7 +526,7 @@ _MapDataControlImpl::SetValue(const String& dataId, const String& key, reqId = static_cast< RequestId >(id); - SysLog(NID_APP, "dataId: %ls, key: %ls, oldValue: %ls, newValue: %ls, reqId: %d", + SysLog(NID_APP, "[DC_CALLER_SEND] dataId: %ls, key: %ls, oldValue: %ls, newValue: %ls, reqId: %d", dataId.GetPointer(), key.GetPointer(), oldValue.GetPointer(), newValue.GetPointer(), reqId); // fall through @@ -551,7 +565,7 @@ _MapDataControlImpl::RemoveValue(const String& dataId, const String& key, reqId = static_cast< RequestId >(id); - SysLog(NID_APP, "dataId: %ls, key: %ls, value: %ls, reqId: %d", + SysLog(NID_APP, "[DC_CALLER_SEND] dataId: %ls, key: %ls, value: %ls, reqId: %d", dataId.GetPointer(), key.GetPointer(), value.GetPointer(), reqId); // fall through diff --git a/src/app/FApp_SqlDataControlImpl.cpp b/src/app/FApp_SqlDataControlImpl.cpp index 79d404b..d7bb7d9 100644 --- a/src/app/FApp_SqlDataControlImpl.cpp +++ b/src/app/FApp_SqlDataControlImpl.cpp @@ -163,6 +163,8 @@ _SqlDataControlImpl::GetInstance(const SqlDataControl& dc) result _SqlDataControlImpl::StartSqlDataControl(int type, const IList* pDataList, int* pReq) { + Integer* pReqId = null; + _DataControlRequestInfo* pReqInfo = null; result r = E_SUCCESS; int req = -1; @@ -182,13 +184,34 @@ _SqlDataControlImpl::StartSqlDataControl(int type, const IList* pDataList, int* if (__pSqlDataControlEvent) { // reqId is system-wide id because the bundle is system-wide. - +#if 0 + _AppControlManager::_RequestGuard reqObj = _AppControlManager::_RequestGuard(*pAppManagerImpl, pArg, SqlDataControlCallback, __pSqlDataControlEvent, -1); + req = reqObj.GetRequestNumber(); +#else _DataControlManager* pDcMgr = _DataControlManager::GetInstance(); _AppControlManager::_RequestGuard reqObj = _AppControlManager::_RequestGuard(*pAppManagerImpl, pArg, SqlDataControlCallback, pDcMgr, -1); req = reqObj.GetRequestNumber(); - pDcMgr->AddEvent(req, __pSqlDataControlEvent); +#endif + pReqId = new (std::nothrow) Integer(req); + SysTryCatch(NID_APP, pReqId != null, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, + "[E_OUT_OF_MEMORY] The memory is insufficient"); + + pReqInfo = new (std::nothrow) _DataControlRequestInfo(__pSqlDataControlEvent); + SysTryCatch(NID_APP, pReqId != null, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, + "[E_OUT_OF_MEMORY] The memory is insufficient"); + + r = pDcMgr->AddRequestInfo(pReqId, pReqInfo); + SysTryCatch(NID_APP, !IsFailed(r), r = E_SYSTEM, E_SYSTEM, "[%s] Failed to add request info", GetErrorMessage(r)); + r = pAppManagerImpl->LaunchApp(__appId, pArg, req); - SysTryCatch(NID_APP, r == E_SUCCESS, reqObj.Invalidate(), r, "[%s] Propagating.", GetErrorMessage(r)); + if (IsFailed(r)) + { + SysPropagate(NID_APP, r); + reqObj.Invalidate(); + pDcMgr->RemoveRequestInfo(*pReqId); + delete pArg; + return r; + } if (pReq) { @@ -198,10 +221,16 @@ _SqlDataControlImpl::StartSqlDataControl(int type, const IList* pDataList, int* else { r = pAppManagerImpl->LaunchApp(__appId, pArg); + SysTryCatch(NID_APP, !IsFailed(r), , r, "[%s] Propagating to caller...", GetErrorMessage(r)); delete pArg; } + return E_SUCCESS; + CATCH: + delete pArg; + delete pReqId; + delete pReqInfo; return r; } @@ -217,7 +246,7 @@ _SqlDataControlImpl::Select(const String& dataId, const IList* pColumnList, cons const String* pColumn = null; int id = 0; result r = E_SUCCESS; - SysLog(NID_APP, "[DC_CALLER] SqlDataControl SELECT"); + SysLog(NID_APP, "[DC_CALLER_SEND] SqlDataControl SELECT"); ArrayList* pArgList = new ArrayList(); pArgList->Construct(); @@ -232,7 +261,7 @@ _SqlDataControlImpl::Select(const String& dataId, const IList* pColumnList, cons "[E_INVALID_ARG] The specified pColumnList parameter is empty."); pArgList->Add(*(new String(Integer::ToString(columnCount)))); // list(1): selected column count - SysLog(NID_APP, "[DC_CALLER] selected column count: %d", columnCount); + SysLog(NID_APP, "[DC_CALLER_SEND] selected column count: %d", columnCount); int i = 0; while (i < columnCount) // list(2): column list @@ -243,7 +272,7 @@ _SqlDataControlImpl::Select(const String& dataId, const IList* pColumnList, cons pArgList->Add(*(new String(*pColumn))); argSize += pColumn->GetLength() * sizeof(wchar_t); - SysLog(NID_APP, "[DC_CALLER] column[%d]: %ls", i, pColumn->GetPointer()); + SysLog(NID_APP, "[DC_CALLER_SEND] column[%d]: %ls", i, pColumn->GetPointer()); i++; } } @@ -256,7 +285,7 @@ _SqlDataControlImpl::Select(const String& dataId, const IList* pColumnList, cons { pArgList->Add(*(new String(*pWhere))); argSize += pWhere->GetLength() * sizeof(wchar_t); - SysLog(NID_APP, "[DC_CALLER] pWhere: %ls", pWhere->GetPointer()); + SysLog(NID_APP, "[DC_CALLER_SEND] pWhere: %ls", pWhere->GetPointer()); } else { @@ -267,7 +296,7 @@ _SqlDataControlImpl::Select(const String& dataId, const IList* pColumnList, cons { pArgList->Add(*(new String(*pOrder))); argSize += pOrder->GetLength() * sizeof(wchar_t); - SysLog(NID_APP, "[DC_CALLER] pOrder: %ls", pOrder->GetPointer()); + SysLog(NID_APP, "[DC_CALLER_SEND] pOrder: %ls", pOrder->GetPointer()); } else { @@ -285,7 +314,7 @@ _SqlDataControlImpl::Select(const String& dataId, const IList* pColumnList, cons reqId = static_cast< RequestId >(id); - SysLog(NID_APP, "[DC_CALLER] dataId: %ls, pColumnList: 0x%x, pWhere: 0x%x, pOrder: 0x%x, reqId: %d, pageNo: %d, countPerPage: %d", + SysLog(NID_APP, "[DC_CALLER_SEND] dataId: %ls, pColumnList: 0x%x, pWhere: 0x%x, pOrder: 0x%x, reqId: %d, pageNo: %d, countPerPage: %d", dataId.GetPointer(), pColumnList, pWhere, pOrder, reqId, pageNo, countPerPage); // fall through @@ -300,10 +329,7 @@ result _SqlDataControlImpl::SqlDataControlCallback(void* data, _AppArg* pArg, _AppArg* pResArg, service_result_e res, int prop) { ArrayList* pResultList = null; - ArrayList* pOrigList = null; String* pResult = null; - String* pRequestType = null; - String* pReqId = null; String* pProviderId = null; String* pDataId = null; String* pErrorMessage = null; @@ -312,10 +338,10 @@ _SqlDataControlImpl::SqlDataControlCallback(void* data, _AppArg* pArg, _AppArg* String* pInsertRowId = null; _DataControlResultSetEnumerator* pResultSetEnum = null; int requestType = 0; - int callerReqId = -1; + int reqId = 0; int providerRes = 0; bool providerResult = true; - bundle* origBundle = null; + //bundle* origBundle = null; bundle* resBundle = null; _SqlDataControlEventArg* pEventArg = null; result r = E_SUCCESS; @@ -326,40 +352,45 @@ _SqlDataControlImpl::SqlDataControlCallback(void* data, _AppArg* pArg, _AppArg* resBundle = pResArg->GetBundle(); if (resBundle) { - const char* pCallerReqId = appsvc_get_data(resBundle, OSP_K_REQUEST_ID); - callerReqId = atoi(pCallerReqId); + const char* p = appsvc_get_data(resBundle, OSP_K_REQUEST_ID); + SysTryCatch(NID_APP, p, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid bundle"); + reqId = atoi(p); + Integer key(reqId); + _DataControlManager* pDcMgr = static_cast< _DataControlManager* >(data); - _SqlDataControlEvent* pSqlDataControlEvent = dynamic_cast< _SqlDataControlEvent* >(pDcMgr->GetEvent(callerReqId)); + _DataControlRequestInfo* pReqInfo = pDcMgr->GetRequestInfo(key); + SysTryCatch(NID_APP, pReqInfo != null, r = E_SYSTEM, E_SYSTEM, + "[E_SYSTEM] Failed to get request info"); + + _SqlDataControlEvent* pSqlDataControlEvent = dynamic_cast< _SqlDataControlEvent* >(pReqInfo->GetEvent()); + SysTryCatch(NID_APP, pSqlDataControlEvent != null, r = E_SYSTEM, E_SYSTEM, + "[E_SYSTEM] invalid request info"); + + pDcMgr->RemoveRequestInfo(key); if (pSqlDataControlEvent != null && typeid(pSqlDataControlEvent) == typeid(_SqlDataControlEvent*)) { - const char* p = null; - // result list pResultList = _AppArg::GetListN(resBundle, OSP_K_ARG); SysTryCatch(NID_APP, pResultList, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid result"); - pResult = dynamic_cast (pResultList->GetAt(0)); + pResult = dynamic_cast (pResultList->GetAt(0)); // result list[0] SysTryCatch(NID_APP, pResult, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid result"); Integer::Parse(*pResult, providerRes); providerResult = static_cast< bool >(providerRes); - pErrorMessage = dynamic_cast< String* >(pResultList->GetAt(1)); + pErrorMessage = dynamic_cast< String* >(pResultList->GetAt(1)); // result list[1] SysTryCatch(NID_APP, pErrorMessage, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid result"); pErrorMsg = new (std::nothrow) String(*pErrorMessage); SysTryCatch(NID_APP, pErrorMsg, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient."); - origBundle = pArg->GetBundle(); - // request info + //origBundle = pArg->GetBundle(); + p = appsvc_get_data(resBundle, OSP_K_DATACONTROL_REQUEST_TYPE); SysTryCatch(NID_APP, p, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid bundle"); - pRequestType = new (std::nothrow) String(p); - SysTryCatch(NID_APP, pRequestType, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, - "[E_OUT_OF_MEMORY] The memory is insufficient."); - Integer::Parse(*pRequestType, requestType); - + requestType = atoi(p); p = appsvc_get_data(resBundle, OSP_K_DATACONTROL_PROVIDER); SysTryCatch(NID_APP, p, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] invalid bundle"); @@ -373,13 +404,8 @@ _SqlDataControlImpl::SqlDataControlCallback(void* data, _AppArg* pArg, _AppArg* SysTryCatch(NID_APP, pDataId, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient."); -#if 0 - SysLog(NID_APP, "providerResult: %ld, requestType: %d, reqId: %d, providerId: %ls, dataId: %ls, errorMsg: %ls ", + SysLog(NID_APP, "[DC_CALLER_RECV] provider result: %ld, requestType: %d, reqId: %d, providerId: %ls, dataId: %ls, errorMsg: %ls ", providerRes, requestType, reqId, pProviderId->GetPointer(), pDataId->GetPointer(), pErrorMsg->GetPointer()); -#else - SysLog(NID_APP, "providerResult: %ld, requestType: %d, reqId: %d, providerId: %ls, dataId: %ls, errorMsg: %ls ", - providerRes, requestType, callerReqId, pProviderId->GetPointer(), pDataId->GetPointer(), pErrorMsg->GetPointer()); -#endif switch (static_cast <_DataControlRequestType>(requestType)) { @@ -399,14 +425,14 @@ _SqlDataControlImpl::SqlDataControlCallback(void* data, _AppArg* pArg, _AppArg* goto CATCH; } - SysLog(NID_APP, "tempPath: %ls", pTmpPath->GetPointer()); + SysLog(NID_APP, "[DC_CALLER_RECV] tempPath: %ls", pTmpPath->GetPointer()); if (pTmpPath->Equals(L"NoResultSet", true) == false) // Result set exists { pResultSetEnum->SetPath(*pTmpPath); } } - pEventArg = new (std::nothrow) _SqlDataControlEventArg(_DATACONTROL_REQUEST_TYPE_SQL_QUERY, static_cast (callerReqId), + pEventArg = new (std::nothrow) _SqlDataControlEventArg(_DATACONTROL_REQUEST_TYPE_SQL_QUERY, static_cast (reqId), *pProviderId, *pDataId, pResultSetEnum, -1, providerResult, pErrorMsg); SysTryCatch(NID_APP, pEventArg != null, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient."); pSqlDataControlEvent->Fire(*pEventArg); @@ -430,7 +456,7 @@ _SqlDataControlImpl::SqlDataControlCallback(void* data, _AppArg* pArg, _AppArg* LongLong::Parse(*pInsertRowId, insertRowId); } - pEventArg = new (std::nothrow) _SqlDataControlEventArg(_DATACONTROL_REQUEST_TYPE_SQL_INSERT, static_cast (callerReqId), + pEventArg = new (std::nothrow) _SqlDataControlEventArg(_DATACONTROL_REQUEST_TYPE_SQL_INSERT, static_cast (reqId), *pProviderId, *pDataId, null, insertRowId, providerResult, pErrorMsg); SysTryCatch(NID_APP, pEventArg != null, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient."); pSqlDataControlEvent->Fire(*pEventArg); @@ -438,7 +464,7 @@ _SqlDataControlImpl::SqlDataControlCallback(void* data, _AppArg* pArg, _AppArg* } case _DATACONTROL_REQUEST_TYPE_SQL_UPDATE: { - pEventArg = new (std::nothrow) _SqlDataControlEventArg(_DATACONTROL_REQUEST_TYPE_SQL_UPDATE, static_cast (callerReqId), + pEventArg = new (std::nothrow) _SqlDataControlEventArg(_DATACONTROL_REQUEST_TYPE_SQL_UPDATE, static_cast (reqId), *pProviderId, *pDataId, null, -1, providerResult, pErrorMsg); SysTryCatch(NID_APP, pEventArg != null, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient."); pSqlDataControlEvent->Fire(*pEventArg); @@ -446,7 +472,7 @@ _SqlDataControlImpl::SqlDataControlCallback(void* data, _AppArg* pArg, _AppArg* } case _DATACONTROL_REQUEST_TYPE_SQL_DELETE: { - pEventArg = new (std::nothrow) _SqlDataControlEventArg(_DATACONTROL_REQUEST_TYPE_SQL_DELETE, static_cast (callerReqId), + pEventArg = new (std::nothrow) _SqlDataControlEventArg(_DATACONTROL_REQUEST_TYPE_SQL_DELETE, static_cast (reqId), *pProviderId, *pDataId, null, -1, providerResult, pErrorMsg); SysTryCatch(NID_APP, pEventArg != null, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient."); pSqlDataControlEvent->Fire(*pEventArg); @@ -458,22 +484,13 @@ _SqlDataControlImpl::SqlDataControlCallback(void* data, _AppArg* pArg, _AppArg* pResultList->RemoveAll(true); delete pResultList; - - - delete pRequestType; - delete pReqId; delete pProviderId; } } // Remove the request count -#if 0 SysLog(NID_APP, "Remove a launch request: reqId: %d", reqId); _AppControlManager::GetInstance()->RemoveLaunchRequest(reqId); -#else - SysLog(NID_APP, "Remove a launch request: reqId: %d", callerReqId); - _AppControlManager::GetInstance()->RemoveLaunchRequest(callerReqId); -#endif return E_SUCCESS; @@ -483,10 +500,6 @@ CATCH: pResultList->RemoveAll(true); delete pResultList; } - - - delete pRequestType; - delete pReqId; delete pProviderId; return r; @@ -502,7 +515,7 @@ _SqlDataControlImpl::Insert(const String& dataId, const IMap& insertMap, Request int id = 0; int i = 0; result r = E_SUCCESS; - SysLog(NID_APP, "[DC_CALLER] SqlDataControl INSERT"); + SysLog(NID_APP, "[DC_CALLER_SEND] SqlDataControl INSERT"); columnCount = insertMap.GetCount(); SysTryReturnResult(NID_APP, columnCount > 0, E_INVALID_ARG, "The specified insertMap parameter is empty."); @@ -514,7 +527,7 @@ _SqlDataControlImpl::Insert(const String& dataId, const IMap& insertMap, Request long long argSize = dataId.GetLength() * sizeof(wchar_t); pArgList->Add(*(new String(Integer::ToString(columnCount)))); // list(1): inserted column count - SysLog(NID_APP, "[DC_CALLER] inserted column count: %d", columnCount); + SysLog(NID_APP, "[DC_CALLER_SEND] inserted column count: %d", columnCount); IMapEnumerator* pMapEnum = const_cast< IMap* >(&insertMap)->GetMapEnumeratorN(); while (pMapEnum->MoveNext() == E_SUCCESS) // list(2): column-value pairs @@ -524,14 +537,14 @@ _SqlDataControlImpl::Insert(const String& dataId, const IMap& insertMap, Request "[E_INVALID_ARG] The object is not String class."); pArgList->Add(*(new String(*pColumn))); - SysLog(NID_APP, "[DC_CALLER] pColumn[%d]: %ls", i, pColumn->GetPointer()); + SysLog(NID_APP, "[DC_CALLER_SEND] pColumn[%d]: %ls", i, pColumn->GetPointer()); String* pValue = dynamic_cast< String* >(pMapEnum->GetValue()); SysTryCatch(NID_APP, pValue != null, r = E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The object is not String class."); pArgList->Add(*(new String(*pValue))); - SysLog(NID_APP, "[DC_CALLER] pValue[%d]: %ls", i, pValue->GetPointer()); + SysLog(NID_APP, "[DC_CALLER_SEND] pValue[%d]: %ls", i, pValue->GetPointer()); argSize += pColumn->GetLength() * sizeof(wchar_t); argSize += pValue->GetLength() * sizeof(wchar_t); @@ -545,13 +558,12 @@ _SqlDataControlImpl::Insert(const String& dataId, const IMap& insertMap, Request reqId = static_cast< RequestId >(id); - SysLog(NID_APP, "[DC_CALLER] dataId: %ls, insertMap: 0x%x, reqId: %d", dataId.GetPointer(), &insertMap, reqId); + SysLog(NID_APP, "[DC_CALLER_SEND] dataId: %ls, insertMap: 0x%x, reqId: %d", dataId.GetPointer(), &insertMap, reqId); // fall through CATCH: pArgList->RemoveAll(true); delete pArgList; - delete pMapEnum; return r; @@ -567,7 +579,7 @@ _SqlDataControlImpl::Update(const String& dataId, const IMap& updateMap, const S int id = 0; int i = 0; result r = E_SUCCESS; - SysLog(NID_APP, "[DC_CALLER] SqlDataControl UPDATE"); + SysLog(NID_APP, "[DC_CALLER_SEND] SqlDataControl UPDATE"); columnCount = updateMap.GetCount(); SysTryReturnResult(NID_APP, columnCount > 0, E_INVALID_ARG, "The specified insertMap parameter is empty."); @@ -579,7 +591,7 @@ _SqlDataControlImpl::Update(const String& dataId, const IMap& updateMap, const S long long argSize = dataId.GetLength() * sizeof(wchar_t); pArgList->Add(*(new String(Integer::ToString(columnCount)))); // list(1): updated column count - SysLog(NID_APP, "[DC_CALLER] updated column count: %d", columnCount); + SysLog(NID_APP, "[DC_CALLER_SEND] updated column count: %d", columnCount); IMapEnumerator* pMapEnum = const_cast< IMap* >(&updateMap)->GetMapEnumeratorN(); while (pMapEnum->MoveNext() == E_SUCCESS) // list(2): column-value pairs @@ -589,14 +601,14 @@ _SqlDataControlImpl::Update(const String& dataId, const IMap& updateMap, const S "[E_INVALID_ARG] The object is not String class."); pArgList->Add(*(new String(*pColumn))); - SysLog(NID_APP, "[DC_CALLER] pColumn[%d]: %ls", i, pColumn->GetPointer()); + SysLog(NID_APP, "[DC_CALLER_SEND] pColumn[%d]: %ls", i, pColumn->GetPointer()); String* pValue = dynamic_cast< String* >(pMapEnum->GetValue()); SysTryCatch(NID_APP, pValue != null, r = E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The object is not String class."); pArgList->Add(*(new String(*pValue))); - SysLog(NID_APP, "[DC_CALLER] pValue[%d]: %ls", i, pValue->GetPointer()); + SysLog(NID_APP, "[DC_CALLER_SEND] pValue[%d]: %ls", i, pValue->GetPointer()); argSize += pColumn->GetLength() * sizeof(wchar_t); argSize += pValue->GetLength() * sizeof(wchar_t); @@ -607,7 +619,7 @@ _SqlDataControlImpl::Update(const String& dataId, const IMap& updateMap, const S { pArgList->Add(*(new String(*pWhere))); argSize += pWhere->GetLength() * sizeof(wchar_t); - SysLog(NID_APP, "[DC_CALLER] pWhere: %ls", pWhere->GetPointer()); + SysLog(NID_APP, "[DC_CALLER_SEND] pWhere: %ls", pWhere->GetPointer()); } else { @@ -621,14 +633,13 @@ _SqlDataControlImpl::Update(const String& dataId, const IMap& updateMap, const S reqId = static_cast< RequestId >(id); - SysLog(NID_APP, "[DC_CALLER] dataId: %ls, updateMap: 0x%x, pWhere: 0x%x, reqId: %d", + SysLog(NID_APP, "[DC_CALLER_SEND] dataId: %ls, updateMap: 0x%x, pWhere: 0x%x, reqId: %d", dataId.GetPointer(), &updateMap, pWhere, reqId); // fall through CATCH: pArgList->RemoveAll(true); delete pArgList; - delete pMapEnum; return r; @@ -642,7 +653,7 @@ _SqlDataControlImpl::Delete(const String& dataId, const String* pWhere, RequestI int id = 0; result r = E_SUCCESS; - SysLog(NID_APP, "[DC_CALLER] SqlDataControl DELETE"); + SysLog(NID_APP, "[DC_CALLER_SEND] SqlDataControl DELETE"); ArrayList* pArgList = new ArrayList(); pArgList->Construct(); @@ -654,7 +665,7 @@ _SqlDataControlImpl::Delete(const String& dataId, const String* pWhere, RequestI { pArgList->Add(*(new String(*pWhere))); argSize += pWhere->GetLength() * sizeof(wchar_t); - SysLog(NID_APP, "[DC_CALLER] pWhere: %ls", pWhere->GetPointer()); + SysLog(NID_APP, "[DC_CALLER_SEND] pWhere: %ls", pWhere->GetPointer()); } else { @@ -668,7 +679,7 @@ _SqlDataControlImpl::Delete(const String& dataId, const String* pWhere, RequestI reqId = static_cast< RequestId >(id); - SysLog(NID_APP, "[DC_CALLER] dataId: %ls, pWhere: 0x%x, reqId: %d", dataId.GetPointer(), pWhere, reqId); + SysLog(NID_APP, "[DC_CALLER_SEND] dataId: %ls, pWhere: 0x%x, reqId: %d", dataId.GetPointer(), pWhere, reqId); // fall through CATCH: -- 2.7.4