示例#1
0
/*
* Class:     com_alibaba_wireless_imservice_ChatSession
* Method:    nGetUnreadHandle
* Signature: (III)[I
*/
JNIEXPORT jintArray JNICALL Java_com_alibaba_wireless_imservice_ChatSession_nGetUnreadHandle
(JNIEnv *env, jclass cls, jint handle, jint iOffset, jint iLimit)
{
	IASession *pSes = (IASession*)handle;
	jintArray	iaryMsgHandles = AMNULL;

	AMHandle	*phMsgs = AMNULL;
	AMInt32		iCount	= 0;

	AIM_RESULT	eResult;

	if(0 == pSes)
		return AMNULL;

	if(eAIM_RESULT_OK != (eResult = AIMSession_GetMsgs(pSes, iOffset, iLimit, AMTRUE, &phMsgs, &iCount)))
	{
		DPRINT("nGetUnreadHandle..................Error %d!\n", eResult);
		return AMNULL;
	}

	if(0 == iCount)
		return AMNULL;

	if(AMNULL == (iaryMsgHandles = (*env)->NewIntArray(env, iCount)))
	{
		AIMSession_ReleaseMsgs(pSes, phMsgs, iCount, 0);
		return AMNULL;
	}

	(*env)->SetIntArrayRegion(env, iaryMsgHandles, 0, iCount, (const int *)phMsgs);

	AIMSession_ReleaseMsgs(pSes, phMsgs, iCount, 1);

	return iaryMsgHandles;
}
示例#2
0
AIM_RESULT IAIMSession_GetMsgs(AMHandle hSession, AMInt32 iOffset, AMInt32 iCount, AMHandle **pphMsgArray, AMInt32 *piCount)
{
	if(iCount > 0)
		return AIMSession_GetMsgs(hSession, iOffset, iCount, AMFALSE, pphMsgArray, piCount);
	else
	{
		AMAssert(piCount);
		*piCount = 0;
		return eAIM_RESULT_PARAM_ERROR;
	}
}
示例#3
0
AIM_RESULT IAIMSession_GetUnreadMsgs( AMHandle hSession, AMInt32 iOffset, AMInt32 iCount, AMHandle **pphMsgArray, AMInt32 *piCount )
{
	return AIMSession_GetMsgs(hSession, iOffset, iCount, AMTRUE, pphMsgArray, piCount);
}