📄 cmcc_phonebook.c
字号:
/*****************************************************************************
* FUNCTION
* Java_com_cmcc_phonebook_PhoneBook_getCurrentHomePhone
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
*
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_OBJECT Java_com_cmcc_phonebook_PhoneBook_getCurrentHomePhone(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
KNI_StartHandles(1);
KNI_DeclareHandle(str);
KNI_NewString((const jchar*)entry.homeNumber, (jsize) app_ucs2_strlen((kal_int8*)entry.homeNumber), str);
KNI_EndHandlesAndReturnObject(str);
}
/*****************************************************************************
* FUNCTION
* Java_com_cmcc_phonebook_PhoneBook_getCurrentOfficePhone
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
*
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_OBJECT Java_com_cmcc_phonebook_PhoneBook_getCurrentOfficePhone(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
KNI_StartHandles(1);
KNI_DeclareHandle(str);
KNI_NewString((const jchar*)entry.officeNumber, (jsize) app_ucs2_strlen((kal_int8*)entry.officeNumber), str);
KNI_EndHandlesAndReturnObject(str);
}
/*****************************************************************************
* FUNCTION
* Java_com_cmcc_phonebook_PhoneBook_getCurrentEmail
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
*
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_OBJECT Java_com_cmcc_phonebook_PhoneBook_getCurrentEmail(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
KNI_StartHandles(1);
KNI_DeclareHandle(str);
KNI_NewString((const jchar*)entry.emailAddress, (jsize) app_ucs2_strlen((kal_int8*)entry.emailAddress), str);
KNI_EndHandlesAndReturnObject(str);
}
/*****************************************************************************
* FUNCTION
* Java_com_cmcc_phonebook_PhoneBook_getCurrentReserve
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
*
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_OBJECT Java_com_cmcc_phonebook_PhoneBook_getCurrentReserve(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
KNI_StartHandles(1);
KNI_DeclareHandle(str);
KNI_NewString((const jchar*)entry.faxNumber, (jsize) app_ucs2_strlen((kal_int8*)entry.faxNumber), str);
KNI_EndHandlesAndReturnObject(str);
}
/*****************************************************************************
* FUNCTION
* Java_com_cmcc_phonebook_PhoneBook_appendEntry
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
*
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT Java_com_cmcc_phonebook_PhoneBook_appendEntry(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 len, result, count = -1;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
KNI_StartHandles(1);
KNI_DeclareHandle(str);
do
{
memset(&entry, 0, sizeof(entry));
/* fetch the name */
KNI_GetParameterAsObject(1, str);
if ((len = KNI_GetStringLength(str)) == -1)
{
KNI_ThrowNew("java/lang/NullPointerException", "name");
break;
}
if (len > (sizeof(entry.name) / 2) - 1)
{
len = (sizeof(entry.name) / 2) - 1;
}
KNI_GetStringRegion(str, 0, len, (jchar*) entry.name);
/* fetch the number */
KNI_GetParameterAsObject(2, str);
if ((len = KNI_GetStringLength(str)) == -1)
{
KNI_ThrowNew("java/lang/NullPointerException", "number");
break;
}
if (len > (sizeof(entry.number) / 2) - 1)
{
len = (sizeof(entry.number) / 2) - 1;
}
KNI_GetStringRegion(str, 0, len, (jchar*) entry.number);
/* fetch the home number */
KNI_GetParameterAsObject(3, str);
if ((len = KNI_GetStringLength(str)) == -1)
{
KNI_ThrowNew("java/lang/NullPointerException", "home number");
break;
}
if (len > (sizeof(entry.homeNumber) / 2) - 1)
{
len = (sizeof(entry.homeNumber) / 2) - 1;
}
KNI_GetStringRegion(str, 0, len, (jchar*) entry.homeNumber);
/* fetch the office number */
KNI_GetParameterAsObject(4, str);
if ((len = KNI_GetStringLength(str)) == -1)
{
KNI_ThrowNew("java/lang/NullPointerException", "office number");
break;
}
if (len > (sizeof(entry.officeNumber) / 2) - 1)
{
len = (sizeof(entry.officeNumber) / 2) - 1;
}
KNI_GetStringRegion(str, 0, len, (jchar*) entry.officeNumber);
/* fetch the email */
KNI_GetParameterAsObject(5, str);
if ((len = KNI_GetStringLength(str)) == -1)
{
KNI_ThrowNew("java/lang/NullPointerException", "email");
break;
}
if (len > (sizeof(entry.emailAddress) / 2) - 1)
{
len = (sizeof(entry.emailAddress) / 2) - 1;
}
KNI_GetStringRegion(str, 0, len, (jchar*) entry.emailAddress);
/* fetch the reserve */
KNI_GetParameterAsObject(6, str);
if ((len = KNI_GetStringLength(str)) == -1)
{
KNI_ThrowNew("java/lang/NullPointerException", "reserve");
break;
}
if (len > (sizeof(entry.faxNumber) / 2) - 1)
{
len = (sizeof(entry.faxNumber) / 2) - 1;
}
KNI_GetStringRegion(str, 0, len, (jchar*) entry.faxNumber);
result = jpim_phb_appendEntry(&entry, storage);
if (result == JPIM_SUCCESS)
{
count = jpim_phb_getIndexByHandle(sort_type, storage, entry.store_index) - 1;
}
else
{
count = -1;
}
} while (0);
KNI_EndHandles();
KNI_ReturnInt((jint) count);
}
kal_char pattern[MMI_PHB_JAVA_SEARCH_LENGTH];
/*****************************************************************************
* FUNCTION
* send_search_request
* DESCRIPTION
*
* PARAMETERS
* search_type [IN]
* RETURNS
*
*****************************************************************************/
static kal_int32 send_search_request(kal_uint8 search_type)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 len, result, count;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
KNI_StartHandles(1);
KNI_DeclareHandle(str);
KNI_GetParameterAsObject(1, str);
if ((len = KNI_GetStringLength(str)) == -1)
{
KNI_ThrowNew("java/lang/NullPointerException", "email");
return 0;
}
{
memset(pattern, 0, sizeof(pattern));
if (len > (sizeof(pattern) / 2) - 1)
{
len = (sizeof(pattern) / 2) - 1;
}
KNI_GetStringRegion(str, 0, len, (jchar*) pattern);
result = jpim_phb_searchEntry(&entry, storage, search_type, 0, 0, pattern);
if (result == JPIM_SUCCESS)
{
/* Java Layer index is 0~n-1, but Phonebook is 1~n */
count = jpim_phb_getIndexByHandle(sort_type, storage, entry.store_index) - 1;
}
else
{
count = -1;
}
}
KNI_EndHandles();
return count;
}
/*****************************************************************************
* FUNCTION
* Java_com_cmcc_phonebook_PhoneBook_findEntryByEmail
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
*
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT Java_com_cmcc_phonebook_PhoneBook_findEntryByEmail(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 count = send_search_request(JPIM_PHB_SORT_BY_EMAIL);
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
KNI_ReturnInt((jint) count);
}
/*****************************************************************************
* FUNCTION
* Java_com_cmcc_phonebook_PhoneBook_findEntryByName
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
*
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT Java_com_cmcc_phonebook_PhoneBook_findEntryByName(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 count = send_search_request(JPIM_PHB_SORT_BY_NAME);
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
KNI_ReturnInt((jint) count);
}
/*****************************************************************************
* FUNCTION
* Java_com_cmcc_phonebook_PhoneBook_findEntryByTelNo
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
*
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT Java_com_cmcc_phonebook_PhoneBook_findEntryByTelNo(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 count = send_search_request(JPIM_PHB_SORT_BY_NUMBER);
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
KNI_ReturnInt((jint) count);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -