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

📄 pim_list.c

📁 java 1.1 gemini 08_16
💻 C
📖 第 1 页 / 共 5 页
字号:
    /*----------------------------------------------------------------*/
    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 + -