📄 pim_list.c
字号:
/*----------------------------------------------------------------*/
JPIM_DEBUG(TRACE_FUNC, FUNC_J2ME_PIMLISTIMPL_GETATTRIBUTELABELN);
switch (listtype)
{
case CONTACT_LIST:
/* take care here , the value of attribute should be "transfered" originally */
label = jpim_phb_getAttrLabel(attribute);
break;
case EVENT_LIST:
break;
case TODO_LIST:
break;
default:
break;
}
KNI_StartHandles(1);
KNI_DeclareHandle(string);
if( label != NULL )
{
KNI_NewString((const jchar*)label, app_ucs2_strlen((kal_int8*)label), string);
}
else
{
KNI_ReleaseHandle(string);
}
KNI_EndHandlesAndReturnObject(string);
}
/*****************************************************************************
* FUNCTION
* Java_com_ibm_oti_pim_PIMListImpl_getCategoriesN2
* DESCRIPTION
* private native int getCategoriesN2(int listType, int handle, String[] ret);
* PARAMETERS
* void
* RETURNS
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_PIMListImpl_getCategoriesN2(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 listtype = KNI_GetParameterAsInt(1);
kal_int32 dbhandle = KNI_GetParameterAsInt(2);
kal_int32 getsize;
kal_int32 result = 0;
kal_int32 i;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
KNI_StartHandles(1);
KNI_DeclareHandle(string_array);
KNI_GetParameterAsObject(3, string_array);
getsize = KNI_IsNullHandle(string_array);
KNI_EndHandles();
JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_PIMLISTIMPL_GETCATEGORIESN2, getsize);
if ((result = pim_getCategories(dbhandle)) != SUCCESS)
{
PIM_THROW(result, NULL, pim_getDetailError());
KNI_ReturnInt(0);
}
if (getsize)
{
result = 0;
switch (listtype)
{
case CONTACT_LIST:
result = nCategory;
break;
case EVENT_LIST:
result = 0;
break;
case TODO_LIST:
PIM_THROW(PIM, "", FEATURE_NOT_SUPPORTED);
break;
default:
PIM_THROW(ILLARG, "", GENERAL_ERROR);
}
KNI_ReturnInt(result);
}
KNI_StartHandles(2);
KNI_DeclareHandle(str);
KNI_DeclareHandle(str_array);
KNI_GetParameterAsObject(3, str_array);
for (i = 0; i < nCategory; i++)
{
KNI_NewString(
(const jchar*)categories[i].group_name,
(jsize) app_ucs2_strlen((const kal_int8*)categories[i].group_name),
str);
KNI_SetObjectArrayElement(str_array, i, str);
}
KNI_EndHandles();
KNI_ReturnInt(0);
}
/*****************************************************************************
* FUNCTION
* Java_com_ibm_oti_pim_PIMListImpl_getExtendedFieldDataTypeN
* DESCRIPTION
* private static native int getExtendedFieldDataTypeN(int listType, int field);
* PARAMETERS
* void
* RETURNS
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_PIMListImpl_getExtendedFieldDataTypeN(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
JPIM_DEBUG(TRACE_FUNC, FUNC_J2ME_PIMLISTIMPL_GETEXTENDEDFIELDDATATYPEN);
PIM_THROW(UNSUPPFIELD, "", GENERAL_ERROR);
KNI_ReturnInt(0);
}
/*****************************************************************************
* FUNCTION
* Java_com_ibm_oti_pim_PIMListImpl_getExtendedFieldsN2
* DESCRIPTION
* private native int getExtendedFieldsN2(int listType, int handle, int[] ret);
* PARAMETERS
* void
* RETURNS
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_PIMListImpl_getExtendedFieldsN2(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
// PIM_THROW(UNSUPPFIELD, "", GENERAL_ERROR);
KNI_ReturnInt(0);
}
/*****************************************************************************
* FUNCTION
* Java_com_ibm_oti_pim_PIMListImpl_getFieldLabelN
* DESCRIPTION
* private native String getFieldLabelN(int listType, int handle, int field);
* PARAMETERS
* void
* RETURNS
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_OBJECT
Java_com_ibm_oti_pim_PIMListImpl_getFieldLabelN(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 listtype = KNI_GetParameterAsInt(1);
kal_int32 dbhandle = KNI_GetParameterAsInt(2);
kal_int32 field = KNI_GetParameterAsInt(3);
kal_wchar *label = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
JPIM_DEBUG(TRACE_FUNC, FUNC_J2ME_PIMLISTIMPL_GETFIELDLABELN);
CHECK_FIELD_SUPPORT(listtype, dbhandle, field,
{
KNI_StartHandles(1);
KNI_DeclareHandle(string);
KNI_ReleaseHandle(string);
KNI_EndHandlesAndReturnObject(string);
});
switch (listtype)
{
case CONTACT_LIST:
/* dangerous here, do not transfer field to JPIM field macro */
label = jpim_phb_getFieldLabel(field);
break;
case EVENT_LIST:
/* dangerous here, do not transfer field to JPIM field macro */
label = jpim_evtdb_getFieldLabel(field);
break;
case TODO_LIST:
break;
default:
break;
}
KNI_StartHandles(1);
KNI_DeclareHandle(string);
if( label )
{
KNI_NewString((const jchar*)label, app_ucs2_strlen((const kal_int8*)label), string);
}
else
{
KNI_ReleaseHandle(string);
}
KNI_EndHandlesAndReturnObject(string);
}
/*****************************************************************************
* FUNCTION
* Java_com_ibm_oti_pim_PIMListImpl_getSupportedArrayElementsN2
* DESCRIPTION
* private native int getSupportedArrayElementsN2(int listType, int handle, int field, int[] ret);
* PARAMETERS
* void
* RETURNS
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_PIMListImpl_getSupportedArrayElementsN2(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 listtype = KNI_GetParameterAsInt(1);
// kal_int32 dbhandle = KNI_GetParameterAsInt(2);
kal_int32 field = KNI_GetParameterAsInt(3);
kal_int32 getsize = KAL_FALSE, result = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
KNI_StartHandles(1);
KNI_DeclareHandle(int_array);
KNI_GetParameterAsObject(4, int_array);
getsize = KNI_IsNullHandle(int_array);
KNI_EndHandles();
JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_PIMLISTIMPL_GETSUPPORTEDATTRIBUTESN2, getsize, field);
if (getsize)
{
switch (listtype)
{
case CONTACT_LIST:
if (field == C_ADDR)
{
result = C_ADDRSIZE; // Platform dependancy
}
else
{
result = 0;
}
break;
case EVENT_LIST:
result = 0;
break;
case TODO_LIST:
PIM_THROW(PIM, "", FEATURE_NOT_SUPPORTED);
break;
default:
PIM_THROW(ILLARG, "", GENERAL_ERROR);
}
JPIM_DEBUG_1(TRACE_FUNC, JPIM_LOG_INTEGER, result);
KNI_ReturnInt(result);
}
switch (listtype)
{
case CONTACT_LIST:
if (field == C_ADDR)
{
KNI_StartHandles(1);
KNI_DeclareHandle(int_array);
KNI_GetParameterAsObject(4, int_array);
KNI_SetIntArrayElement(int_array, 0, C_ADDR_POBOX);
KNI_SetIntArrayElement(int_array, 1, C_ADDR_EXTRA);
KNI_SetIntArrayElement(int_array, 2, C_ADDR_STREET);
KNI_SetIntArrayElement(int_array, 3, C_ADDR_LOCALITY);
KNI_SetIntArrayElement(int_array, 4, C_ADDR_REGION);
KNI_SetIntArrayElement(int_array, 5, C_ADDR_POSTALCODE);
KNI_SetIntArrayElement(int_array, 6, C_ADDR_COUNTRY);
KNI_EndHandles();
}
break;
case EVENT_LIST:
break;
case TODO_LIST:
PIM_THROW(PIM, "", FEATURE_NOT_SUPPORTED);
break;
default:
PIM_THROW(ILLARG, "", GENERAL_ERROR);
}
KNI_ReturnInt(0);
}
/*****************************************************************************
* FUNCTION
* Java_com_ibm_oti_pim_PIMListImpl_getSupportedAttributesN2
* DESCRIPTION
* private native int getSupportedAttributesN2(int listType, int handle, int field, int[] ret);
* PARAMETERS
* void
* RETURNS
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_PIMListImpl_getSupportedAttributesN2(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 listtype = KNI_GetParameterAsInt(1);
kal_int32 dbhandle = KNI_GetParameterAsInt(2);
kal_int32 field = KNI_GetParameterAsInt(3);
kal_int32 getsize = KAL_FALSE, result = 0, i;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
KNI_StartHandles(1);
KNI_DeclareHandle(int_array);
KNI_GetParameterAsObject(4, int_array);
getsize = KNI_IsNullHandle(int_array);
KNI_EndHandles();
JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_PIMLISTIMPL_GETSUPPORTEDATTRIBUTESN2, getsize, field);
if (getsize)
{
switch (listtype)
{
case CONTACT_LIST:
if (field == C_TEL)
{
result = pim_getContactAttr(dbhandle, C_TEL);
if(result != SUCCESS)
{
PIM_THROW(result, "", pim_getDetailError());
KNI_ReturnInt(0);
}
result = NUM_CONTACT_ATTR_FIELDS;
}
else
{
result = 0;
}
break;
case EVENT_LIST:
result = 0;
break;
case TODO_LIST:
PIM_THROW(PIM, "", FEATURE_NOT_SUPPORTED);
break;
default:
PIM_THROW(ILLARG, "", GENERAL_ERROR);
}
JPIM_DEBUG_1(TRACE_FUNC, JPIM_LOG_INTEGER, result);
KNI_ReturnInt(result);
}
switch (listtype)
{
case CONTACT_LIST:
if (field == C_TEL)
{
result = pim_getContactAttr(dbhandle, C_TEL);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -