//
-// Open Service Platform
// Copyright (c) 2012 Samsung Electronics Co., Ltd.
//
// Licensed under the Apache License, Version 2.0 (the License);
result
_DbEnumeratorImpl::GetIntAt(int columnIndex, int& value) const
{
- result r = E_SUCCESS;
-
SysTryReturnResult(NID_IO, __pEnum != null, E_INVALID_STATE,
"The Object is not constructed or the database is already been closed.");
SysTryReturnResult(NID_IO, columnIndex >= 0 && columnIndex < __columnCount, E_INVALID_ARG,
"Given column index is out of range.");
SysTryReturnResult(NID_IO, __pDbEnumeratorCache != null, E_INVALID_STATE,
"The method has tried to fetch the column data of a result set that is not activated.");
+ SysTryReturnResult(NID_IO, __pDbEnumeratorCache->__pCurrentDbRow != null, E_SYSTEM,
+ "Result row is not activated.");
- if (__pDbEnumeratorCache->__pCurrentDbRow)
- {
- _DbColumn* pDbColumn = dynamic_cast < _DbColumn* >(__pDbEnumeratorCache->__pCurrentDbRow->dbValuesList.GetAt(columnIndex));
- if (pDbColumn)
- {
- if (pDbColumn->type != SQLITE_INTEGER)
- {
- r = E_TYPE_MISMATCH;
- SysLog(NID_IO, "[E_TYPE_MISMATCH] Trying to access column of different type.");
- goto CATCH;
- }
+ _DbColumn* pDbColumn = dynamic_cast < _DbColumn* >(__pDbEnumeratorCache->__pCurrentDbRow->dbValuesList.GetAt(columnIndex));
+ SysTryReturnResult(NID_IO, pDbColumn != null, E_SYSTEM, "The specified column at index %d is not found from the result set.", columnIndex);
- value = *((int *)pDbColumn->pData.get());
- }
- }
- return E_SUCCESS;
+ SysTryReturnResult(NID_IO, pDbColumn->type == SQLITE_INTEGER, E_TYPE_MISMATCH,
+ "Trying to access column of different type.");
-CATCH:
- return r;
+ SysTryReturnResult(NID_IO, pDbColumn->pData != null, E_SYSTEM, "Data for specified column does not exist.");
+
+ value = *((int *)pDbColumn->pData.get());
+
+ return E_SUCCESS;
}
result
_DbEnumeratorImpl::GetInt64At(int columnIndex, long long& value) const
{
- result r = E_SUCCESS;
-
SysTryReturnResult(NID_IO, __pEnum != null, E_INVALID_STATE,
"The Object is not constructed or the database is already been closed.");
SysTryReturnResult(NID_IO, columnIndex >= 0 && columnIndex < __columnCount, E_INVALID_ARG,
"Given column index is out of range.");
SysTryReturnResult(NID_IO, __pDbEnumeratorCache != null, E_INVALID_STATE,
"The method has tried to fetch the column data of a result set that is not activated.");
+ SysTryReturnResult(NID_IO, __pDbEnumeratorCache->__pCurrentDbRow != null, E_SYSTEM,
+ "Result row is not activated.");
- if (__pDbEnumeratorCache->__pCurrentDbRow)
- {
- _DbColumn* pDbColumn = dynamic_cast < _DbColumn* >(__pDbEnumeratorCache->__pCurrentDbRow->dbValuesList.GetAt(columnIndex));
- if (pDbColumn)
- {
- if (pDbColumn->type != SQLITE_INTEGER)
- {
- r = E_TYPE_MISMATCH;
- SysLog(NID_IO, "[E_TYPE_MISMATCH] Trying to access column of different type.");
- goto CATCH;
- }
+ _DbColumn* pDbColumn = dynamic_cast < _DbColumn* >(__pDbEnumeratorCache->__pCurrentDbRow->dbValuesList.GetAt(columnIndex));
+ SysTryReturnResult(NID_IO, pDbColumn != null, E_SYSTEM, "The specified column at index %d is not found from the result set.", columnIndex);
- value = *((long long *)pDbColumn->pData.get());
- }
- }
- return E_SUCCESS;
+ SysTryReturnResult(NID_IO, pDbColumn->type == SQLITE_INTEGER, E_TYPE_MISMATCH,
+ "Trying to access column of different type.");
+ SysTryReturnResult(NID_IO, pDbColumn->pData != null, E_SYSTEM, "Data for specified column does not exist.");
-CATCH:
- return r;
+ value = *((long long *)pDbColumn->pData.get());
+
+ return E_SUCCESS;
}
result
_DbEnumeratorImpl::GetDoubleAt(int columnIndex, double& value) const
{
- result r = E_SUCCESS;
-
SysTryReturnResult(NID_IO, __pEnum != null, E_INVALID_STATE,
"The Object is not constructed or the database is already been closed.");
SysTryReturnResult(NID_IO, columnIndex >= 0 && columnIndex < __columnCount, E_INVALID_ARG,
"Given column index is out of range.");
SysTryReturnResult(NID_IO, __pDbEnumeratorCache != null, E_INVALID_STATE,
"The method has tried to fetch the column data of a result set that is not activated.");
+ SysTryReturnResult(NID_IO, __pDbEnumeratorCache->__pCurrentDbRow != null, E_SYSTEM,
+ "Result row is not activated.");
- if (__pDbEnumeratorCache->__pCurrentDbRow)
- {
- _DbColumn* pDbColumn = dynamic_cast < _DbColumn* >(__pDbEnumeratorCache->__pCurrentDbRow->dbValuesList.GetAt(columnIndex));
- if (pDbColumn)
- {
- if (pDbColumn->type != SQLITE_FLOAT)
- {
- r = E_TYPE_MISMATCH;
- SysLog(NID_IO, "[E_TYPE_MISMATCH] Trying to access column of different type.");
- goto CATCH;
- }
+ _DbColumn* pDbColumn = dynamic_cast < _DbColumn* >(__pDbEnumeratorCache->__pCurrentDbRow->dbValuesList.GetAt(columnIndex));
+ SysTryReturnResult(NID_IO, pDbColumn != null, E_SYSTEM, "The specified column at index %d is not found from the result set.", columnIndex);
+ SysTryReturnResult(NID_IO, pDbColumn->type == SQLITE_FLOAT, E_TYPE_MISMATCH, "Trying to access column of different type.");
+ SysTryReturnResult(NID_IO, pDbColumn->pData != null, E_SYSTEM, "Data for specified column does not exist.");
- value = *((double *)pDbColumn->pData.get());
- }
- }
- return E_SUCCESS;
+ value = *((double *)pDbColumn->pData.get());
-CATCH:
- return r;
+ return E_SUCCESS;
}
result
_DbEnumeratorImpl::GetStringAt(int columnIndex, String& value) const
{
- result r = E_SUCCESS;
-
SysTryReturnResult(NID_IO, __pEnum != null, E_INVALID_STATE,
"The Object is not constructed or the database is already been closed.");
SysTryReturnResult(NID_IO, columnIndex >= 0 && columnIndex < __columnCount, E_INVALID_ARG,
"Given column index is out of range.");
SysTryReturnResult(NID_IO, __pDbEnumeratorCache != null, E_INVALID_STATE,
"The method has tried to fetch the column data of a result set that is not activated.");
+ SysTryReturnResult(NID_IO, __pDbEnumeratorCache->__pCurrentDbRow != null, E_SYSTEM,
+ "Result row is not activated.");
- if (__pDbEnumeratorCache->__pCurrentDbRow)
- {
- _DbColumn* pDbColumn = dynamic_cast < _DbColumn* >(__pDbEnumeratorCache->__pCurrentDbRow->dbValuesList.GetAt(columnIndex));
- if (pDbColumn)
- {
- if (pDbColumn->type != SQLITE_TEXT)
- {
- r = E_TYPE_MISMATCH;
- SysLog(NID_IO, "[E_TYPE_MISMATCH] Trying to access column of different type.");
- goto CATCH;
- }
+ _DbColumn* pDbColumn = dynamic_cast < _DbColumn* >(__pDbEnumeratorCache->__pCurrentDbRow->dbValuesList.GetAt(columnIndex));
+ SysTryReturnResult(NID_IO, pDbColumn != null, E_SYSTEM, "The specified column at index %d is not found from the result set.", columnIndex);
+ SysTryReturnResult(NID_IO, pDbColumn->type == SQLITE_TEXT, E_TYPE_MISMATCH, "Trying to access column of different type.");
+ SysTryReturnResult(NID_IO, pDbColumn->pData != null, E_SYSTEM, "Data for specified column does not exist.");
- value = String((const char*)pDbColumn->pData.get());
- }
- }
- return E_SUCCESS;
+ result r = StringUtil::Utf8ToString(const_cast< char* >(pDbColumn->pData.get()), value);
+ SysTryReturn(NID_IO, r == E_SUCCESS, r, r, "[%s] Propagating to caller...", GetErrorMessage(r));
-CATCH:
- return r;
+ return E_SUCCESS;
}
result
_DbEnumeratorImpl::GetBlobAt(int columnIndex, ByteBuffer& value) const
{
- result r = E_SUCCESS;
- int blobLen = 0;
- const byte* pBlob = null;
-
SysTryReturnResult(NID_IO, __pEnum != null, E_INVALID_STATE,
"The Object is not constructed or the database is already been closed.");
SysTryReturnResult(NID_IO, columnIndex >= 0 && columnIndex < __columnCount, E_INVALID_ARG,
"Given column index is out of range.");
SysTryReturnResult(NID_IO, __pDbEnumeratorCache != null, E_INVALID_STATE,
"The method has tried to fetch the column data of a result set that is not activated.");
+ SysTryReturnResult(NID_IO, __pDbEnumeratorCache->__pCurrentDbRow != null, E_SYSTEM,
+ "Result row is not activated.");
- if (__pDbEnumeratorCache->__pCurrentDbRow)
- {
- _DbColumn* pDbColumn = dynamic_cast < _DbColumn* >(__pDbEnumeratorCache->__pCurrentDbRow->dbValuesList.GetAt(columnIndex));
- if (pDbColumn)
- {
- if (pDbColumn->type != SQLITE_BLOB)
- {
- r = E_TYPE_MISMATCH;
- SysLog(NID_IO, "[E_TYPE_MISMATCH] Trying to access column of different type.");
- goto CATCH;
- }
+ _DbColumn* pDbColumn = dynamic_cast < _DbColumn* >(__pDbEnumeratorCache->__pCurrentDbRow->dbValuesList.GetAt(columnIndex));
+ SysTryReturnResult(NID_IO, pDbColumn != null, E_SYSTEM, "The specified column at index %d is not found from the result set.", columnIndex);
+ SysTryReturnResult(NID_IO, pDbColumn->type == SQLITE_BLOB, E_TYPE_MISMATCH, "Trying to access column of different type.");
- blobLen = pDbColumn->size;
- pBlob = (const byte*)pDbColumn->pData.get();
+ int blobLen = pDbColumn->size;
+ SysTryReturnResult(NID_IO, pDbColumn->pData != null, E_SYSTEM, "Data for specified column does not exist.");
- r = value.SetArray(pBlob, 0, blobLen);
- }
- }
+ const byte* pBlob = reinterpret_cast< const byte* >(pDbColumn->pData.get());
+ result r = value.SetArray(pBlob, 0, blobLen);
+ SysTryReturn(NID_IO, r == E_SUCCESS, r, r, "[%s] Propagating to caller...", GetErrorMessage(r));
- // fall thru
-CATCH:
- return r;
+ return E_SUCCESS;
}
result
_DbEnumeratorImpl::GetBlobAt(int columnIndex, void* buffer, int size) const
{
- result r = E_SUCCESS;
- int blobLen = 0;
- const byte* pBlob = null;
-
SysTryReturnResult(NID_IO, __pEnum != null, E_INVALID_STATE,
"The Object is not constructed or the database is already been closed.");
SysTryReturnResult(NID_IO, columnIndex >= 0 && columnIndex < __columnCount, E_INVALID_ARG,
SysTryReturnResult(NID_IO, size > 0, E_INVALID_ARG, "Invalid size was passed.");
SysTryReturnResult(NID_IO, __pDbEnumeratorCache != null, E_INVALID_STATE,
"The method has tried to fetch the column data of a result set that is not activated.");
+ SysTryReturnResult(NID_IO, __pDbEnumeratorCache->__pCurrentDbRow != null, E_SYSTEM,
+ "Result row is not activated.");
- if (__pDbEnumeratorCache->__pCurrentDbRow)
- {
- _DbColumn* pDbColumn = dynamic_cast < _DbColumn* >(__pDbEnumeratorCache->__pCurrentDbRow->dbValuesList.GetAt(columnIndex));
- if (pDbColumn)
- {
- if (pDbColumn->type != SQLITE_BLOB)
- {
- r = E_TYPE_MISMATCH;
- SysLog(NID_IO, "[E_TYPE_MISMATCH] Trying to access column of different type.");
- goto CATCH;
- }
+ _DbColumn* pDbColumn = dynamic_cast < _DbColumn* >(__pDbEnumeratorCache->__pCurrentDbRow->dbValuesList.GetAt(columnIndex));
+ SysTryReturnResult(NID_IO, pDbColumn != null, E_SYSTEM, "The specified column at index %d is not found from the result set.", columnIndex);
+ SysTryReturnResult(NID_IO, pDbColumn->type == SQLITE_BLOB, E_TYPE_MISMATCH, "Trying to access column of different type.");
- blobLen = pDbColumn->size;
- pBlob = (const byte*)pDbColumn->pData.get();
- memcpy(buffer, pBlob, (blobLen < size) ? blobLen : size);
- }
- }
+ int blobLen = pDbColumn->size;
+ SysTryReturnResult(NID_IO, pDbColumn->pData != null, E_SYSTEM, "Data for specified column does not exist.");
+
+ const byte* pBlob = reinterpret_cast< const byte* >(pDbColumn->pData.get());
+ memcpy(buffer, pBlob, (blobLen < size) ? blobLen : size);
if (size < blobLen)
{
- r = E_OVERFLOW;
+ return E_OVERFLOW;
}
- // fall thru
-CATCH:
- return r;
+ return E_SUCCESS;
}
result
_DbEnumeratorImpl::GetDateTimeAt(int columnIndex, DateTime& value) const
{
- result r = E_SUCCESS;
- const char* pStr = null;
-
SysTryReturnResult(NID_IO, __pEnum != null, E_INVALID_STATE,
"The Object is not constructed or the database is already been closed.");
SysTryReturnResult(NID_IO, columnIndex >= 0 && columnIndex < __columnCount, E_INVALID_ARG,
"Given column index is out of range.");
SysTryReturnResult(NID_IO, __pDbEnumeratorCache != null, E_INVALID_STATE,
"The method has tried to fetch the column data of a result set that is not activated.");
+ SysTryReturnResult(NID_IO, __pDbEnumeratorCache->__pCurrentDbRow != null, E_SYSTEM,
+ "Result row is not activated.");
- if (__pDbEnumeratorCache->__pCurrentDbRow)
- {
- _DbColumn* pDbColumn = dynamic_cast < _DbColumn* >(__pDbEnumeratorCache->__pCurrentDbRow->dbValuesList.GetAt(columnIndex));
- if (pDbColumn)
- {
- if (pDbColumn->type != SQLITE_TEXT)
- {
- r = E_TYPE_MISMATCH;
- SysLog(NID_IO, "[E_TYPE_MISMATCH] Trying to access column of different type.");
- goto CATCH;
- }
+ _DbColumn* pDbColumn = dynamic_cast < _DbColumn* >(__pDbEnumeratorCache->__pCurrentDbRow->dbValuesList.GetAt(columnIndex));
+ SysTryReturnResult(NID_IO, pDbColumn != null, E_SYSTEM, "The specified column at index %d is not found from the result set.", columnIndex);
+ SysTryReturnResult(NID_IO, pDbColumn->type == SQLITE_TEXT, E_TYPE_MISMATCH, "Trying to access column of different type.");
+ SysTryReturnResult(NID_IO, pDbColumn->pData != null, E_SYSTEM, "Data for specified column does not exist.");
- pStr = (const char*) pDbColumn->pData.get();
- }
- }
+ const char* pStr = const_cast< char* >(pDbColumn->pData.get());
- r = DateTime::Parse(pStr, value);
+ result r = DateTime::Parse(pStr, value);
+ SysTryReturn(NID_IO, r == E_SUCCESS, r, r, "[%s] Propagating to caller...", GetErrorMessage(r));
- // fall thru
-CATCH:
- return r;
+ return E_SUCCESS;
}
int