⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmcc_phonebook.c

📁 java 1.1 gemini 08_16
💻 C
📖 第 1 页 / 共 2 页
字号:

/*****************************************************************************
 * 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 + -